APP下载

ASP.NET4.0的MVC实战操作

2018-09-10李翠松常淑华候睿峥

大东方 2018年6期

李翠松 常淑华 候睿峥

摘 要:本文分析了ASP.NET的特点,提出了采用MVC+HTML技术搭建基于ASP平台的在线考试系统,实现了业务逻辑和数据表示分离的模式,同时针对asp中的mvc设计模式做出详细的说明

关键词:MVC;WEB;ASP

引 言

传统的网站一般是采用静态网页技术制作的静态网页网站,但是为了越来越大以及繁杂的需求。目前,绝大部分网站为了更好的实现用户与网站的互动性,一部分已经实现静态网站动态化,或者说是动态网站也不为过。因此大大提高了用户的互动能力。其次,网站的功能也丰富起来。然而,建设一个动态网站,ASP.NET是非常有效的利器。

一、静态网站的优缺点

就静态网站本身而言,它能沿用如此之久,必然是有可取之处的。例如,加载的时候不需要调动数据库,响应速度快,减少了服务器对数据响应的负荷,从安全角度讲,静态网页不易遭受黑客攻击,从网站稳定性来讲,如果程序、数据库出了問题,会直接影响网站的访问,而静态网页就避免了如此情况,不会因为程序等,而损失网站数据,影响正常打开,损失用户体验,影响网站信任度。

同时它也有不可否认的缺点,就像一把双刃剑,生成大量文件的时候,服务器对html文件的响应负担也较重,还有,维护极其不方便,每次都要手动生成网页,当网站庞大的时候会苦不堪言。3、空间占用大(多占用近一倍的空间)对于站长来说没有必要浪费空间的成本,举个例子:如果是一个大型的网站,特别是资讯类网站来说,如果每个页面都变成静态页面,那工作量肯定非常大,同时也非常不利于网站的维护,因为静态网站是没有数据库的,每个页面都需要人工检查,如果网站的链接出现错误,想要纠正,往往就需要花费很长的时间来逐个排查!

二、MVC设计模式分析

(1)MVC设计模式

首先说说它的定义,MVC 设计模型是一种使用 Model View Controller(模型-视图-控制器)设计创建 Web 应用程序的模式,通常为了实现程序的“高内聚,低耦合”我们主要把应用程序分成了三层。其中视图层主要是为了实现与用户进行交流操作的界面,通常是由前端开发人员来完成;模型又是核心,它是网站处理程序执行顺序与逻辑,完成对数据在数据库中的各种操作;控制主要处理人机交互的部分,负责读取视图中存储的数据,控制用户输入;完成用户请求的逻辑在模型(Model)中实现,然后处理的结果会反馈回视图(View)中显示。控制器则充当中间控制功能,根据用户的的请求调用相关的模型,然后把浏览器的处理结果传递给视图,最后视图展示最后的处理结果。MVC模式的目的就是实现Web系统的分布分工,对程序动态的程序设计,使后续对程序代码的修改和系统扩展简化并且使程序某部分能够重复利用。总的来说MVC设计模式可以方便开发人员分工协作,提高开发效率,增强程序的可维护性和拓展性而且还利用Controller将Model与View分离,降低它们之间的耦合度。

(2)MVC特点

①一个模型提供不同的多个视图表现形式,也能够为一个模型创建新的视图而无须重写模型。一旦模型的数据发生变化,模型将通知有关的视图,每个视图相应地刷新自己。

②模型可复用。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作

③较低的开发周期成本。MVC能够有效降低降低开发和维护用户接口的费用。

④可维护性。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。将逻辑层和表示层相分离使开发人员节省了大量的后期维护时间。

三、WEB架构

基于“WEB页面/文件”架构,例如CGI和PHP/ASP程序。程序的文件分别存储在不同的目录里,与URL相对应。当HTTP请求提交至服务器时,URL直接指向某个文件,然后由该文件来处理请求,并返回响应结果。可以想像,我们在站点根目录的news目录下放置一个readnews.php文件。这种开发方式最自然,最易理解,也是PHP最常用的方式。要注意产生的URL对搜索引擎不友好,不过你可以用服务器提供的URL重写方案来处理,例如Apache的mod_rewrite。

基于“动作”(Action)架构,这是MVC架构的WEB程序所采用的最常见的方式。目前主流的WEB框架像Struts、Webwork(Java),Ruby on Rails(Ruby),Zend Framework(PHP)等都采用这种设计。URL映射到控制器(controller)和控制器中的动作(action),由action来处理请 求并输出响应结果。可 以想像在实际代码中,我们会有一个控制器newsController,其中有一个readAction。不同框架可能默认实现方式稍有不同,有的是一个 Controller一个文件,其中有多个Action,有的是每个Action一个文件。当然这些你都可以自己控制,使用MVC体系结构,能够使业务逻辑、数据、界面显示分离。江浙两种技术一起使用可以使程序更精简,耦合性更少。

基于“组件”(Component,GUI设计也常称控件)、事件驱动的架构,最常见的是微软的.NET。基本思想是把程序分成很多组件,每个组件都可以触发事件,调用特定的事件处理器来处理(比如在一个HTML按钮上设置onClick事件链接到一个PHP函数)。这种设计远离HTTP,HTTP请求完全抽象,映射到一个事件。事实上这种设计原本最常应用于传统桌面GUI程序的开发,例如Delphi,Java Swing等。所有表现层的组件比如窗口,或者HTML表单都可以由IDE来提供,我们只需要在IDE里点击或拖动鼠标就能够自动添加一个组件,并且添加一个相应的事件处理器。

四、基于ASP三层架构的网站建设

ASP具有良好的扩充性,我们访问数据库时,采用的时ADO对象,访问文件时,采用的是文件系统对象(FSO),其实这时程序已经是三层结构的应用程序了,只不过由于是利用内置的对象而为意识到罢了。这些对象都遵循COM/ActiveX接口,因此我们自己开发的对象也要遵循这个接口。

对于三层架构来说,就是使用类,把我们在做项目的过程中,可能需要反复操作数据库,反复的使用某个方法等等,可能就是操作的参数不同。如果我们如果在每次使用的时候,都去编写相应的代码,无疑会增加程序员的负担。所以,为了增加方法的重用,就把这些能够重用的方法抽象成类,以供程序员在其它地方可以调用。

建设一个网站,我们首先要明晰需求,在确定需求后,采用model/view/controller的三层体系结构。view接受用户通過浏览器发送的请求并做出相应。controller作为系统中的控制器,它能根据用户的不同请求,相应的调用不同的ASP页面。

系统的关键板块有:

(1)主界面模板

将在线考试网站按照需求分成用户登录,考试通知,成绩查询,用户查询等板块,通过CSS和JavaScript技术实现样式和动画效果,使各种信息使用结构和样式统一的Web页面,适应各种课程内容的管理。

(2)菜单管理

确定在线考试网的目录结构。不同菜单的结构一般不同,其展开列表也不同。因此,在网站开发的过程中,我们可以使用数据库的无限分级技术,有效利用数据库的性能,实现各级列表的动态管理可以有效的避免栏目和其列表之间的复杂的嵌套关系,同时还可以在数据库中清除的查询,不会导致多菜单造成的管理混乱。

(3)后台管理

网站结构确定后,可以搭建后台管理员界面,将需要管理的模块与数据库相连,比如试卷题目上传修改,试卷批改,简单的选择填空自动批卷所需要的答案库,还有某些用户的权限管理。

(4)整合部署Web项目

根据需要的功能,做出相应模块后,因为asp的可混编性可以高效的与后台通讯,在已经搭建好环境的windowserver服务器上部署项目,将网站源码部署到iis的默认网站根目录下,配置域名,进行测试。

五、结束语

本文介绍了MVC结构和三种WEB架构,对三种架构做了详细的分析。同时也说明了基于ASP使用MVC模式设计网站的方式,提出了基于MVC模式和B/S结构使用ASP技术制作动态网站的方案。

2017大学生创新项目《吉林农业科技学院学生在线考试系统》 项目编号:2017133

通讯作者:常淑华

参考文献

[1]何成万等.基于MVC模式的科研成果管理系统开发[J].武汉工程大学学报,2009,31(1):79~82.

[2]薛德枢.通用精品课程网站开发系统的设计与实现[D].大连理工大学,2008.

[3]阳西述等.基于UML和MVC的精品课程网站设计[J].现代计算机,2011(9):59~62.

[4]王明等.基于MVC科研管理系统的研究与实现[J].微计算机应用,2009,30(1):77~80.

[5]王立明.基于 MVC 架构的网络教学管理系统的设计与开发[D].甘肃:兰州大学,

2012:14-16

(作者单位:吉林农业科技学院)