【asp精品源码栏目提醒】:网学会员在asp精品源码频道为大家收集整理了“【精品推荐】ASP_NET开发环境下的WebForm与MVC设计模式 - 技术总结“提供大家参考,希望对大家有所帮助!
专 业 推 荐 ↓ 精 品 文 档 ASP.NET开发环境下的WebForm与MVC设计模式陈晓丹1 郑 毅21.武汉工程职业技术学院 湖北武汉:4300802.武钢自动化公司 湖北武汉:430080摘 要 通过实例从理论上对传统的ASPWebForm模式及微软最新推出的MVC模型—视图—控制器模式进行了剖析对比认为两种开发模式各有优势。
每个人的开发风格不同对于技术的需求和看法也尽不同。
微软推出自己的MVP模式不会被用来替换WebForm模式而是给我们一种新的选择。
关键词 ASP.NETWebFormsMVCURL中图分类号:TP391 文献标识码:A 文章编号:090220038203 ASP.Net是建立在微软新一代.Net平台架构上利用普通语言运行时CommonLanguageRunt2ime在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。
ASP.NET可用于在服务器上生成功能强大的Web应用程序。
与基于过程的ASP页面技术相比面向对象技术在ASP.NET中得到了完全实现。
1 ASP.NETWebForms模式微软设计了一个完整的Web开发环境VisualStudio使得开发人员只需在这个可视化设计器中拖放控件、并且在表单中设置属性即可。
与此同时开发人员可以编写代码来响应事件这使得对于程序逻辑的操作变得非常直观就好像并非在开发一个Web应用一样。
在ASP.NET中一个页面是一个生成HTML的类。
这个模式被称为WebForms。
对于WebForms来说Web服务器控件都放在一个页面上。
当这个页面被访问的时候这些控件自动将它们以HTML的方式实现。
浏览器和服务器之间的复杂过程对程序员来说是透明的由服务器自动完成并允许事件处理。
WebForms能够让页面的UI完全独立于页面的逻辑而被创建然后通过继承而结合起来。
不会再有夹杂着HTML和VB2Script的页面了。
页面的逻辑是使用一种全功能的.NET语言比方CVisualBasic.NET或者Jscript.NET实现的。
更进一步的说页面逻辑的实现过程可以随意使用所有的.NET基类类库。
在一个ASP.NET网站中URL会被映射到存储在磁盘上的文件主要是指.aspx文件。
这些.aspx文件中将包括针对客户端发出的请求要处理的代码或标记。
每一个.aspx文件都有一个对应的代码隐藏文件该文件中存放着运行时要编译的类源代码。
例如用VS2003开发平台使用C作为脚本语言的asp.net网站URL:http://localhost/Default.aspx表示请求网站根目录下的Default.aspx文件如果这个文件中有表单或数据处理要求则程序语句:提示当按下“提交”按钮时转到服务器端执行Default.aspx.cs文件中的btnOK_Click方法进行数据处理。
WebForms模式提供了一个高度抽象的框架使得入门变得非常容易。
但同时也将开发人员和低端的Web机制隔离开来。
WebForms让开发人员能够轻松地拖放控件并且通过响应页面和控件的各种事件来快速开发Web应用。
但是首先这种高度的抽象使很多开发人员完全忽略了———甚至从没有了解过在这背后HTML是如何运作的。
这往往会产生无法通过校验的HTML代码或者是一些 收稿日期:2008204212 修回日期:2009205208 作者简介:陈晓丹1959女工程师.E2mail:jsjcctom.com非常冗余、难以管理的HTML布局从而提高了Web应用程序开发的复杂性。
例如即使一些非常简单的Web页面也有可能产生大于100KB尺寸的View2state这当然会在某些情况下严重影响系统的性能。
此外开发人员还无法控制Web表单生成的HTML而且ASP.NET服务器控件生成的HTML既混杂有内联方式也包含不符合标准的过时的标签。
2 ASP.NETMVC模式ASP.NETMVCModel2View2Controller模式能够简化ASP.NETWeb表单方案编程中存在的复杂部分但是在威力与灵活性方面将一点也不会逊色于后者。
与传统WebForm在控制上的不同在于WebForm采用页控制器模式而MVC采用前端控制器模式。
MVC结构把交互系统的组成分解成模型、视图、控制器三种部件是为那些需要为同样的数据提供多个视图的应用程序而设计的它很好的实现了数据层与表示层的分离。
MVC模式的一个关键特性是提供了一种为特定任务生成内容而创建自定义视图View的能力。
而控制器Con2troller的最大作用应该是“控制和调度”控制即前台视图view的显示显示哪个视图调度即执行相应的业务逻辑即完成对model数据模型的封装调用并实现相关的业务逻辑。
而业务规则是在Services里进行与Controller无关。
在默认情况下生成视图的输出内容依旧使用了ASPX页面:ViewPage类。
它基于Page类但是并不会直接被HTTPHandler执行而是被MVC引擎用作内容生成器这比在完整的WebForms模式中运行传统的ASPX页面要显得瘦身了许多。
以利用VS2008开发为例。
新建一个MVC项目即可看到自动生成的文件夹结构:其中各文件夹的基本作用:Content———存放应用需要的一些资源文件如图片、CSS等。
Controllers———存放控制器类。
Models———存放业务模型组件。
Scripts———存放JavaScript脚本文件。
Views———存放视图。
ASP.NETMVC模式以不同于ASP.NET网站应用程序的方式把URL映射到ASP.NET页面或HTTP处理器程序而是直接把URL映射到特定的控制器类并且任何的操作都会被引导至控制器中的特定方法然后由控制器类负责处理发来的请求这在一定程度上回到了传统的ASP风格那便是直接使用脚本来手动生成HTML的开发方式。
在MVC模式下一般地默认情况下请求URL的格式为http://localhost/ControllerName/Action2Name其中ControllerName是控制器类名“Control2ler”前的部分ActionName就是方法名。
这个请求被ASP.NETMVC的路由映射系统截获。
路由映射系统按照映射规则解析出Controller名Con2trollerNameAction名ActionName和各个参数Parameters然后找寻Controllers目录下的NameController.cs这个控制器类找寻这个类下与ActionName同名的方法将Parameters作为参数传给这个方法而后Action方法开始执行完成后返回Views目录下与ControllerName同名的目录下的与ActionName同名的aspx文件并且将ViewData传递到视图。
ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据。
在这种模式下URL:http://localhost/Announce/Release就被解释为请求AnnounceController控制器类下的Release方法:publicActionResultRelease数据处理……returnViewRelease其中数据处理过程即是完成建立在models文件夹下的数据模型的封装调用并实现相关的业务逻辑方法最后一条语句则提示将数据处理结果送回到view文件夹下的Release.aspx页面中显示。
93 陈晓丹 郑 毅:ASP.NET开发环境下的WebForm与MVC设计模式如果这个页面文件中有表单或数据处理要求则程序语句:……提示当按下“提交”按钮时执行Controllers文件夹下AnnounceController.cs类文件中的DoRelease方法publicActionResultDoRelease数据处理……returnViewReleaseSucceed执行后将数据处理结果再次送回到建立在view文件夹下的另一个页面文件ReleaseSucceed.aspx中显示。
模型、视图与控制层的分离使得一个模型可以具有多个显示视图。
模型、视图、控制层三者之间的关系和各自的主要功能如图1所示。
图1 MVC组件类型的关系和功能通过在ASP.NET中的MVC模式编写的程序具有极其良好的可扩展性只需在以前的程序上稍作修改或增加新的类即可轻松增加许多程序功能。
以前开发的许多类可以重用而不需改变程序结构各类之间相互独立所以便于团体开发提高开发
上一篇:
(精品)毕业设计论文:电子购物网站
下一篇:
法律专业开题报告范文