ASPNET环境下MVC模式的一种实现方法与应用.pdf
《ASPNET环境下MVC模式的一种实现方法与应用.pdf》由会员分享,可在线阅读,更多相关《ASPNET环境下MVC模式的一种实现方法与应用.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2 5 卷第3 期2 0 0 8 年6 月华东交通大学学报J 叫眦l0 fE 吼(h mJ i 踟t a n gU n i v e r s i t yV d 2 5N 0 3J 岫,2 0 0 8文章编号:1 0 0 6 一0 5 2 3(2 0 0 8)0 3 0 0 5 9 0 5A S P N E T 环境下M V C 模式的一种实现方法与应用李朔,李培松(华东交通大学信息工程学院,江西南昌3 3 0 0 1 3)摘要:M v C 是一种成熟优秀的设计模式,分析了A S P N l 丌平台自身提供的实现M v c 模式机制的缺点,进一步引入前端控制器和具体页面控制器的两级控制器的概念,
2、并以某软件企业“工作进度管理系统”为实例,介绍了W e b 开发中一种使用M a v 甜c k N E r 作为前端控制器,以A s P N l 玎后台页面类作为页面控制器来实现M v C 模式的方法,该方法可以有效改进A s P N l 玎原有机制实现M V C 模式的不足关键词:J 研N E I;m 佗;M a v 面c k;前端控制器中图分类号:哪l l文献标识码:AA s P N E T 是微软公司近年来推出的新型体系结构M i c r o 幽N I 汀框架下的w e b 开发技术,它可以开发功能强大的w e b 应用,构建大型的W e b 程序和W e b 服务变得更加方便快捷越来越
3、多的应用开始选择基于A S P N E T 的B S 架构进行开发,而W e b 应用的开发较之传统c S 架构的桌面应用开发受限较多,对于较大规模的B s 应用程序,程序的调试及维护非常不便,如何在M 玎框架下构建易维护、可复用的w e b 应用程序一直是开发人员力图解决的问题本文以某软件企业工作进度管理应用系统的开发为例介绍A S P M 玎平台上一种可行的M V C解决方案系统采用了A S P m 下的M v C 设计模式,实现了业务逻辑、控制逻辑及前端数据显示逻辑的分离,从而使系统具有良好的扩展性与可维护性1 设计模式与M v C 设计模式1 1 设计模式过去的几十年中,人们在寻找问题
4、的解决方案的过程当中,发现大量本质上相类似的问题会反复出现并不断改变面孔,它们“相类似的本质”就是模式的概念人们在利用面向对象技术解决这些相似问题的过程中有针对性的就某些同类问题设计总结了一些良好的解决方案,即所谓的设计模式面向对象技术的目的之一就是提高软件的重用性,而设计模式、设计方案的重用则从更深的层次上体现了重用的意义和本质1 2I 吖C 设计模式M v C 设计模式是M 删(模型)一V i 哪(视图)一e r(控制器)的简称它要求应用程序在结构上按照功能的不同划分为r n o d e l,v i e w 及o o n 劬l l e r 三个功能模块作为一种软件设计模式,M v c 模块
5、划分清晰、责任明确应用M v C 模式开发的程序具有较好的伸缩性、可重用性和可维护性M v C 架构如图1 所示图1M V C 关系图收稿日期:2 0 0 r 7 一1 2 1 2作者简介:李朔(1 9 7 7 一),男,江苏南京人,华东交通大学硕士研究生,主要研究方向为电子商务,分布式计算 华东交通大学学报瑚8 年模型是问题中相关数据的逻辑抽象,代表了系统的内在属性,是整个模型的核心它包含了应用程序的数据以及对数据进行访问、修改的业务逻辑规则,表达了程序所使用的数据和应用程式序的运行状态视图是模型的外部表现,一个模型可以对应一个或者多个视图用户看到视图界面并与之交互,它主要负责访问模型中的数
6、据并决定如何展现这些数据在模型发生改变时,视图将维护与模型的一致性同时,视图也负责把用户请求传递给控制器控制器是模型与视图的联系纽带,它接收通过视图传人的外部消息,解释用户动作,并把它映射为模型执行的过程它控制着模型和视图之间的交互,决定对用户动作的响应流程它主要完成两个方面的任务:一方面将用户与视图的交互动作映射成应用程序的标准业务事件并调用相应的模型进行处理,另一方面它将根据用户动作及模型的改变选择适合的视图来展现给用户2A S P M 玎下的M V C2 1A S P N E T 对M v C 的实现及缺点A S P M 丌本身提供了一个实现M v C 模式的环境【1 I 在A S P
7、M 汀中,以页面(视图)为中心:每一个视图(a 印x 文件)都有一个对应的控制器(页面隐藏代码越p x c s 文件)页面控制器捕获视图中发生的事件和提交的数据,并调用模型来处理它们,控制器是介于视图和模型之间的一个中间层用户浏览器、视图、模型、控制器、数据库五者之间的应用系统模型如图2 所示朋刮翟删卜模张M o d c l)户廿务组件洲It 描龇件览1f b o 1 I p xl嚣图2A S P 陋r 下的M、化应用模型在A S P 陋r 中使用基于c o|d e 一洲技术的所谓w e bF o 肌开发方式,使得W e b 程序的开发接近于传统桌面程序,尽管这样可以有效的使美工人员和程序人员
8、各自关注自己的领域,使前后台的开发同时进行,但这其中够p x 文件和a s p x c s 被混成了一个类,控制器只是对应页面的页面控制器(P a g d c o n 劬U e r),所以A S P M 玎只是在形式上把视图和控制分开而已,视图和控制器之间有较强的耦合性而这种强耦合性会使得控制器选择下一视图时受到了很大限制,通常只能通过在代码中硬编码R e s p o n R e d i r e c t()这样的语句来将请求转给下一个视图,而不是控制器本质上说,这种方式使w e b 应用仍是从一个页面流向另一个页面,当页面很多且页面间的这种联系复杂多变时,程序的复用性,扩展性和维护性能非常的不
9、好2 2 对A S P M 玎下M v C 的扩展与M a v e r i c k N I 玎针对A S P M 玎中控制器与视图的高耦合性,可以对其进行部分扩展,将控制器分为两层:1)前端控制器(F r o n tC 仰u e r):在整个应用程序中只有一个前端控制器,它负责接受所有客户端的动作请求,对请求做一定的处理后再选择转交给某一具体的页面控制器前端控制器决定了整个对用户的响应流程2)具体页面控制器(s p 耐&P a g e C 0 洮):在整个系统中有多个具体的页面级控制器,它对应于页面,它负责根据用户的具体请求来调用模型功能进行具体的业务逻辑处理,然后决定数据通过视图以何种方式展
10、现给用户采用两层控制器,将与视图无关的程序流转控制分离出来形成前端控制器,而与视图的数据展示有较强关系的页面控制功能则由具体页面控制器来实现2 3M 删c k N E Tc k 舸是一个比较早的M 丌下的M v C实现,它是一个非常轻量级的实现,但其功能相当完备,具有较好的灵活性早期的蜘c k 在视图的层面上只支持纯粹的A S P 方式或者是以A S P 方式编写的越p x 页面,这导致A S P 陋r 环境下V i 删S t a l e、P b s t b a c k 事件机制、用户控件等这些特性都不能使用,这极大限制了A s P M 中的新特性的应用而自1 2 版本后M a v e r i
11、 c k M 玎对A S P M 玎有了一个比较完全的支持,包括对服务器控件,用户控件等的支持,这样就使得可以在蜘c k 框架下充分利用A s P N E T 的特性进行设计和开发M a v e r i c k N】玎作为前端控制器的主要控制流程如图3 所示用 第3 期李朔,等:A S P N E r 环境下M v c 模式的一种实现方法与应用6 l地e 咖k 首先将每一个由视图提交的H t l p 请求拦载并通过d i s 吣h 盯对象(H t t p H a I l d l e r 类)映射成一个鲫栅n d,接着由C 0 删对象(实现了I 伽姗岫d 接口)根据M a v 耐c k 的核心配
12、置文件瑚v*i c k 伽堍选择与该n d 对应的控器对象并执行控制器对象中的特定方法,在控制器方法中调用模型执行业逻辑,最后c 0 咖l a n d 对象根据控制器执行的结果决定返回给用户的视图,使用V i 州对象生成输出 3 J 3 某软件企业工作进度管理应用系统M v C模式的开发实例3 1 系统需求该应用系统主要包含企业工作任务的定立:委派、工作管理及工作进度查看等功能用户等级分为试用员工、员工部门主管,分公司经理,经理总监5个级别,各级别用户可用功能基本相同,但不同级别的用户对各功能的使用方式和访问权限不同系统还设有管理员级别用户,该级别用户可使用系统管理功能,如添加编辑员工,添加编
13、辑部门等系统功能该工作进度管理系统的开发只是最终企业内完整信息化系统的第一阶段,是将来完整系统的一个子系统,要求它为将来的继续开发搭建好系统的基本框架,后续的其它子系统开发将以此为基础,分多个开发阶段加入进系统3 2 系统设计系统基于s+A S P M 玎+刚姗平台开发,整体架构使用前述具有二级控制器的M、陀模式视图部分通过a 8 p x 文件实现,用于向用户展现数据;具体页面控制器通过M 汀页面的后台编码文件鹳弘来实现,它对应于具体前台页面,控制前台页面的展现的数据内容和方式,这种方法可以最好的利用A s P 腿r 的W e bF 0 血编程方式的各种优点;前端控制器使用蜘c k N 吼来实
14、现,它主要用于截获用户访问动作,并根据删c k 咖缸文件配置决定对用户动作的响应及程序的执行逻辑;模型采用N l 玎组件类实现,主要分为A 嘲B a 眈(基本访问),P I D c(工作管理),G 瑚伊(工作进度),O p e n F 岫(公共功能),w D f k 讹叫肾(工作管理)等组件类A 嗍s B a 跎组件类作为基本的数据访问组件可以完成数据的存取更新等最基本的数据库操作,其它组件也可以使用该组件类完成一些数据访问工作组件类完成一些较高级的数据访问,主要是用于实现对各实现业务逻辑的s Q L 存储过程的调用G u a g e 组件类用于实现系统中项目、行为期、工作项三个级别工作的进度
15、计算呐F l m 组件类用于实现整个系统的一些公共功能,如登录功能,日志功能等w b r I【M a n a 辨组件类用于实现工作设定、委托、进度调整的业务逻辑系统按照三层w e b 结构划分为表示层(w e b)、业务层(B i z)和数据访问层(D A o)【2 J 结合M v c 模式,表示层由视图与前端控制器和页面控制器组成,实现V i w 和c 0 I l 叫k 的功能;业务层由业务组件G u a g e、O p e n F 叽、w D d【M a 衄萨等组成;数据层由数据组件A 渊B a 眙、P 眦等组成,由业务层和数据层共同实现M 删的功能如图4 所示用Jl 嚣黧嗣壁,堕堕耋翻1
16、业务蛆件t 拇访目蛔件览d“j G I-Fo 0*t 阳O h _器W M 唧W 吲【M _tj。I 燃滕_ I 毫幂屣t _ t 务腔f b 埘量I i 访问层(D 删圈4M V C 与三层W 曲结构示意圈4 部分实现代码4 1 前端控制器M l 融N l 玎1)c k N l 玎控制类删c k 的中定义的多个控制类,具体完成对用户U I 也请求的前端处理控制焖c k 中,根据控制类中是不是直接包含数据模型(比如一个用户定义的D r I D)分为,1 1 l 彻哪粕y,F o n n l I 鲥,n M 哪粕y F o n n,I l l 删y F o m U 孵四个基类,用户编写的控制类时
17、,应根据实际继承其中的一种类型,并重载特定方法完成实际功能系统中每一个用户I J I 也请求都将映射为一个伽删,而每一个伽m 瑚I l d 对应一个实际控制类,由该控制类完成前端总控功能控制类程类瑚v c t r l a 片断如下:加眦s p 眦o A W G W n 玳c t r lp u b l i cc l 髑a d 枞:蜘c k C n n yp u“ca d d w o I l【()p u b l i co V e r T i d es 呱G o()o p 挑o p f=I 删0 p 帆F 吼();6 2华东交通大学学报2 0 0 8 年I l s r C l s=o p f g e
18、 t C 峨n t U r C L 够s()s w i 曲(u s I c l s)鸵”l”:栅”G M”;c a 掣:咖”;c a 鸵”3”:m t u m”M”;c a s eq”:c a s e,5”:r e t u m”E”;d f I f a l l l t:r e n l m”e 爪矿;类a d d w o 出继承了基类,1 1 1 m 姻w a y,重载基类的G o()方法,该方法的作用是返回一个字符串,该字符串将被用于决定程序怎样流转a d d W o r k 类所做的工作就是调用模型中方法取得当前用户等级,然后返回相应的字串“G M”(经理总监)“”(分公司经理)“M”(部门
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASPNET 环境 MVC 模式 一种 实现 方法 应用
限制150内