.net框架下软件开发模式研究

2014-03-30 11:59吴昌钱
关键词:开发技术服务端控件

吴昌钱

(泉州师范学院)

0 引言

B/S软件开发是现在及未来软件系统开发的一个主流趋向,它以轻量级、跨操作系统、动态数据以及炫丽的UI设计等特点比之传统的软件开发模式.开发技术较多,可以使用 asp,jsp,php,asp.ne等.在.net框架下多种技术相辅相成,拥有更多的开发人员的拥戴和支持,拥有更高的开发效率,拥有容易上手的特性.当然,.net框架下的技术也有些弊端.如对服务端的硬件要求较高.该文首先对.net下的三种典型B/S开发技术进行介绍.而后,对三种技术进行比较分析.最后,提出在.net框架下开发模式技术的选择建议.

1 .net框架下B/S开放技术简介

1.1 关于WebForm

WebForm是微软在.net 1.1版本最早推出的web开发技术,并且在.net 2.0版本后有一套完善的组件开发技术,控件是.netWebForm的主要技术成分.它的原理是:首先,根据用户请求的URL找到相应aspx和父类aspx.cs;接着,将html标签和服务端标签(runat=“server”)放入控件库中;然后,对请求的分析做出相应的动作响应,组织生成htm l,加载客户端缓存;最后,将生成的响应内容回发到客户端.这样的处理原理,让开发者能以最简洁的模式进行页面制作,同时请求事件以及回发控制变得更加简易..net技术整体上说,具有容易上手,开发效率高的特点.

服务器端页面对象分为前台部分类和后台部分类.前台部分类由视觉控件组成,是对象的静态元素部分;后台部分类由实现功能的逻辑代码构成,是对象的动态元素部分.响应客户端请求时,服务器端先组合视觉控件与逻辑代码成分,生成完整的含静态和动态部分的aspx页面对象.而后,调用Page类ProcessRequest方法,生成要发送到客户端的HTML代码.该过程具体完成以下功能:(1)创建页面控件树,调用Build-ControlTree方法,把前台静态页面所有的html控件和标记为runat=server的服务器端控件转成对应的静态HTML控件对象,并添加在到前台静态页面类得Controls集合中;(2)调用后台页面CS部分类中逻辑代码Page_Load方法,完成初始化控件等;(3)调用Render_Controls方法,遍历控件树中每一个节点的Render_Controls方法,生成完整的html代码并发送到客户端,完成客户端请求的响应.

1.2 关于MVC

ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序框架,ASP.NET MVC框架提供了一个可以代替ASP. NETWebForm的基于MVC设计模式的应用.他将一个web程序分层(Model-View-Controller)三个层次,使得复杂项目更加容易维护,减少项目之间的耦合..Net MVC原理是以原生的html请求发送到服务端,在IIS环境下,调用.net中的aspnet_iisapi.dll,通过路由Routing找到url请求的控制类Controller,控制类对数据进行加工和运算(如,数据库读写和视图设计等),返回一个viewdata给view,也就是将model组成view,并且回发给客户端.ASP.NET MVC分层层次十分分明,是一种有利于单元测试和代码维护,扩展的轻量级开发框架.

url请求含有控制类信息,形式如:

http://localhost:8088/app/orders/customer-ID=101&Name=XXXX

其中“app”为 Controller部分,“orders”为Action部分.

1.3 关于SilverLight

Silverlight是类似Flash插件的一种新型基于NET framework的媒体体验和丰富的交互式应用程序,它具有跨浏览器的、跨平台的、内容丰富、视觉效果绚丽的特点.Silverlight在web开发领域中扮演一种具备丰富的用户体验,安全的数据访问,高自由度的编程模式的新型编程技术,是富因特网应用的一种体现,也是.net框架下一种新型的web开发技术,它是一种以xam l格式为中心的,在浏览器沙箱运行的模式,不同于传统以WCF,WebService为中间层的数据访问形式.[1]

2 .net框架下B/S开放技术比较

2.1 三种技术框架市场占有率比较

在IT界,市场占有率是最容易看出一种技术的成熟程度,可用性的评价标准,软件市场是多种技术框架并存的竞争平台,.net作为一种主流技术,凭借着windows操作系统的超高占有率,asp.net可以算是网站开发技术上的一面大旗.其中,Webform市场占有率占有最高的比率,目前外租服务器,虚拟空间,vps等基本都支持. net2.0的IIS,WebForm出生日期和成名日期比较早,并且在市场稳稳地站住的了脚跟,而MVC是在.net 3.5后才有支持的版本,所以有一定服务端框架支持限制,但MVC在一种市场发展速度极快的步伐前进.SilverLight虽然有许许多多的优点,但它并不是第一个吃螃蟹的人,在它的前身有一个性质类似Adobe Flash作为竞争对手,Flash已经取得大部分用户的好感和依赖性,所以SilverLight并未被广泛推用.

2.2 三种技术框架性能比较

性能是软件开发中被重点关注的技术可靠性指标,一个B/S软件系统开发出来的产品性能由许多种因素来共同决定,其中包括:服务端硬件配置,服务端操作系统,客户端性能,数据传输带宽,开发技术.在上面WebForm说明中可以看出WebForm具有一种高度效率的开发能力,但在性能上,包括处理速度,消耗流量需求等考虑,利用Asp.NetWebForm,MVC,SilverLight开发他们哪个是拥有王牌的性能优势呢.

首先,从处理速度来看WebForm含有页面状态管理以及控件树,相比之MVC的较为纯粹的B/S的开发结构,WebForm的所需要的处理周期会比较长,Silverlight是将本身程序集包. XAP文件传输到客户端让浏览器进行解析运行,利用中间数据源访问层,例如WCF,WebService,Ria等进行与数据库进行数据交互,它承受较少的服务端压力,具备较高的运行速度和较低性能高压威胁,所以SilverLight在处理速度性能上较之WebForm和MVC会有一定的优势.

而在消耗流量上的性能比较,WebForm是一种包含ViewState,并且页面含有页面管理状态的高度封装开发框架,它与轻量级MVC比较,数据留到客户端的包含许许多多冗余的HTML代码,所以WebForm对;流量的需求更高,.ilverLight在流量控制上有多种方案可以选择,传统默认的方式是在浏览器第一次加载SilverLight网站程序时下载它所需要的素材以及XAP程序集包,其余的流量是按需获取程序所需的数据产生的.因为SilverLight不是页面级的,而是应用程序级的开发框架,所以从长期来看它所耗费的流量会更小,短期会多.

2.3 三种技术框架开发效率的比较

开发效率是一个软件开发企业获得盈利很重视的技术框架优劣指标,.Net开发工具Visual Studio以其人性化的软件设计和用户体验造就了在.net开发的便捷与清晰,所以Visual Studio支持的这三种技术本身都具有较高的开发效率,笔者通过较为细致的比较来区分三种技术开发效率的微差.三种技术都是将页面和逻辑进行有机分离的设计模式,然而通俗来讲,页面与逻辑耦合性越高,它的开发效率就会越低.Web-Form是一种组件开发模式,以ASPX+CS来构建一个页面,其中Aspx和Cs有较高的依赖性,页面服务端事件几乎都放在cs类中进行处理,这点上MVC要灵活一些,MVC是利用Aspx(或cshtml)+Controler.cs,页面仅仅只是发送请求和作为回发请求的模版,他与作为逻辑处理的控制器没有什么直接的关系,所以他是一种低耦合的开发框架,较低的开发效率,SilverLight与web-Form类似,前台页面与后台逻辑紧密耦合,也具有较高的开发效率[2][3].

2.4 三种技术框架上手难度的比较

技术上手难度是对初学者学习并掌握一门新技术的难易情况,.net框架平台以面向对象语言C#为基础的,它的框架,接口以及编程工具都是由Microsoft一家包办而成的,对需要更多的配置和第三方插件的要求并不高,所以对手来说,学习.net一开始并不需要太多复杂的配置就可以写出自己的app了.Webform,Mvc,SilverLight都是.net下标准C#集成的,他们同样不需要许许多多的配置和第三方插件便可以在Visual Studio工具进行编码.笔者认为这三种技术框架的上手难度主要由他们设计模式以及数据访问方式的不同来决定其难度的.WebForm是最直观的编程模式,初学者在初始这门技术时完全可以通过拖拽控件,然后双击控件或者在事件视图中双击相应事件进行编码,编码之后马上可以通过运行浏览查看效果.MVC需要初学者了解Model-View-Controller整个模式三个层次直接的联系和区别,并且了解asp.net MVC是如何将这三个分层进行配合和调用的,需要用户具有一定的软件体系知识.SilverLight虽然和WebForm在编码模式类似,但它的数据访问较为特殊,需要建立一个中间层来提供数据访问.所以,笔者认为,Webform是最容易上手的一种web设计模式.

3 结束语

B/S软件开发是现在及未来软件系统开发的一个主流趋向,它以轻量级、跨操作系统、动态数据以及炫丽的UI设计等特点[4].在.net框架下多种技术相辅相成下笔者不得不佩服微软的高瞻远瞩,就如该文讨论的这三种web开发技术他们各有各的神通,各有各的背景,笔者无法以明确的论述来说明哪种技术最适合目前的web开发,但笔者希望能让许多做web开发的人,无论是从事asp,jsp,php,asp.net或者是其他技术开发的人了解asp.net,了解文中论述的三种不同开发模式在asp.net中扮演的角色,了解asp. net因为这三种技术而展现出来的魅力.

WebForm拥有更多的开发人员的拥戴和支持,拥有更高的开发效率,拥有容易上手的特性,但它牺牲了部分开发成品应用程序的性能,对服务器的硬软件环境要求较高.所以它更适合做一些中小型网站,少量用户访问,业务性不强的的系统.比如企业宣传网站,cms等网站.Asp.net MVC虽然没有最高的开发效率,但MVC本身的设计模式已经决定它具有开发容易维护,可扩展性强等特点,再加上其轻量级的技术特征,它更适合做一些支持高流量,业务繁杂的网站系统.例如企业管理系统,B2C或C2C平台型网站. SilverLight最大的特点就是其插件式的,不需要像传统b/s框架软件需要频繁的html提交和回发操作,它可以制作许多炫丽的图像图像以及动画设计.所以,它更适合做RIA富因特网应用的开发以及多人在线无刷新同步游戏.例如场景模拟,聊天室等网站.

所以,没有绝对最好技术去实现一个B/S系统开发与构建,按需选择最适合好的技术解决方案才是成功开发一个B/S系统的最好途径.

[1] 魏永超.银光志——Silverlight 3.0开发详解与最佳实践[M].北京:清华大学出版社,2009.

[2] [美]加洛韦著,孙远帅,邹权译.ASP.NETMVC 4高级编程[M].北京:清华大学出版社,2013.

[3] 蒋金楠.ASP.NETMVC 4框架揭秘[M].北京:电子工业出版社,2013.

[4] 毕国锋.ASP.net技术的Web应用程序三层设计模型研究[J].黑龙江科技信息,2013(3):32-36.

[5] 张志成.基于.NET技术和MVC的新架构模式[J].电子制作,2013(9):37-41.

猜你喜欢
开发技术服务端控件
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
新时期《移动Web服务端开发》课程教学改革的研究
计算机应用软件开发技术的几点探讨
在Windows Server 2008上创建应用
中国煤层气开发技术的现状与未来
复杂产品设计知识应用开发技术研究
基于Top-down设计方法的客车底盘开发技术
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
摸清黑客套路防范木马侵入