在桌面程序和BS应用程序比较来看,无论是开发速度还是用户体验来说,都是桌面程序要有优势.由于BS程序的特性,使得在开发BS程序时可使用的资源非常有限(客户端只能借助浏览器,客户端与服务端的无状态交互,服务端的集中计算压力等),因而也严重影响了BS程序开发的效率。怎么让BS的开发能像桌面开发那样富有效率,一直以来也是业界的追求。微软的WebForm就是这样一种尝试,而且取得了一定的成功。Webform在传统的html,css,javascript+服务端基本交互对象(Request,Response,Server,Session,Application)上,利用反射和对象序列化技术,成功地将BS程序开发有了桌面程序开发的体验:拖放控件,所见即所得,窗体事件等。当然,离真正的桌面开发还是有距离的,不过这已经是非常了不起的进步。Webform的出现和能成功应用,其实也得利于互联网速度和带宽的改善。
WebForm是建立在已有的Web开发技术之上,只是充分利用了已有的技术,并不需要在浏览器端,或者是浏览器—应用服务器之间增加额外的构件,因此,WebForm一如既往的秉承了Web程序的风格和优点。我们知道,桌面程序的开发之所以体验非常好,主要得益于客户端资源的丰富和天然的状态保留功能,客户端和服务端只需要交互变化的那部分数据或者状态信息,而大部分的,特别是界面上的状态则不需要特别的处理。因此,Webform能模拟到这种类似桌面开发的程度,付出的代价也非常大,主要在以下几个方面:
1,为了保持页面窗体的状态,Webform增加了ViewState,而这个ViewState是要在客户端与服务端来回传递的,因此无疑的增加了网络流量,同时也使得数据安全成为一个潜在的风险和问题;
2、页面的重建代价非常大。服务端页面及控件属性非常多,这些属性要保持状态就必须序列化后保存在ViewState中,然后等传回来时在利用反序列化来恢复原来的状态,其过程如下:服务器页面处理完成前,将要保持状态的控件信息序列化,保存在ViewState中,客户端传回后,先创建一个新的页面及其相应的控件,然后利用反序列化,把从客户端传回的ViewState信息重新赋给对应控件。如果业务稍微复杂点,页面控件多点,这种反复重构对服务端的压力就非常大。虽然微软也提供了关闭ViewState的功能,但说实话,如果你关闭了ViewState,也就失去了选用WebForm的绝大部分意义。
3、无法完全达到桌面开发的体验,有很多在桌面开发很容易实现的功能,在这里需要花费很大的心思和工作量,而且效果还差强人意,比如在线编辑那种。
Webform的这些缺陷,也是很多人选择放弃使用的原因。特别是在一些对性能要求非常高的应用场景中,在互联带宽和速度还无法与局域网媲美的情况下,这些代价都是不可承受的。我就经历过这样的放弃,我们做的公共平台的CRM,开始采用的就是Webform.但由于我们的系统地体验和交互都是按照桌面程序那样要求,那么多的页面元素下还要实现拖放效果,难度可想而知,当然其结果也很直接,不仅不好看,速度也非常慢,后面没办法,中途只好转到silverlight 上去了。
当然,也不是说Webform一无是处,而且未来的BS开发还会朝着WebForm想要达到的目的发展。而且在很多对性能和交互要求不是特别高的地方,Webform还是有用武之地的。
微软其实也看到了WebForm的不足,所以就有了后来的Silverlight和MVC.但不管怎样,WebForm都可以看做是BS程序开发的一种伟大的尝试。
分享到:
相关推荐
【标题解析】:“爬虫系列 一次采集.NET WebForm网站的坎坷历程”指的是作者在进行网络爬虫开发时,遇到了一个使用.NET技术构建的WebForm类型的网站,这种类型的网站对于爬虫来说通常存在一定的挑战性。 【描述分析...
ASP.NET WebForm是微软开发的一款用于构建Web应用程序的框架,它是.NET Framework的重要组成部分。这个压缩包包含18个ASP.NET WebForm项目的源码,对于学习和理解WebForm的工作原理、开发流程以及数据库交互等方面...
ASP.NET WebForm是一种基于.NET Framework的服务器端网页开发模型,由微软公司推出,它极大地简化了Web应用程序的构建。WebForm允许开发者使用类似WinForms的事件驱动编程模型来创建动态网页,提供了丰富的控件和...
Access数据库作为微软Office系列软件的一部分,是一种桌面数据库管理系统,适合小型项目使用。它的优点在于操作简便,易于上手,对于不需要处理大规模并发访问和大数据量的网站来说,Access完全能够胜任。同时,...
而使用C#语言开发的WebForm技术构建的大型B2B购物商城系统,凭借其稳定性和灵活性,正逐渐受到开发者的青睐。 首先,C#语言由于其良好的面向对象特性以及在.NET框架中的集成优势,成为了开发Windows应用程序和Web...
通过使用WebForm技术,开发者可以快速构建出用户体验良好、功能完备的Web应用。而SQL Server 2008数据库的引入则确保了用户数据和图片资源的高效管理与存储。这些技术和工具的综合运用,使得本拍客相片展示平台成为...
C#ASP.NET网络考试系统源码数据库SQL2008源码类型WebForm涉及到的技术涵盖了.NET平台的前端开发、后端服务以及数据库管理等多个层面,是一个典型的信息系统开发案例,对于学习.NET技术和数据库应用有着重要的参考...
ASP.NET WebForm是微软开发的一款用于构建动态网站的框架,它是.NET Framework的重要组成部分。这个压缩包文件"ASP.NET_WebForm:源代码和模板-Form source code"包含了使用ASP.NET WebForm技术创建的源代码和模板,...
C#NetCore云端平台管理系统源码数据库 SQL2008源码类型 WebForm是一个基于微软.NET Core 6框架开发的中后台解决方案。该系统采用流行的前端框架VUE3结合Element UI Plus组件库,为用户提供了一个现代化的用户界面。...
它的开发环境为Microsoft SQL Server 2008数据库,采用WebForm作为开发框架。 这个平台的核心功能可能包括用户管理、内容发布、消息推送、数据统计分析等。在用户管理方面,平台可能允许管理员创建多个用户账户,并...
4. Silverlight:微软的轻量级插件技术,用于在浏览器中创建富媒体和交互式应用。DXperience 提供的 Silverlight 控件集允许开发者利用 Silverlight 平台构建功能丰富的 web 应用。 汉化和本地化是 DXperience ...
Webform模式是微软ASP.NET框架的核心组成部分,它采用事件驱动模型,模拟了桌面应用程序的编程方式。在Webform中,页面生命周期包括一系列的事件,如初始化、加载、回发、验证、保存等,这使得开发人员可以方便地...
### ASP.NET 2.0 Web Form 验证入门...- **微软中文技术论坛**:在线社区支持和技术交流平台。 通过本课程的学习,学员将能够掌握ASP.NET 2.0 Web Form应用中验证的基本概念和技术要点,从而更好地保障应用的安全性。
ASP.NET WebForm 4.0 是微软开发的一款用于构建动态网站的技术,它是.NET Framework的一部分,提供了丰富的服务器控件和事件驱动模型,使得开发者能够轻松创建交互式的网页应用。本项目"ASPNETWebform4Website"是...
系统前台界面的开发主要依赖于ASP.NET技术,这是一种由微软开发的用于构建Web应用程序的框架,它使得开发者能够使用.NET语言(如C#)快速创建动态网页。 为了提高用户界面的交互性和响应速度,本系统还大量采用了...
这些语言利用了 .NET Framework 的功能,提供了简化 ASP Web 应用程序和 XML Web services 开发的关键技术。 **Mobile Internet Toolkit**:该工具包由一系列服务器端移动网络窗体和用于创作用户界面的 Mobile ...
在以前学习和使用WinForm、ASP.NET WebForm、三层架构的时候,对于数据访问的实现,无论是什么逻辑,简单还是复杂,无论是执行SQL语句还是调用存储过程都要用到ADO.NET技术,通过封装好的SQLhelper类传入SQL语句和Sql...
在本项目"ASP.NET基于CS应用程序平台多语种技术应用研究"中,我们可以看到一系列与ASP.NET相关的源代码文件,这表明这是一个关于如何在ASP.NET平台上实现多语言支持的研究。 首先,`Global.asax`文件是ASP.NET应用...
ASP.NET Web Form是微软.NET框架中的一个重要组成部分,它提供了一种构建交互式、动态网站的方式。在Web Form中,验证是确保用户输入数据正确性和安全性的关键步骤。本教程将深入讲解如何在ASP.NET Web Form中实现...