基于MVC的高校研究生会管理系统的开发与实现

2015-10-09 20:27邢飞燕施佺胡祖辉李奎
科技资讯 2015年18期

邢飞燕++施佺++胡祖辉++李奎

摘 要:为了提高高校研究生会的工作效率,实现校园信息化管理,提出了基于MVC架构模式的研究生管理系统的开发,并完成了系统的设计与实现。该系统采用Visual Studio 2010为开发工具,Microsoft SQL Server 2008为数据库服务器。实践证明,该系统界面清晰、操作简便,具有良好的安全性、可扩展性和易维护性。

关键词:MVC 研究生会 校园信息化

中图分类号:TP273 文献标识码:A 文章编号:1672-3791(2015)06(c)-0034-02

信息技术的飞速发展加快了高校信息化的进程。校园信息化是指在传统校园的基础上运用计算机技术和网络硬件设施,构建一个数字空间以拓展校园的时间和空间跨度,实现校园的数字信息化。

该校研究生会目前有主席团、办公室、人力资源部、外联部和宣传部等8个部门,各个学院也有自己独立的研究生会,共同受辖于校研究生会。每年研究生会招新、部门例会等活动,这些信息往往都是出于人工管理阶段,很多材料信息都不能有效及时的存档,导致研究生会换届阶段,很多工作无法顺利展开,大大降低了研究生会的工作效率。因此,发展校研究生会信息化管理势在必行。作为校园信息化进程中一个关键的组成部分,高校研究生会管理系统的主要作用包括发布研究生会最新动态和通知公告等,是研究生和学校之间的桥梁,也是提高高校竞争力的必然条件。

1 MVC设计模式

目前最通用的软件体系架构包括层次模式、多层分布模式和MVC模式等[1]。该系统采用的是MVC架构模式。该模式最早是由施乐(Xerox)Palo Alto研究中心(PARC,Palo Alto Research Center)于20世纪70年代提出的[2],它是Model(模型)—View(视图)—Controller(控制器)的简称,是把一个应用的输入、处理和输出流程按照Model、View、Controller的方式进行分离,形成模型层、视图层和控制层三个层次。通过区分各个层,允许组成每个层的各个组件间松散地耦合,因此采用这种模式可以减少代码的重复性,使得程序开发更加灵活。

模型Model是业务流程/状态的处理以及业务规则的制定。它独立于其他功能模块,对其他功能模块来说相当于一个黑箱操作。模型的作用主要包括:向控制器Controller提供对程序功能的访问;抽象应用程序的功能,封装程序数据的结构及其操作;接受视图View的数据查询请求;在数据变化时通知对此数据感兴趣的视图。

视图View代表用户和系统的交互界面,主要是用来展现用户所需的数据。一般可以采用HTML界面、Applet和XML等技术。视图的作用主要包括:将Model中的数据展现给用户并获得用户输入;将用户输入传递给Controller;当Model数据更新后,同时更新显示数据。

控制器Controller是Model与View之间的联系纽带,相当于一个中转站。Controller的主要作用包括:将用户输入转换为应用程序的动作,并传递给Model执行;根据用户输入和Model执行动作的输出,选择适当的View展现给用户。采用MVC设计模式,能够让HTML设计师与开发者完全独立地做好自己的工作,减少了相互干扰的可能性。三个层次之间分工协作,哪一层需要发生变化,只需修改相应层的代码,不会影响其余的代码,使得代码易于重用,维护更加简单。虽然采用MVC设计模式增加了软件的复杂程度,但可以大幅度减少后期的调试,降低修改难度。

2 系统的设计与实现

2.1 系统设计

高校研究生会管理系统采用的是ASP.NET MVC3.0框架,该框架是由微软公司出品的Web开发平台[3]。数据库为SQL Server 2008,开发语言为Visual C#语言,开发的IDE为Visual Studio 2010。

按照ASP.NET MVC的体系架构和具体需求,该系统可以分为浏览器层、Web服务器层、业务逻辑层和数据层。对于系统管理员,浏览器层为其提供登陆页面,并根据管理员输入信息及使用权限进行验证,之后再转入相应的浏览界面。对于普通用户,浏览器层可直接提供前台界面的信息,该层使用Razor视图来实现。Razor视图模板提供了一个最快捷,最简便的编码方式[4]。Web服务器层主要包括控制器和部分视图模型,它接受来自客户端的请求,为不同身份的用户分发不同的浏览信息。业务逻辑层组合了与数据库的数据链路层(DAL)和面向具体业务模块的业务逻辑层(BLL),它是将MVC中的模块Model独立出来实现的。在接受了Web服务器请求之后,实现系统的业务逻辑处理功能。数据层负责存储和管理数据。

该系统主要针对三类用户:校级管理员、院级管理员和普通用户,这三种用户分别具有不同的权限。校级管理员和院级管理员通过登录来获取不同的权限,其中院级管理员负责上传公告新闻等信息,校级管理员除此之外还具有发布这些信息的权利。普通用户无需登录就可浏览这些信息 。下面以新闻资讯模块为例,详细说明系统使用MVC架构模式的实现设计方法。

(1)控制层(Controller)的设计。

新闻资讯模块的控制层是由NewsController类来实现的。NewsController类具有列表(Index())、添加(Create())、删除(Delete())、修改(Edit())、明细(Details())和浏览(Browse())等方法。其中Index()是在后台返回新闻列表。Browse()是在前台显示新闻列表。Details()是给用户返回新闻主要内容,Create()、删除(Delete()和Edit()主要实现新闻的创建、删除和修改功能。

(2)模型层(Model)的设计。

模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,使得这些数据必须符合业务逻辑。新闻资讯模块的模型层的关键代码如下:

public class NewsM

{

public int NewsMID { get; set; }

public int GenreNewsID { get; set; }

[Required(ErrorMessage = "标题不能为空")]

[StringLength(30,ErrorMessage = "标题长度不能超过30个字符")]

public string Title { get; set; } //新闻标题

……//类似代码,不一一罗列

public virtual GenreNews GenreNews { get; set; }

}

其中NewsMID是主键,GenreNewsID是外键,使新闻资讯表关联新闻类别表。[Required]验证指明该属性的数据必须不为空。[StringLength]指定了该属性运行输入的最大字符串长度。每一个验证特性都支持“ErrorMessage”属性,使开发人员可以指明验证失败时需显示的错误信息。

(3)视图层(View)的实现设计。

视图层只负责数据的呈现。在Razor视图中,所有以@开头或者@{/*代码体*/}部分的代码都会被ASP.NET引擎处理。下面以添加新闻页面为例,关键代码如下:

@model GraduateUnion.Models.News.NewsM

@{

Layout = null;

}

创建

@using (Html.BeginForm()) {

@Html.ValidationSummary(true)

新闻

新闻类别

@Html.DropDownList("GenreNewsID", String.Empty)

@Html.ValidationMessageFor(model => model.GenreNewsID)

标题

@Html.EditorFor(model => model.Title)

@Html.ValidationMessageFor(model => model.Title)

……//类似代码,不一一罗列

}

@Html.ActionLink("返回列表", "Index", new { page=1})

以上代码使用了HTML帮助器的方法来简化HTML标签的书写方法。Html.EditorFor帮助器用于显示一个提供给用户输入信息的HTML的元素。Html.ValidationMessageFor 帮助器用于显示一个针对属性的校验信息。在该视图模板的顶部设置了@model GraduateUnion.Models.News.NewsM的声明,该声明表示将视图模板中的“模型”强类型转化成一个NewsM类。

2.2 系统实现

该文描述的高校研究生会管理系统采用asp.net MVC3.0框架设计,在MVC架构中,三个层次相互协作,业务逻辑由模型层实现,控制层调配业务数据到需要展示的视图层进行显示。在网页地址栏中输入研究生会的网址后进入研究生会管理系统首页,页面显示新闻、研会动态和通知公告等信息。页面下方有“管理员登陆”按键,点击进入后台登陆页面,输入用户名和密码后,可进入相应系统工作区,操作相应各个功能模块。限定20min没有对系统进行任何操作,则自动返回到初始登陆界面,从而保护用户操作信息。系统运行结果如图1所示。

3 结语

该文基于MVC模式,设计和开发了适用于高校使用的研究生会管理系统。系统采用了ASP.NET MVC3.0框架,从Model、View、Controller三个层次设计系统开发流程,实现了视图显示和逻辑功能真正的分离,增强了系统的可移植性、可扩展性和可变动性。该系统满足了用户的需求,实现了高校校园信息化管理,大大提高了研究生会的工作效率。

参考文献

[1] 龚薇华,王晨光,俞欢军.基于MVC模式和.NET的公司内部管理信息系统设计[J].计算机工程与设计,2007,28(9):2142-2144.

[2] 孙奥.MVC模式在.NET框架中的应用与实现[J].科技广场,2006(1):69-71.

[3] 王程.基于ASP.NET MVC3的清洁生产管理系统平台设计与实现[J].管理技术,2013(12):212-213.

[4] 谢艳芬.基于ASP_NETMVC的后勤管理系统的设计与实现[D].南昌:南昌航空大学,2014.