繁体   English   中英

.Net桌面应用程序和Web应用程序之间的技术区别是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM