您好,欢迎来到刀刀网。
搜索
您的当前位置:首页基于ASP.NET MVC模式的软件开发架构的研究与探讨

基于ASP.NET MVC模式的软件开发架构的研究与探讨

来源:刀刀网
第6期 2016年l2月 .fr嗣鼋;研.鼍f呵宪障学瓤 Journal of CAEIT V01.11 No.6 Dec.2016 doi:10.3969/j.issn.1673—5692.2016.06.007 基于ASP.NET MVC模式的软件开发 架构的研究与探讨 仝 茵 (中国电子科学研究院,北京100041) 摘要:论文分析了ASP.NET MVC框架在企业日常事务管理软件开发中的应用,对开发过程中系 统的架构设计进行了详细的研究和讨论。在此基础上,对架构进行技术改进,分离关注点,抽取业 务处理逻辑层BCL以专注进行业务逻辑流程的处理,集成入系统中轻量级数据访问映射框架iBa— tis,实现数据传输灵活性。以求达到的改进后的开发框架,以清晰的架构层次实现系统良好的扩展 性与维护性,为企业级应用系统开发的通用架构模式提供参考。 关键词:ASP.NET MVC;业务处理逻辑层BCL;iBatis 中图分类号:TP311.52 文献标识码:A 文章编号:1673—5692(2016)06—599-04 The Exploration and Research of Software Development Architecture Based on ASP.NET MVC Pattern T0NG Yin (China Academy of Electronics and Information Technology,Beijing 100041,China) Abstract:The paper analyses ASP.NET MVC architecture which apply to enterprise daily management lfow,and makes particular discussion as well as study of system technical architecture in the process of development.Improving technology which is based on the architecture by separating it’S concerns,at the same time,we will extract BCL logic processing layer in order to concentrating on the processing of COB— plex business logic and make data transmission flexible by integrating more lightweight Data・-access Map・- ping Layer into system.The improved architecture present good scalability and maintainability by right of clear architectural layers,it provides reference for common development patterns of enterprise application system architecture. Key words:ASP.NET MVC;logic processing layer BCL;iBatis 多种WEB开发应用语言,如JSP、PHP、ASP等 0 引 言 现今,企业日常工作事务的管理已经普遍信息 化,应用软件的开发技术跟随大量的业务需求亦发 展快速,各种WEB开发技术在原来的面向过程的 简单开发思想基础上往面向对象的高级开发思想方 向不断的更新发展,并分别由最初的C语言衍生出 等,各种语言在各自的开发平台支撑下各具优势。 程序员在进行反复开发并分类编目的过程中总结出 了代码设计的模式应用到软件工程当中,如MVC模 式。目前程序员所熟用的基于MVC模式的软件开 发框架有ASP.NET MVC架构,Struts MVC架构, Spring MVC,Zend Fromwork等。由于微软公司产品 在国内企业和个人用户使用方面的普及,本篇对 收稿日期:2016-09-06 修订日期:2016—10—30 中焉鼋;舛譬研雹隍荸奴 2016年第6期 ASP.NET MVC开发框架进行探索和研究。旨在展 现ASP.NET MVC对企业应用软件开发的影响,并 在原有架构的基础上改进架构,寻求一种严谨精准 的企业级通用开发架构规范,提高应用软件的开发 效率,并实现软件开发复用。 1 ASP.NET MVC架构介绍 企业级应用系统软件开发存在诸多问题,如何 通过适当的逻辑抽象,将复杂的业务逻辑抽离分层? 各层之间如何协同合作?针对不同的业务数据模块 如何解决模块间的异构?ASP.NET MVC架构采用 分层的模式,具有面向对象的高内聚、低耦合思想, 其设计思想的多态、继承等特性,可以有效地降低系 统的开发难度,能够良好解决上述问题。 1.1整个ASP.NET MVC的工作过程 (1)首先它采用了管道设计,具有良好扩展性。 在整个请求生命周期开始之前,需要URL Routing 网址路由来完成路径引导,URL Routing负责比对从 浏览器传来的HTI?P请求,并将解析后适当的网址 返回浏览器。 (2)其次通过HttpModule类的形式定义一个拦 截器(Interceptor),根据请求解析出目标 Controller和Action的名称,随后定位到具体位置, 目标Controller被激活,相应的Action方法被执 行 J,ASP.NET MVC结构中定义了名为MVCHan. dler的自定义HttpHandler类,实现对Controller的激 活和Action的执行。 (3)最后,用户通过浏览器发出请求与应用进 行交互,通过Http请求和响应来完成。整个流程如 图1所示。 图1 ASP.NET MVC框架工作过程 整个过程从用户发出请求到响应,ASP.NET MVC清晰的分离关注点,将复杂的任务分解成若干 个简单的、单一的任务,每次只关注于其中一项单一 的任务。整个响应流程分层处理,将可视化界面,视 图处理逻辑和业务处理逻辑分离开来,系统的不同 的功能模块多层分隔,分别承载入三层类库,不同类 库之间的类彼此调用、协同合作构成整个系统的功 能。尤其在开发复杂的应用系统的时候,分离关注 点这一特性,可以有效地减少系统的开发难度、调试 难度、后期维护的难度 J。 1.2模型,视图,控制器之间的交互 参考图2,模型,视图,控制器之间的交互如下 有三点。 图2 M,V,C三者交互图 (1)控制器实现的交互功能 控制器Controller负责业务逻辑流程的流转控 制。其主要作用是用户接受请求,与视图和数据模型 匹配共同完成用户请求。控制器主控分配选择什么 样的模型和视图。用户发送一个请求后,经过URL Routing解析,选择控制器,控制器并不进行业务逻辑 处理,它只把用户的提交的信息传递给数据模型,然 后选择指定的视图返给用户,当Controller被 MvcHandler类选择,通过ActionInvoker选取适当的 Action方法来执行逻辑。Action方法通常会返回给 视图一个ActionResult类来决定返回给视图的信息的 类型 。ActionResuh类型主要有以下几种:View主 视图类型、PartialView部分视图类型、Content文本或 XML类型、Josn传递LIST数据类型、FileContent类 型、JavaScfipt传递Js文件类型。View视图将返回的 ActionResuh类型决定在客户端显示的内容 J。 2016年第6期 仝茵:基于ASP.NET MVC模式的软件开发架构的研究与探讨 601 (2)模型实现的交互功能 据关系映射机制,对于面向对象的编程语言和存储 数据的关系型数据库之间的映射结构还不够完善, 模型Model表示一组最终呈现在视图上的数 据,它的性和扩展性很强,它可以作为单独存放 的组件,供应多个项目重复使用。不论是Controller 还是View,都会使用Model提供的数据类型,模型 通常与视图和控制器分离,性高,当应用程序的 数据层和业务规则改变,比如说,数据库从SQL Server移植到Oracle,只需要修改Model数据模型, 而不影响视图的显示。Model元数据的一个重要的 因此需要引入其他ORM数据映射框架集成到开发 环境中,实现对数据库的灵活访问。 ORM作为逻辑层和数据层中间的持久层映射 机制,提供了实现持久化层的另一种模式,比较常见 的ORM框架有Hibernate、iBatis、Ling to Sql等,由于 iBatis属于轻量级框架,集成到程序中没有侵入性, 所以使用起来非常灵活。它通过map将类对象映 射成sql增删查改语句和将结果集转换成实体对 作用是控制Model对象在View上的呈现方式,基于 定义的某种类型的Model元数据去决定最终生成的 Html页面来展示对应的Model对象,Model元数据 象,解决了实体对象与输入参数和结果集的映射,又 让用户方便的根据实际业务需求动态手写sql语 句,进而实现数据映射功能。如图3所示。 Wel9 Web 还提供数据格式的验证与业务逻辑验证等功能 J。 (3)视图功能的实现 ASP.NET MVC中的视图使用的引擎有两种, MVC2.0版本使用的是ASPX,MVC3.0使用的是 ————— —— Razor,视图的职责是向客户端提供显示页面,与数 据显示有关的逻辑有HTML、CSS、JavaScfipt、DOM、 jQuery、JSON、Ajax等 。当Controller传递过来的 数据转换成客户端需要的输出的格式,View的程序 代码不会出现复杂的应用程序和业务逻辑,MVC架 IBatis 图3加入iBatis框架图示 ASP.NET MVC集成iBatis映射机制后,数据访问 更有针对l生,程序员编写的SQL语句更具备操作优势, 语言对象与关系数据之间的交互更具便捷灵活。 构中,为了方便客户端控件的创建以及Model数据 的绑定,MVC提供了一套辅助方法,用来生成客户 端控件,这些方法以Html打头,称为HTML辅助方 法,该方法将HTML标签封装成辅助方法,简化视 图页面的逻辑。视图使用两种绑定数据的方式传递 数据,一种是非强类型,即不使用Model,仅使用参 数,一种是强类型传递,绑定Model数据。 3从MVC中分离BCL业务逻辑层 目前,MVC模式在.NET平台上的应用还有改 进的空间,比如实现操作功能的处理逻辑绑定在控 制器中,当用户的业务需求发生改变,或者设计者的 处理思路发生变化,想要对原本的逻辑进行修改,就 需要重新设计控制器的业务流程,如此开发系统缺 2系统内集成IBatis框架 目前.NET平台自带的数据建模和对象持久化 访问机制使用Entity FrameWork框架,它支持程序 员通过对概念性的应用程序模型编程来创建数据访 乏灵活性,加重修改工作的难度,为了使软件开发框 架更加成熟,在开发过程中,当出现企业的日常管理 事务囊括大量的数据并且业务逻辑错综繁琐的情况 下,对ASP.NET MVC架构进行改进。 在原来的MVC模式的层次下,继续精细划分层 次,进一步将ASP.NET MVC控制器中的业务逻辑模 问应用程序,目标是降低面向数据的应用程序所需 要的代码量并减轻维护工作,但是它的访问机制通 过可视化开发数据模型工具来定义实体与模型的关 块抽离出来,单独成层,形成更加的业务逻辑处 理层。BCL业务逻辑层,B即Bussiness Logic,处理业 务逻辑,C即Access Control访问控制,包括权限验 系和数据表的关联,对使用存储过程有很多,并 且不是直接面向关系存储架构编程 ,不太符合数 证、登录验证控制、数据访问方法等功能。BCL层使 得系统的整体架构更加清晰简洁。如图4所示。 ( )r(表现层)H  (表现层)fH(卜_1(业妊层)业务逻辑层) H((数据访数据访问层)Servi ce H( (数数据访  层)问层)H(f (表现层表现层)Mode1) —— 厂—— IBatis 图4抽取BCL层图示 602 5 结 语 中IiI鼋;纠譬研雹陛学瓤 刊,2010,9(01):19-21. 2016年第6期 [4]李容.基于MVC模式的WEB应用研究[J].软件导 [5]胡君.基于MVC模式的数据访问模型设计[J].电脑 本文基于企业无纸化办公的信息需求,分析了 MVC模式在开发中的主导作用,通过对ASP.NET MVC框架构建Web项目的流程、思想、应用、技术 的研究,并对MVC三层结构进行完善,完成一套基 于ASP.NET MVC的、完整覆盖表现层、逻辑层、数 与信息技术,2010,18(5):68-70. [6]陈辉,丁春莉,孙悦.ASP.NET MVC软件架构模式在 学生实训管理系统的应用[J].电子设计工程,2015,7 (13):11—14. [7] 高宏,王婷婷.基于MVC和Entity Framework的团餐系 统[J].计算机与现代,2014,12:65-68. 据访问层等三层架构的ASP.NET平台开发架构,在 软件系统开发中有实际的应用意义。 参考文献: [1]蒋金楠.ASP.NET MVC4框架揭秘[M].北京:电子工 业出版社,2013:13. 作者简介 仝茵(1987一),女,河北人,主要研 究方向为信息技术; E—mail:781 163647@qq.corn [2] 刘耀钦,袁承芬.MVC设计模式在Web开发中的应用 与研究[J].信息技术,2013,11:78—8O. [3] 查卫亮.基于.NET环境的MVC开发模式[J].软件开 发与应用,20l5,21:37—39. (上接第593页) [52]新华网舆情一新华网[EB/OL]http://xinhuanet.corn/ yuqing/ 的复杂巨系统及其方[J].自然杂志,1990,13 (1):3-10. [61]戴汝为.综合集成研讨厅的研制[J].管理科学学报, 2002,(3):10—16. [53]清博舆情首页[EB/OL]http://yuqing.gsdata.cn/ [54]中科点击军犬舆情采集[EB/OL]http://www. 54spider.com/channel20.html 作者简介 [55]优讯网[EB/OL]http://www.uuwatch.corn/ [56]李雯静.网络舆情指标体系设计与分析[J].情报科 学,2009(7). 曾倬颖(1988一),女,四川人,工程 师,主要研究方向电子信息战略研究; E—mail:ceiszzy@163.com [57]张一文.非常规突发事件网络舆情热度评价指标体系 构建[J].情报杂志,2010(11):71—76. [58]曾润喜.网络舆情突发事件预警指标体系构建[J].情 报理论与实践,2010(1):77—80. [59]王青.网络舆情监测及预警指标体系构建研究[J].情 报研究,2011(8):54-57. 李睿深(1976一),男,甘肃人,_77-程师,主要研究方向电 子信息战略研究及研究。 [60]钱学森,于景元,戴汝为.一个科学的新领域——开放 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务