我刚开始学习C#。
任何人都可以解释.Net桌面应用程序和Web应用程序之间的技术差异吗?
我的意思是,例如,如果我有一个使用WinForm的简单HelloWorld应用程序,将其更改为HelloWorld Web应用程序需要哪些步骤?
答案 0 :(得分:2)
没有真正的方法来进行“公平比较”,因为这两者真的像“粉笔和奶酪”。桌面应用程序有一个“入口点”,运行可执行文件,而Web应用程序有许多,每个.aspx页面都是您创建的。
转换“Hello World”应用程序没有“简单”的方法,因为UI /演示模型的完全不同。经典的控制台应用程序完全使用Console.WriteLine
编写代码,而表示“Hello World”的webforms应用程序可以完全用asp.net标记编写。
asp.net“Hello World”应用程序可以像名为default.aspx的文件一样简单,包含:
<%@ Page Language="C#" AutoEventWireup="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
Hello, world!
</form>
</body>
</html>
而控制台/桌面应用程序等同于:
using System;
namespace ConsoleHelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hello World");
}
}
}
答案 1 :(得分:1)
将桌面应用程序更改为Web应用程序将涉及设置Web服务器以提供网页并将每个对话框从应用程序转换为网页。功能/业务逻辑将进入“代码隐藏”页面(在WebForms中)和模型/控制器(在MVC中)。可能还会涉及一些视觉重新设计,但您可以始终以1对1的转换开始并从那里开始。
Web应用程序通常需要与桌面应用程序略有不同的设计原则。例如,通过网站,您将无法访问用户的硬盘。您还必须处理站点上的多个并发用户,而同时运行桌面应用程序的相同用户将彼此隔离。
答案 2 :(得分:1)
在一篇SO帖子中,这是一个很大的主题。我建议理解的一些事情:
除此之外还有很多东西要理解,但这是一个很好的开始......
答案 3 :(得分:0)
ASP.NET网页(或任何活动网页:Perl,cgi-bin php等)是一个简短的程序,运行一会儿,生成一个html流,并终止,使Web应用程序更接近控制台应用程序的集合,而不是交互式WinForm应用程序。
答案 4 :(得分:0)
有很多方法可以编写桌面应用程序,每种方法都需要完全不同的移植才能转换为Web应用程序。我只举几个例子。
可以通过CGI脚本之类的东西调用控制台应用程序,以便在不对控制台应用程序本身进行任何修改的情况下通过Web显示其输出(只要它是一个不需要任何交互式输入的简单版本)。 / p>
Silverlight支持(相当实质的)WPF应用程序子集。在公共子集中编写hello world类型的东西是相当简单的,因此相同的源代码将生成桌面应用程序或Silverlight Web应用程序。