![](/img/trans.png)
[英]In a .NET web-application, what is the difference between the following?
[英]What are the technical difference between .Net desktop application and web applications?
我刚刚开始学习C#。
谁能解释.Net桌面应用程序和Web应用程序之间的技术差异?
我的意思是,例如,如果我有一个使用WinForm的简单HelloWorld应用程序,将其更改为HelloWorld Web应用程序需要哪些步骤?
没有真正的方法可以进行“公平的比较”,因为两者确实像“粉笔和奶酪”。 桌面应用程序具有一个“入口点”,用于运行可执行文件,而Web应用程序具有许多创建的每个.aspx页面。
用户界面/表示模型完全不同,因此没有转换“ Hello World”应用程序的“简便”方法。 经典的控制台应用程序完全使用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");
}
}
}
将桌面应用程序更改为Web应用程序将涉及设置Web服务器以提供网页并将每个对话框从该应用程序转换为网页。 功能/业务逻辑将进入“代码隐藏”页面(在WebForms中)和模型/控制器(在MVC中)。 也可能需要进行一些视觉上的重新设计,但是您始终可以从1对1转换开始,然后再进行。
Web应用程序通常需要与桌面应用程序稍有不同的设计原则。 例如,通过网站,您将无法访问用户的硬盘。 您还必须处理站点上的多个并发用户,而同时运行桌面应用程序的同一用户则要彼此隔离。
在一个SO帖子中涉及一个很大的主题。 我建议您了解以下几点:
除此之外,还有很多要理解的地方,但这是一个很好的起点。
ASP.NET网页(或任何活动的网页:Perl,cgi-bin php等)是一个简短的程序,可以运行一会儿,生成html流,然后终止,从而使Web应用程序更接近控制台应用程序,而不是交互式WinForm应用程序。
有很多编写桌面应用程序的方法,每种方法都需要完全不同的端口才能转换为Web应用程序。 我仅举几个例子。
可以通过CGI脚本之类的方式调用控制台应用程序,以在Web上显示其输出,而无需对控制台应用程序本身进行任何修改(只要它是一个简单的不需要任何交互式输入的应用程序)。
Silverlight支持WPF应用程序的(相当大量)子集。 在通用子集中编写一种世界级的东西是很简单的,因此相同的源代码将生成桌面应用程序或Silverlight Web应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.