基于.NET框架的Web应用系统探讨
万盼盼
四川大学计算机学院 610225
摘要:本文重点对传统的三层架构的Web应用系统进行分析,然后结合MCN框架对此传统Web应用系统进行了改造。
关键词:.NET框架;Web应用系统;改造;优化设计;探讨
一 基于.NET框架下的传统三层架构Web应用系统概述
1 三层框架的相关概述
框架发展先后经历了单层、双层、三层指如今的多层框架,单层架构、双层构架都不够成熟。而三层结构则是对传统C/S结构的进一步应用及扩展,是企业应用的未来代表,当前所提出的多层框架其实也仅仅就三层架构进行了细节方面的改进而已。随着封装、复用、扩展以及移置等方面要求的不断提高,三层程序架构体系结构成为此发展过程的一个必然性产物。三层架构较先前的双层架构来说,最大的区别即在客户和服务间加了一“中间层”,也称组件层,即中间层、客户层以及服务器层所共同组成的三层体系。组建层的加入促使双层结构应用模型中,商业逻辑得以分离出来,同时还提供了一个可伸缩、更易访问和管理的途径,封转了基础应用服务,同时还将其分别部署于服务器上,使应用程序封装过程的可扩展性、可移置性及安全性等都得到了大幅度的增强,降低了开支,使企业级系统的应用过程更加高效、稳定以及安全。
2 三层框架的功能概述
在Web应用系统的开发过程中使用三层框架可以使项目的结构更加清晰,分工更为明确,后期维护及升级更加方便,可达到修改业务逻辑层但是不会对数据层造成影响,此外,修改表现层无需对业务逻辑层代码进行修改,最终可将其当成一种普遍性的Web应用框架获得广泛的应用。三层框架通常指的是表示层(UI)、业务逻辑层(BLL)及其数据访问层(DAL)。以下就此三层的功能进行介绍:
1)表示层(UI)主要用于用户的交互操作界面,也就是说对用户所提交的输入请求进行响应并将最终将所处理的结构返回至用户页面去。
2)业务逻辑层(BLL)主要对表示层所传递到的用户请求进行接收,同时对相应的业务逻辑进行调用和处理,并将数据访问层所获得的数据传递至表示层。此外其还进行一些数据验证或逻辑判断等方面的工作。
3)数据访问层(DAL)主要同数据库进行交互,同时,通过对其的增删、查改等操作实现最终数据的获得,且负责将此结果反馈至业务逻辑层。
3 三层框架的利弊
1)利处
① 因所使用的是分层结构,因而开发人员可以仅对其中的某一层的实现进行关注即可。
② 各层间的依赖性得以大幅度降低,摒弃了先前单双层框架中层层间的高度耦合及扩展性较差等方面的不利。
③ 通过封装基础服务或是基本逻辑达到了代码复用的目的。
④ 用户仅通过业务逻辑层访问即可获取数据,入口点得以减少,因而系统安全性能得到了保障。
⑤ 三层框架应用之后,项目的结构更加清晰,分工更为明确,更便于进行项目管理,节约了后期软件维护等方面的成本。
2)弊处
① 降低了系统的性能,通过三层架构对Web应用系统进行开发时,先前不少对数据库直接访问所进行的操作如今必须通过中间层方可实现,虽然耦合度得以降低但同时对性能造成了影响。
② 为实现三层构架中每一层的功能,需在各层进行相应处理逻辑的编写,如表示层需完成前台设计语言页面的布局及其展现,而业务逻辑层则需以设计模式为依据对解决方案进行布局,代码量得以增加的同时工作量也大大增加了。
③ 三层框架还无法使各层间实现解耦合,因而导致级联发生修改。若表示层需增加一功能,为确保所设计的满足分层式的结构,需在业务逻辑层以及数据访问层中进行相应代码的增加。
二 基于.NET框架下的MCN架构设计
根据传统三层Web应用系统的结构可以划分为表示层、业务层和数据层。针对分层模型的设计思路和扩充技术,同时对三层架构所具有的利弊进行分析,结合应用系统自身特点设计了基于.NET框架下的平台化架构MCN,见图1所示。
此架构的优点如下所述:
1)将三层架构整合起来,整合之后完全以MVC的设计模式为依据来实现的。此框架中将业务逻辑层进行了内部分类,分别为业务及数据逻辑层,前者可进行同表示层间所进行的业务往来,后者则进行实体类的调用以及操作。同时,改进了传统的数据访问层,在其中应用了NHibernate 技术。Nhibernate技术不仅可以对实体层指数据库表的映射进行管理,还为数据的查询提供方法以及代码的自动生成机制,大大减少了使用SQL和ADO.NET进行数据处理所需的时间,避免受到SQL、ADO.NET等底层操作项目的进度限制。
2)使用此工具可针对由类图所产生的实体类在指定目录下自动实现映射文件的生成,并于数据库中进行相应表的创建。可大大地提高工作的效率,防止手工编写映射文件容易导致的问题,使用前无需进行复杂的配置,解决了codesmith所生成映射文件中不能对表示类间的关系进行准确表达的缺陷。
3)开发技术同模式间进行融合以确保每一层的功能得以实现,因而开发周期得以大幅度的缩短,同时,架构所需的多种开发框架及技术在配合使用过程中可以扬长避短,确保了系统开发的质量及其性能。
4)此模式自身层层间耦合较松散,代码重用率得以降低,Castle框架的应用及在各层间的贯穿使得系统可扩展性及可复用性都得以增强。
5)各层之间的分工相当明确,单元测试来实现各层及模块间的测试,确保测试概念能够贯穿于整个开发过程的始终,因而确保了开发的整体质量。
三 MCN 框架对三层架构的改进
MCN框架主要是针对于传统三层框架在Web应用系统开发中性能较低、代码量较大以及数据库的交互效率较低等所进行的一些改进。此外还整合了一些优秀的框架及技术。下图2是MCN 框架同三层架构的对应图
1)同传统三层架构不同的是,此构架在表示层同业务逻辑层间引入了MVC的设计模式。不仅可改变原来单一方式访问的弊端,还可满足用户对于Flash界面、Wap界面等的相关要求。此外,因MVC 将业务逻辑层同表示层强制性分开,因而使业务逻辑层的功能扩展及同数据访问层逻辑的无关性得以实现。除此之外,MVC 中的控制器可对不同视图于模型进行联接以对用户请求进行响应,控制器通过路由导向可对可重用模型进行选择,代码量得以大幅度减少。
2)此框架解决了传统三层结构开发Web应用系统时代码量大以及数据库交互的效率较低等方面的问题。将对象/关系映射机制在MCN框架中进行引入以实现对数据持久层逻辑的处理实现了这一目的。
3)MCN框架使得传统的三层架构所努力达到的分层设计及模块化开发的目的得以实现。且各层间的耦合很低,同时Castle框架的应用使得简单性地全局配置就即可实现相邻层间的接口调用。此时功能扩展及功能修改过程中及不会对相邻层间的调用造成影响。
4)优秀的应用系统框架基于良好的单元测试,MCN框架实现了分层测试,可通过每层逻辑的剥离对各层分别进行单元测试,同时还针对传统Web应用系统开发测试中的难点进行测试,并通过Mock此类全局的Web的请求信息以实现更为专注的测试前台页面及其展示数据等的目的。
参考文献:
[1] 程成,须文波,冷文浩. 基于.NET 平台的 Web 系统的构建和实现[J]. 计算机工程与设计,2009,(12).
[2] 金永涛. 基于. NET框架的Web应用系统安全问题研究[J]. 北华航天工业学院学报,2009,(09).
[3] 王伟. 基于.NET环境开发Web应用系统的研究[D]. 武汉理工大学,2010
本文转自:www.mxhslw.com