【vb精品源码栏目提醒】:网学会员vb精品源码为您提供【精品推荐】ASP_NET开发环境下的WebForm与MVC设计模式 - 技术总结参考,解决您在【精品推荐】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模式编写的程序具有极其良好的可扩展性只需在以前的程序上稍作修改或增加新的类即可轻松增加许多程序功能。
以前开发的许多类可以重用而不需改变程序结构各类之间相互独立所以便于团体开发提高开发效率。
该模式下视图、控制器、模型三者之间的示意图如图2所示。
图2 视图、控制器、模型三者之间关系的示意图 同样也可以实现其它形式的MVC。
例如:一个模型、两个视图和两个控制器。
从上面可以看出通过MVC模式实现的应用程序具有极其良好的可扩展性是ASP.NET面向对象编程的未来方向。
MVC的不足在于:MVC的设计实现并不十分容易尤其对于小型系统要严格地把模型与视图分开来会耗费很多的时间似乎并不划算而且对开发人员的要求比较高。
因此对小型系统来说MVC只是一种基本的设计思想还需要详细的设计规划。
再就是它的复杂性。
MVC模式引入了新的间接级别因此稍微增加了解决方案的复杂性。
即使是开发简单的页面MVC模式也需要大量的代码。
它还增加了用户界面代码的事件驱动特性调试用户界面代码会变得更加困难。
此外将模型与视图分离并不意味着模型的开发人员可以忽略视图的特性。
所以在对模型进行编码时要牢记视图。
3 结语ASP.NETMVC从根本上脱离了过去所提倡的WebForms技术而被普遍认为是向主流Web编程的回归。
MVC仅仅是被推荐使用的构建ASP.NET应用程序的一种可能的开发模式。
这样一来ASP.NET程序员就有了另一种极好的选择方案。
如果不喜欢MVC模型或者觉得它与你的开发方式天生相克你完全可以置之不理。
MVC模型仅仅提供了一种额外的选择而不是要替换现有的WebForms模式。
参考文献1 MVCEB/OL.sanve博客:http://hi.baidu.com/sanve/blog/item/16234ea90b071dfd1e17a2ee.html2 ASP.NET3.5MVC框架深度解析EB/OL.朱先忠博客:ht2tp://space.itpub.net/uid2144662412action2viewspace2itemid23446173 WEB框架、MVC与ASP.NETEB/OL.http://www.why100000.comhttp://www.why100000.com/_articles/show_a_article.aspautoid90tabtabDotNET4 ASP.NETMVC案例教程EB/OL.张洋博客:http://www.cnblogs.com/leoo2sk/下转第34页04武汉工程职业技术学院学报 2009.2 统分两片区域共20个用户点每一用户点处的线间变压器与扬声器接线如图3所示。
图3 线间变压器与扬声器的连接示意图2.4 线路选择与敷设工业对讲系统的线路一般采用穿管或线槽的敷设方式。
设备馈电线采用聚氯乙烯绝缘双芯绞合的多股铜芯导线。
工业对讲系统前级控制汇话线路采用屏蔽电缆。
为保证传输质量自功放设备输出端至最远扬声器或扬声器系统的导线衰耗不应大于0.5dB1000Hz时。
功放设备输出线采用橡皮电缆接至扬声器。
2.5 信号传输当需要通过扩音机播送生产调度信息时按下送话器按钮AN1电流经过送话器SX1、继电器SSR的输入端、电位器R1到地构成回路使送话器处于工作状态同时继电器SSR启动其AC端接通了GY2×275W扩音机的高压使扩音机的功放处于工作状态。
此时对着送话器讲话送话器受到声压的影响产生音频信号该信号经电容C10、电位器R1到地构成回路由R1的中心抽头取出的部分音频信号经电容C5、C6送至TDA2003音频功率放大集成电路进行放大再经电容C8耦合至GY2×275W扩音机进行功率放大后输出经线间变压器送至扬声器从而把调度的信息传递出去。
3 结论基于GY2×275W扩音机的集呼式工业对讲系统能满足生产的需要还可以与工业电视监控系统、工业调度电话系统等体系综合运用使工业生产调度监控能力更加强大。
参考文献1 胡宴如.模拟电子技术M.北京:高等教育出版社2004.GY2×275WLoudspeaker2basedIndustrialIntercomeSystemLIXiaohongAbstract:AcomprehensivedescriptionisgiveninthispaperoftheGY2×275Wloudspeaker2basedin2dustrialintercomesystemincludingcompositiondesignandauralsignaltransmissionprocess.Keywords:industrialintercomesystemGY2×275Wloudspeakerauralsignal责任编辑:栗 晓上接第40页ComparisonofASPWebFormandMVCCHENXiaodan ZHENGYiAbstract:AtheoreticalanalysiswascarriedoutonthestrengthandweaknessofthetraditionalASPWebFormandnewlyintroducedMVC.Thepaperbelieveseachmodelhasitsownadvantages.Howeversoftwaredevelopershavedifferentrequirementsforandviewsoftechnologyduetodifferentstyles.MVPframeworkwillnotreplaceWebFormitjustoffersusersanewchoice.Keywords:ASP.NETWebFormMVCURL责任编辑:栗 晓43武汉工程职业技术学院学报 2009.2