admin 管理员组文章数量: 1086019
2024年3月28日发(作者:app下载安装免费下载app)
维普资讯
第24卷第6期
2007年11月
河北工业科技
Vo1.24,No.6
Nov.2007
Hebei Journal of Industrial Science and Technology
文章编号:1008—1534(2007)06—0321-04
MVC设计模式在.NET中的应用研究
郑广成
(1.江苏大学计算机科学与通信工程学院,江苏镇江 212013;2.连云港职业技术学院信息工程学
院,江苏连云港222006)
摘 要:从视图、控制器、模型3个方面分析了MVC设计模式,结合.NET框架提出了基于MVC
架构的三层体系系统结构的应用方案和扩展MVC模式的思路和方法,并结合MVC三层体系架
构进行了高校教师绩效考评系统的设计,对设计过程和结果进行了分析,表明了该方案的有效性和
先进性。
关键词:框架;设计模式;MVC
中图分类号:TP311.11 文献标识码:A
Study of application of MVC design pattern in.NET
ZHENG Guang—cheng ’
(1.School of Computer Science Telecommunication Engineering,Jiangsu University,Zheniiang Jiangsu 212013,China;2.De—
partment of Information Engineering,Lianyungang Technical College,Lianyungang Jiangsu 222006,China)
Abstract:This paper first analyzed the MVC design pattern through the three aspects of view,controller and model;Then,it
proposed the application scheme of three-layer system structure based on MVC and.NET,and proposed a method tO extend
MVC design pattern;at last,a university teachers performance appraisal system is put forward,and the procedure and result of
the system are analyzed,which proves it has the advantage of effectiveness and superiority.
Key words:framework;design pattern;MVC
目前,比较流行的两大电子商务平台分别是微
软公司的.NET和SUN公司的J2EE。对于J2EE,
每个页面的用户交互 ,如何在.NET中应用上述
的设计模式,一直是许多人感到困扰的一个问题。
本文结合实际应用需求,讨论了.NET结构中MVC
设计模式的研究和应用。
人们已经提出了许多设计模式,而在.NET方面则
相对较少。J2EE中常用设计模式有MVC(model
view controller),PAC(presentation abstraction
contro1)和Forward Receiver,Publisher—Subscriber
1 MVC设计模式
MVC适用于大型可扩展的web应用的开发,
等,都能很好地解决软件应用开发中遇到的问题,达
到编码规范化和软件模块化,从而获得具有良好复
用性和扩展性的应用软件。而在.NET的web应
用中,微软公司推荐使用“code behind”代码来处理
收稿日期:2007—01-08;修回日期:2007—05—23
责任编辑:陈书欣
作者简介:郑广成(1978一),男,河北枣强人,讲师,系统分析师,
它强制性地将应用程序的输入、处理和输出分开,将
其划分为模型、视图和控制器3个核心部分,使它们
各司其职,各自完成不同的任务,其中任何一部分的
修改都不会影响其他两部分。
在MVC模式中,模型封装了应用问题的核心
数据、逻辑关系和业务规则,提供了业务逻辑的处理
过程。模型一方面被控制器调用,完成问题处理的
操作过程,另一方面为视图获取显示数据提供了访
硕士研究生,主要从事数据库技术、信息系统开发、系统分析和计算
机应用方面的研究。
维普资讯
河北工业科技 第24卷
问数据的操作。
视图是MVC模式下用户看到的并与之交互的
MVC的处理过程是:对于每一个用户输入的
请求,首先被控制器接收,并决定由哪个模型来进行
界面。视图从模型处获得数据,其更新由控制器控
制。视图不包含任何业务逻辑的处理,它只是作为
一
处理,然后模型通过业务处理逻辑处理用户的请求
并返回数据,最后控制器用相应的视图格式化模型
种输出数据的方式[2]。
在MVC模式中,控制器主要起导航的作用,它
返回的数据,并通过显示页面呈现给用户[3,43。图l
所示为模型、视图、控制器这3个模块各自的功能以
根据用户的输入调用相应的模型和视图去完成用户
及它们之间的相互关系。模型、视图与控制器的分
的请求。
离,使得一个模型可以具有多个显示视图。
— 一
方法调用:一一一 —事件
图l MVC的功能和关系
Fig.1 Relation and functions of MVC
2.NET框架下MVC设计模式的应用方案
中;也不会知道这些数据具体是如何进行操作
在基于.NET框架的软件体系结构中,ASP.
的,这极大地降低了软件体系中各个功能部件的
NET提供一个很好实现这种经典设计模式的类似
耦合性,提高了软件的可重用性和可扩展性。
环境口],开发者通过在ASPx页面中开发用户接口
在具体设计过程中,模型的设计实现最为重要,
来实现视图,控制器的功能在逻辑功能代码(.cs)中
可以借鉴J2EE中的多种设计模式[2]。Value Ob—
实现,而模型就要通过编写具体的类来封装相应的
ject值对象设计模式[5]:在J2EE的值对象设计模式
应用逻辑功能。
中,用一个数值对象bean来充当EJB对象的数值
在.NET中实现MVC的设计与较经典的
映像,当客户机和服务器通信时,就用这个数值
ASP结构相比有明显的优点。将用户显示(视
bean来包装实体bean的各个属性,形成一个粗粒
图)从动作(控制器)中分离出来,提高了代码的
度的对象[6],用这个对象作为参数来进行信息交换。
重用性。在经典的ASP文件中,既包含有ASP
而在.NET中,可以采用类似的模式创建这样一种
语言,又包含有相应的脚本语言,显然不合适;将
类:其针对数据库中的每张表或者每一次用户交互
数据(模型)从对其操作的动作(控制器)分离出
操作所创建的,它只包含有属性。
来,又可以设计一个与后台的数据操作和数据存
具体实现时,可以采用目前流行的三层体系架
储无关的系统。如果设计正确的话,一个基于
构[73。三层架构划分的目的是为了使系统的层次清
MVC设计模式的系统将不会知道、也不会关心
晰,易于设计、维护、伸缩和重用。三层体系架构与
提供给模型组件的数据是存储在SQL Server或
MVC传统的两层架构相互结合,成为当前Web程
是Oracle数据库中,还是存储在一组XML文档
序开发的主要模式,见图2。
维普资讯
第6期 郑广成 MVC设计模式在.NET中的应用研究 323
用户浏 \\J墒铂兰 二I寒 —] :j模型
览
器 < 视图
l广
表示层 应用层 数据层
图2 MVC与三层架构关系图
Fig.2 Relationship between MVC and three layer
MVC模式通过ASP.NET编写,具有极其良
好的可扩展性。它可以轻松实现以下功能[6]:
1)实现一个模型的多个视图;
2)采用多个控制器;
3)当模型改变时,所有视图将自动刷新;
4)所有的控制器将相互独立工作。
这就是MVC模式的好处,只需在以前的程序
上稍作修改或增加新的类,即可轻松增加许多程序
功能。以前开发的许多类可以重用,而程序结构根
本不再需要改变,各类之间相互独立,便于团体开
发,提高开发效率。图3讨论如何实现1个模型、2
个视图和1个控制器的程序。其中模型类及视图类
根本不需要改变,与前面的完全一样,这就是面向对
象编程的好处。对于控制器中的类,只需要增加另
一
个视图,并与模型发生关联即可。该模式下视图、
控制器、模型三者之间的示意图见图3。同样也可
以实现其他形式的MVC。例如:1个模型、2个视
图和2个控制器。从上面可以看出,通过MVC模
式实现的应用程序具有极其良好的可扩展性,是
ASP.NET面向对象编程的未来方向n]。
图3视图、控制器、模型三者之间
的关系示意图
Fig.3 Relation schematic diagram of
view,controller,model
3 MVC模式在.NET中的应用实例
基于Web的高校教师绩效考评系统,其功能
模块主要包括:查分、教学评价、科研评价、管理评
价、综合模糊考评、后台系统管理等6个模块。登录
打分查分:分为教师、学生、二级学院、教务处4级登
录,分别具有不同权限,面对不同的页面视图;个人、
学生、同行、领导等4个角色对教师分项打分和个
人、集体查分;教学考评:有教务处或二级教学单
位给予教学实绩考评分数,包括工作量、任课效果、
奖励、结果等;科研评价:根据教师个人实际的学术
科研成果给出相应的分数,包括论文、教材、课题、成
果、专利等;管理评价:对担任管理方面的工作给予
评价,包括行政职务、学生管理、学术兼职、荣誉称号
等;后台管理主要实现对考核项目、综合考评结果、
数据导入/导出、人员身份验证、安全、数据维护、参
数设置等的管理。
根据功能模块的分析,设计出相应的三层体系
结构[7,8],见图4。
客户层在Web层中,引入控制器对象,这是
由.NET自带的模块,用.es(例如:Controller.es,
Httpcature.cs)文件来实现,负责接收客户端的
GET和POST请求。与J2EE中由Servlet集中控
制的方式不同,.NET采用了分散控制的方式,这
种方式有利于建立起控制器与页面的对应映射方
式,增加了代码的可读性。使用该控制器作为处理
请求的最初联系点,该控制器管理着请求的处理,
包括调用安全服务,比如:验证和授权、委托业务处
理、管理合适的视图选择、错误处理等。控制器有助
于减少嵌入在ASPx中的C#代码的数量。应用逻
辑层在Web层中,完成商业逻辑的实现,也已经将
模型和控制器进行了有效分离,接着建立相应的数
据模型。与J2EE中的JavaBean相对应,建立了2
种类:用于数据的操作类和用于获取数据的属性
类,可以将这2种类进行封装,放到统一的dll文
件中,作为动态数据链接库,以便高层的程序员调
用;这种建立数据模型的方式有利于提高代码的可
重用性,也有利于整个系统的扩展。
将MVC与.NET结合的最主要的难点也在于
应用逻辑层的构建[93。在J2EE中,逻辑层可以直
接通过EJB来获得,但是在.NET中,就不得不自
己来构建。主要过程就是必须根据程序所要求的功
能,建立与之对应的属性类(实体Bean)和操作类
(会话Bean),而其中的每一个属性类和操作类都有
数据库中的一个存储过程与之相对应,所以建立一
个功能强大的应用逻辑层是非常复杂和繁琐的,但
是考虑到构建它所带来的优点,付出时间和精力来
开发这样的一个应用逻辑层是值得的。数据库层的
维普资讯
324 第24卷
登录打分查分 管理评价 教学评价 科研评价 后台系统管理 综合模糊考评 ASPx:页面
—
一
dll文件:动态数据链接库 I
…
I/I登录打分查分 l… I模糊评价 ‘
<
、I/}登录打分查分 J…
性类
模糊评价 I\
\\ I 系统管理 l//\\ 系统管理 f//
、\
一一
/、、\
—一一
/ 应用逻辑层
..
l 丌一。
数据库服务器 _J 裂琚库层
图4 基于MVC架构的三层体系系统结构
Fig.4 Three-layer system structure based on MVC
设计严格遵循数据库逻辑结构设计中的第三范式,
设计模式在.NET中三层架构的应用方案以及
确保较小的数据冗余度,并保存了所有对数据库的
ASP.NET对MVC模式的扩展;分析了.NET环
操作,用存储过程来实现,以供高层开发者调用 如]。
境下实现基于MVC的高校教师绩效考评系统的设
计,并对系统设计结果进行分析,指出了优越性和不
4结果分析
足。
将.NET中应用基于MVC架构的三层体系系
参考文献:
统结构进行软件系统开发,使得整个软件开发呈现
[1]BELINASO M,HOFMAN K.ASP.NET Web站点高级编程
出系统性,成功实现了软件开发的分工。因为按照
[M].康博译.北京;清华大学出版社,2002.
这种层次设计的思想,可以有专门的页面设计人员
E2]张丽君,齐建卓,吴宏波.基于MVC模式的Struts框架在Web
负责客户层的开发;专门的逻辑设计人员来负责应
系统开发中的应用[J].内蒙古大学学报,2005,36(1):36—39.
用逻辑层的开发;而且由于控制器与页面的分离,使
[3]GAMMA E,HELM R,JOHNSON R,et a1.设计模式:可复用
得html代码中将不包含脚本语言,这进一步提高了
面向对象软件的基础[M].李英军,马晓显,蔡敏,等译.北
京:机械工业出版社,2000.
程序执行速度。在系统实现的过程中,还可以根据
[4]林舒萍,罗键.设计模式的应用研究[J].计算机工程与设计,
实际要求,构建适合的模型,进行模型移植和复用,
2005,26(11):2 980—2 983.
例如:可以将模型编成动态链接库(dl1),这就使得
[5]柯茄,张忠能.Struts在开发B/S结构系统中的应用[J].计
整个软件开发的过程更具灵活性,必要时还可以进
算机工程,2004,30(12):48-51.
行模型扩展。同时,也看到了MVC增加系统结构
E6]甄镭..NET与设计模式[M].北京;电子工业出版社,2005.
[7]涂永忠,邵晨曦,蔡维德,等.影子模式:一种新的用于测试的设
和实现的复杂性,访问模型数据库的低效性,该模式
计模式[J].计算机研究与发展,2004,41(1):34—40.
更适合大型信息系统开发,不利于小型系统设计等
[8]朱翠苗,林庆,郑广成.基于.NET Remoting的分布式数据
现实情况。
库查询方案[J].河北工业科技,2007,24(3):170—173.
C9]黎永良,崔杜武.MVC设计模式的改进与应用[J].计算机工
程,2005,31(9):96—98.
5 结 语
[1O]宋伟,杨振峰,杨丽华,等.基于J2EE和MVC模式的Web
介绍了MVC设计模式的原理;提出了MVC
应用程序开发方法[J].河北工业科技,2005,22(3):189—194.
版权声明:本文标题:MVC设计模式在.NET中的应用研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711607108a602052.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论