2010-08-26 161 views
2

我刚刚开始学习C#。.Net桌面应用程序和Web应用程序有什么技术区别?

任何人都可以解释.net桌面应用程序和web应用程序之间的技术差异吗?例如,如果我有一个使用WinForm的简单HelloWorld应用程序,那么需要将这个更改为HelloWorld Web应用程序的步骤是什么?

+0

正如你没有说明你将如何创建一个WinForm“Hello World”应用程序(即它是一个包含“Hello World”的文本框,或者标题设置为“Hello World”的表单),我选择显示通过使用控制台应用程序的asp.net和桌面示例之间的广泛区别=) – Rob 2010-08-26 20:42:46

回答

2

没有真正的方法来进行“公平比较”,因为两者确实像“粉笔和奶酪”。桌面应用程序有一个“入口点”,运行可执行文件,而Web应用程序有许多,每个.aspx页面,你已经创建。

由于UI /演示文稿模型完全不同,因此没有“简单”的方式来转换“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"); 
     } 
    } 
} 
+0

谢谢 - 我看到他们是完全不同的;) – 2010-08-26 20:51:52

+0

@ n00bie_lucy,w elcome to stackoverflow =)如果你很高兴我的答案回答了你的问题,那么请点击答案左边的勾号将其标记为“已接受”。也就是说,在这个主题上可以说有很多很多,所以我建议你去玩一下asp.net和windows窗体,然后回到这个网站,并询问任何新的问题,这样做会产生=) – Rob 2010-08-26 20:56:54

0

的ASP.NET网页(或任何活动网页:Perl,cgi-bin php等)是一个短程序,运行一段时间,产生一个html流,并终止,使Web应用程序更接近控制台集合应用程序,而不是交互式WinForm应用程序。

0

编写桌面应用程序的方法有很多,每种方法都需要将完全不同的移植转换为Web应用程序。我将举几个例子。

控制台应用程序可以通过类似CGI脚本的方式调用,以在Web上显示其输出,而不必对控制台应用程序本身进行任何修改(只要它是简单的,不需要任何交互式输入)即可。

Silverlight支持一个(相当可观的)WPF应用程序子集。在公共子集中编写hello world类型的东西是相当简单的,因此相同的源代码将生成桌面应用程序或Silverlight Web应用程序。

1

将桌面应用程序更改为Web应用程序将涉及设置Web服务器来提供网页并将每个对话框从应用程序转换为网页。功能/业务逻辑将进入“代码隐藏”页面(在WebForms中)和模型/控制器(在MVC中)。也可能会涉及一些视觉重新设计,但您始终可以从1对1转换开始,然后从那里开始。

Web应用程序通常需要与桌面应用程序稍有不同的设计原则。例如,通过网站,您将无法访问用户的硬盘。您还必须在您的网站上处理多个并发用户,而同时运行桌面应用程序的相同用户将彼此隔离。

+0

非常有帮助安娜 - 谢谢。这么多要学习! – 2010-08-26 22:29:27

相关问题