ISAS文档ASP NET MVC.docx
《ISAS文档ASP NET MVC.docx》由会员分享,可在线阅读,更多相关《ISAS文档ASP NET MVC.docx(7页珍藏版)》请在冰豆网上搜索。
ISAS文档ASPNETMVC
课程代号:
83308213
2014-2015学年第2学期
《ISAS与项目训练
(二)》
ISAS:
ASP.NETMVC
班级:
13网络管理.
学号:
13734118.
姓名:
张凡.
指导教师:
周洪斌.
.
沙洲职业工学院NIIT安艾艾迪
摘要:
在程序开发过程中,为保证应用系统的灵活性、安全性、实用性并且提高开发的效率,需要一种好的设计模式来解决这一常见问题ASP.NETMVC(模型-视图-控制器)设计模式在实现应用系统中具有得天独厚的优势,本文从应用的角度分析了ASP.NETMVC技术的原理、优势以及在程序编写中的应用和使用技巧。
关键词:
MVC原理;优势;技巧;使用
目录
一、MVC技术概述2
二、MVC工作原理2
2.1Model3
2.2View3
2.3Controller4
三、MVC设计模式的扩展5
四、MVC的优势6
3.1设计清晰6
3.2独立性6
3.3易于扩展6
3.4加快了开发速度7
五、MVC的缺点7
六、MVC的应用8
七、结束语9
一、MVC技术概述
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
MVC是XeroxPARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,但是至今已被广泛使用尤其是最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用。
二、MVC工作原理
MVC是一个设计模式,它强制性的使应用程序的输入处理和输出分开使用MVC应用程序被分成三个核心部件:
Model(模型)、View(视图)、Controller(控制器),它们各自处理自己的任务。
View和Controller都可以直接请求Model,但是Model不依赖View和Controller,Controller可以直接请求View来显示具体页面,View不依赖Controller,可以通过另外的方式来请求Controller
2.1Model
MVC系统中的模型从概念上可以分为两类――系统的内部状态和改变系统状态的动作。
模型是你所有的商业逻辑代码片段所在。
本文为模型提供了业务实体对象和业务处理对象:
所有的业务处理对象都是从ProcessBase类派生的子类。
业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。
业务实体对象可以通过定义属性描述客户端表单数据。
所有业务实体对象都EntityBase派生子类对象,业务处理对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。
通过业务实体对象实现了对视图和模型之间交互的支持。
实现时把"做什么"(业务处理)和"如何做"(业务实体)分离。
这样可以实现业务逻辑的重用。
由于各个应用的具体业务是不同的,这里不再列举其具体代码实例。
2.2View
视图是模型的表示,它提供用户交互界面。
使用多个包含单显示页面的用户部件,复杂的Web页面可以展示来自多个数据源的内容,并且网页人员,美工能独自参与这些Web页面的开发和维护。
在ASP.NET下,视图的实现很简单。
可以像开发Windows界面一样直接在集成开发环境下通过拖动控件来完成页面开发本。
本文中介绍每一个页面都采用复合视图的形式即:
一个页面由多个子视图(用户部件)组成;子视图可以是最简单HTML控件、服务器控件或多个控件嵌套构而成的Web自定义控件。
页面都由模板定义,模板定义了页面的布局,用户部件的标签和数目,用户指定一个模板,平台根据这些信息自动创建页面。
针对静态的模板内容,如页面上的站点导航,菜单,友好链接,这些使用缺省的模板内容配置;针对动态的模板内容(主要是业务内容),由于用户的请求不同,只能使用后期绑定,并且针对用户的不同,用户部件的显示内容进行过滤。
使用由用户部件根据模板配置组成的组合页面,它增强了可重用性,并原型化了站点的布局。
视图部分大致处理流程如下:
首先,页面模板定义了页面的布局;页面配置文件定义视图标签的具体内容(用户部件);然后,由页面布局策略类初始化并加载页面;每个用户部件根据它自己的配置进行初始化,加载校验器并设置参数,以及事件的委托等;用户提交后,通过了表示层的校验,用户部件把数据自动提交给业务实体即模型。
这一部分主要定义了WEB页面基类PageBase;页面布局策略类PageLayout,完成页面布局,用于加载用户部件到页面;用户部件基类UserControlBase即用户部件框架,用于动态加载检验部件,以及实现用户部件的个性化。
为了实现WEB应用的灵活性,视图部分也用到了许多配置文件例如:
置文件有模板配置、页面配置、路径配置、验证配置等。
2.3Controller
为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的方式进行管理。
因此,为了达到集中管理的目的引入了控制器。
应用程序的控制器集中从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的视图组件。
用控制器提供一个控制和处理请求的集中入口点,它负责接收、截取并处理用户请求;并将请求委托给分发者类,根据当前状态和业务操作的结果决定向客户呈现的视图。
在这一部分主要定义了HttpReqDispatcher(分发者类)、HttpCapture(请求捕获者类)、Controller(控制器类)等,它们相互配合来完成控制器的功能。
请求捕获者类捕获HTTP请求并转发给控制器类。
控制器类是系统中处理所有请求的最初入口点。
控制器完成一些必要的处理后把请求委托给分发者类;分发者类分发者负责视图的管理和导航,它管理将选择哪个视图提供给用户,并提供给分发资源控制。
在这一部分分别采用了分发者、策略、工厂方法、适配器等设计模式。
三、MVC设计模式的扩展
通过在ASP.net中的MVC模式编写的,具有极其良好的可扩展性。
它可以轻松实现以下功能:
①实现一个模型的多个视图;
②采用多个控制器;
③当模型改变时,所有视图将自动刷新;
④所有的控制器将相互独立工作。
这就是MVC模式的好处,只需在以前的程序上稍作修改或增加新的类,即可轻松增加许多程序功能。
以前开发的许多类可以重用,而程序结构根本不再需要改变,各类之间相互独立,便于团体开发,提高开发效率。
下面讨论如何实现一个模型、两个视图和一个控制器的程序。
其中模型类及视图类根本不需要改变,与前面的完全一样,这就是面向对象编程的好处。
对于控制器中的类,只需要增加另一个视图,并与模型发生关联即可。
同样也可以实现其它形式的MVC例如:
一个模型、两个视图和两个控制器。
从上面可以看出,通过MVC模式实现的应用程序具有极其良好的可扩展性,是ASP.NET面向对象编程的未来方向。
四、MVC的优势
3.1设计清晰
用模块中的公用方法来操作它的数据和状态,很容易理解如何来控制模块的行为当设计一个应用时,这种方式将使整个程序更加容易维护。
3.2独立性
任何组件甚至整个模块都可以独立调换,视图和控制器改变不会影响到其他方面不同的组件开发可以同时进展视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模。
型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
3.3易于扩展
MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码它包括任何WEB(HTTP)浏览器或者无线浏览器(wap)控制器和视图可以随着模块的扩展进行相应的扩展,只要保持一种公用的接口,视图和控制器的旧版本也可以使用。
3.4加快了开发速度
对于开发人员来讲,由于MVC分离了模式中的数据的控制和数据表现,从而可以分清开发者的责任,后台开发人员可以专注业务的处理,前台开发人员专注于用户交互的界面,从而加快产品开发以及推向市场的进程,降低了开发和维护用户接口的技术含量有利于软件工程化管理由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化工具化管理程序代码降低的生命周期成本方便快速的部署使用MVC模式使开发时间得到相当大的缩减,不同模块的程序员只关注于自己负责的模块。
五、MVC的缺点
由于MVC它没有明确的定义,所以完全理解MVC并不是很容易使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考因此你将不得不花费相当可观的时间去考虑如何将MVC的显示它们由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解但是如果你要隔离模型视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难每个构件在使用之前都需要经过彻底的测试一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。
根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
六、MVC的应用
大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试MVC从根本上强制性的将它们分开尽管构造MVC应用程序需要一些额外的工作,是它给我们带来的好处是无庸质疑的。
首先,最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是WAP界面;用一个模型就能处理它们由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用例如,很多数据可能用HTML来表示,但是它们也有可能要用MacromediaFlash和WAP来表示模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。
因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。
控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段给定一些可重用的模型和视图,控
制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解但是如果你要隔离模型视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。
七、结束语
以上通过对MVC技术原理,以及MVC存在的优势缺点做了详细的分析,通过分析和比较,可以得出虽然MVC增加了一些工作量,但是他对整个系统的稳定性有了很大的提高,缩短了系统开发的周期明确了不同程序员的工作范畴是一条很好的创建软件的途径。