异曲同工 WinForm和ASP.NET如何选?

简介:

在.NET平台开发中,我们经常使用WinForm进行C/S架构的开发,也用过ASP.NET作为B/S架构开发。那么有些人可能糊涂了,不知道在这两者之间如何做选择了。其实作为将来要在.NET平台上做开发的工作者来说,无论如何都要同时掌握WinForm编程和ASP.NET编程。

  当我们开始开发带有用户界面的应用程序时,可以使用WinForm或ASP.NET。两者在开发环境(Visual Studio系列)中都具有完全的设计时支持,并且可以提供丰富的用户界面和高级应用程序功能解决现实业务问题。由于这种“相似”,要决定采用哪种技术来实现软件可能有些困难。

  关注软件的最终用途可以使选择变得相对容易。如果我们要开发的是一个公众可以通过Internet访问的电子商务网站,肯定采用ASP.NET来开发软件项目。如果我们要充分发挥客户端电脑的计算能力,并且客户端的处理工作量很大,需要快速响应用户请求,无疑应该使用WinForm。但是在其他情况下,选择也真的不是很明晰。

  何时选择WinForm

  如果客户端应用程序负责应用程序中的大部分处理任务,应该使用WinForm开发应用程序。这些客户端应用程序包括传统上在早期版本的VB和VC中开发的Win32桌面应用程序。绘图或图形应用程序、数据输入系统、POS系统和游戏都属于这类应用程序。

  这些应用程序都依靠桌面计算机的处理能力和高性能数据显示。有些应用程序可能完全独立,它们在用户的计算机上执行所有的应用程序处理。通常以这种方式来编写游戏。其他应用程序可能是大型系统的一部分,它们主要使用桌面计算机来处理用户输入。例如,POS系统常要求在桌面计算机上创建具有响应能力的复杂用户界面,同时将该界面链接到其他执行后端处理的组件。

  使用WinForm的应用程序是在Windows框架中生成的,因此它可以访问客户端计算机上的系统资源,包括本地文件、系统注册表、打印机等。可限制该访问级别,以消除由不希望的访问引起的任何安全性风险或潜在问题。另外,WinForm可以利用.NET Framework GDI+图形类创建丰富界面,而这常常是数据挖掘或游戏应用程序所必需的。

  何时选择ASP.NET

  使用ASP.NET创建主要由浏览器用户界面组成的应用程序。这自然包括希望让公众可通过万维网使用的应用程序,比如电子商务应用程序。但是ASP.NET并不仅仅用于创建网站,许多其他应用程序同样适用于“瘦客户端”,如基于Internet的雇员手册或津贴应用程序。任何ASP.NET应用程序都有一个重要的优点,就是没有客户端安装和维护的成本。用户已经安装了所需的唯一一个应用程序——浏览器。

  ASP.NET应用程序与平台无关,即它们是“延伸”的应用程序。不论用户的浏览器类型是什么,也不论使用的计算机类型是什么,他们都可以与应用程序进行交互。同时,可优化ASP.NET应用程序,以利用最新浏览器中的内置功能来增强性能和响应能力。在许多情况下,此优化内置于使用的Web窗体组件。这些组件可以自动检测浏览器级别,并相应检测呈现页。

  ASP.NET应用程序提供了一些即使在非Web环境中依然有用的功能。因为这些功能依赖于HTML,ASP.NET应用程序适合任何种类的文本密集型应用程序,尤其适合那些文本格式设置对其很重要的应用程序。基于浏览器的应用程序对用户的系统资源的访问权限有限,在希望防止用户访问某些应用程序的情况下,这种限制使ASP.NET应用程序很有价值。

  WinForm与ASP.NET的比较

功能/标准 WinForm ASP.NET
安装部署 WinForm允许使用ClickOnce进行“非接触”部署,即可以直接在用户的计算机上下载、安装和运行应用程序,而不必改变注册表。 ASP.NET没有客户端部署;客户端只需要一个浏览器。服务器必须运行Microsoft .NET Framework。对应用程序的更新通过在服务器上更新代码来完成。
图形 WinForm包括 GDI+,它使得游戏和其他有非常丰富的图形的环境可以有复杂的图形。 在ASP.NET时,交互式图形或动态图形需要来回访问服务器以进行更新。可以在服务器上使用GDI+来创建自定义图形。
响应 WinForm可以完全在客户端计算机上运行;它们能够为需要高度交互的应用程序提供最快的响应速度。 如果用户用较新的浏览器(IE5.0以上),ASP.NET应用程序可以利用浏览器的动态HTML(DHTML)功能来创建丰富的、具有响应能力的用户界面(UI)。如果用户有其他浏览器,大多数处理(包括与用户界面相关的任务,比如验证)需要往返于Web服务器,而这会影响响应,当然我们可以采用AJAX技术来改善应用体验。
窗体和文本流控制 WinForm网格定位可以对控件的位置提供精确的二维(x和y坐标)控制。若要在Windows窗体上显示文本,一般将文本插入到控件(例如 Label控件、TextBox控件或RichTextBox控件)中。格式化将受到限制。 ASP.NET界面基于HTML样式流布局,因此支持网页面布局的所有功能。它在文本格式设置方面的功能尤其强大。可以充分地管理控件布局(有某些限制,例如不能重叠控件)。如果用户有支持DHTML的浏览器,可以用二维(x和y坐标)布局来指定更精确的布局。
对于.NET Framework的依赖 WinForm需要在客户端计算机上运行.NET Framework。 ASP.NET客户端只需要一个浏览器。支持DHTML的浏览器可以利用额外的功能,而Web窗体可以被设计为适用于所有的浏览器。ASP.NET系统只需要在服务器运行.NET Framework。
访问本地资源(文件系统、系统注册表等) 如果允许,应用程序对本地计算机资源可拥有完全访问权。如果需要,可以精确地限制应用程序,使其不能使用特定的资源。 浏览器安全性防止应用程序访问本地计算机上的资源。
编程模型 WinForm基于客户端Win32消息转储模式,开发人员在此模式中创建、使用和销毁组件的实例。 ASP.NET依赖于在很大程度上异步的断开连接模型,在此模型中,组件松散地耦合到应用程序前端。通常,应用程序组件通过HTTP协议调用。此模型可能不适合要求用户端有极大吞吐量的应用程序或具有大量事务处理的应用程序。同样,ASP.NET应用程序可能不适合需要高级别并发控制的数据库应用程序。
安全性 WinForm在其代码访问安全性实现中使用权限,以保护计算机资源和敏感信息。这使功能得以被小心公开,同时保留安全性。例如打印权限,在某一级别上只允许在默认打印机上打印,在另一级别上则允许在任何一台打印机上打印。使用ClickOnce部署技术,开发人员可以轻松地配置应用程序应该和不应该向客户端要求什么权限。 通常,通过验证请求者的凭据(例如,名称/密码对),按URL控制获得访问ASP.NET应用程序资源的授权。ASP.NET允许开发人员控制执行服务器应用程序代码所使用的标识。应用程序可以用请求实体的标识来执行代码。应用程序也可以根据请求者的标识或角色来动态调整内容。例如,经理可以访问某一站点或更高级别的内容,而拥有较低权限的人则不能这样做。


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
18天前
|
C#
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
11月前
|
编解码 JSON 算法
一个支持.Net 7的WinForm开源UI组件框架
一个支持.Net 7的WinForm开源UI组件框架
154 0
|
数据库 C#
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
398 0
|
C# 图形学 芯片
【物联网智能网关-04】WinForm for .NET MF 功能一览
 .Net Micro Framework界面开发官方标准功能仅支持WPF方式,并且所谓的WPF开发和Windows平台上的WPF有很大的区别,即不支持可视化界面设计,也不支持XML方式界面格式定义,另外提供的控件也很少,又不含事件处理,所以使用上相对繁琐,需要自己写很多额外代码。
890 0
|
开发框架 数据安全/隐私保护
NET快速信息化系统开发框架 V3.2 -WinForm部分全部重构为Dev风格界面
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/79447670 RDIFrameowrk.NET V3.2以前的版本WinForm部分使用的界面控件是DotNetBar,界面也是非常的美女,但相比现在市面上用得非常多功能强大的Dev控件还是略显逊色,V3.2版本花了大量功夫对框架全系界面做了升级重构,全面采用Dev风格的控件。
1498 0
|
数据安全/隐私保护 开发框架
.NET快速信息化系统开发框架 V3.2 -WinForm“组织机构管理”界面组织机构权限管理采用新的界面,操作权限按模块进行展示
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/78377551   对于某些大型的企业、信息系统,涉及的组织机构较多,模块多、操作权限也多,对用户或角色一一设置模块、操作权限等比较繁琐。
1210 0