基于MVC的物资管理信息系统的设计与实现
【摘 要】MVC技术是实现基于B/S模型的管理信息系统开发的新技术,它采用MModel-VView-CController)分层模型框架对系统进行设计、实现,使得整个系统的结构更加清晰,可维护性、扩展性更强。它与ASP.NET技术的结合是目前基于WEB的应用程序开发的主流技术之一,具有重要的研究和推广价值。本文以MVC技术为基础,结合ASP.NET技术,阐述了物资管理信息系统设计过程与技术实现。
【关键词】管理信息系统;MVCASP.NETB/S模型;SQL Server数据库连接技术
0 引言
随着计算机网络技术的发展与应用领域的渗透,采用信息化管理技术已经成为了一个企业和部门提高工作效率,解决实际问题的必由之路。本文正是从这一着眼点出发,立足实际应用中的需求设计并开发了基于MVC架构的信息管理系统。系统的开发过程使用了MVC架构下的相关典型技术,诸如ASP.NETSQL Server数据库访问技术、C#网络编程技术等等。
1 MVC模型及相关概念
所谓MIS(管理信息系统——Management Information System),是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。现代化的企业需要计算机的帮助对内管理日常业务,对外开展电子商务;事业单位以及政府部门则需要利用计算机实现信息管理和事务处理的信息化,提高工作效率。
ASP.NET技术是一种用于创建WEB应用程序的编程模型。运行时可以和.NET Framework类库集一起配合用于创建动态WEB页,ASP.NETWEB服务器的环境中运行,页面的最后生成是由许多不同的指令和/或数据源构造的。
基于B/S模型的WEB应用程序结构可以概括为MVC结构,MModel)即模型层/与数据库交互;VView)即视图/与用户交互;CController)控制/根据用户的请求与模型层交互,并返回结果视图给用户。
三种之间的关系可以用下图来表示[1]
1 MVC结构示意图
MVC参考模型中的功能模块分别介绍如下[2]
1.1 视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的WEB应用程序中,HTML依旧在视图中扮演着重要的角,但一些新的技术已层出不穷,它们包括Macromedia Flash和像XHTMLXML/XSLWML等一些标识语言和Web services
1.2 模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用诸如EJBsColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
1.3 控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
2 物资管理系统的视图设计
建立物资管理系统主要目的是帮助企业或个人降低管理物资人员的工作强度,提高物资管理水平。这就要求物资管理系统基本涵盖企业物资管理的全过程。经过与企业的深度走访与协商,同时分解MVC的视
图结构,本系统主要功能模块设计如下:
2.1 用户管理:实现添加用户,修改当前用户密码2个模块。
2.2 单据管理:实现登记入库单、登记出库单、登记退库单、登记盘点单、登记维修单、登记付款单、登记收款单等模块。
2.3 固定资产管理:固定资产登记、固定资产查询、固定资产维修统计等模块。
2.4 通用查询:单据查询、入库物资统计、出库物资统计、退库物资统计、应付账款统计等模块。
2.5 系统维护:主要是基本数据维护模块。
物资管理系统流程图可见下图所示:
2 物资管理系统流程图
系统框架主要架构在ASP.NET.NET Framework 2.0基础之上,因此在开发.NET程序时,首先要创建很多Web页(扩展名.aspx的页面文件)、用户控件以及类,来完成基本的功能操作,为了体现MVC结构,同时规范系统的整体架构,在开发时应先把系统中可能用到的文件夹创建出来(例如,创建一个名为images的文件夹,用于保存系统页面中需要的图片文件),在开发时只需将相应文件保存到对应文件夹下即可。下图列出了物资管理系统的ASP.NET页文件夹及文件架构。
3 物资管理系统文件结构架构图
3 物资管理系统的模型设计
对数据库的设计应先明确企业物资管理业务流程,下图是利用可视化表示形式为本系统绘制的业务流程图。
4 物资管理系统业务流程图
针对物资管理系统的功能结构图可绘制出数据流图,下图为本系统的数据流图简图。
5 物资管理系统数据流图
在数据流图的基础上,可以分析和设计本系统的数据库系统。为了更为清晰的明确本系统中数据库中数据表的结构,将数据表以树型结构图展示如下,该结构图包含了系统数据库中的所有数据表。
6 物资管理系统数据表树型结构图
4 物资管理系统的控制设计
4.fig文件配置
由于fig文件对于访问本系统的用户来说是不可见的,也是不可以访问的。作为MVC结构中控制器的重要文件,同时为了系统数据的安全和易操作,可以在配置文件(fig)配置一些参数,主要配置参数是数据连接字符串,根据SQL数据库连接技术的要求,其具体配置如下:这里除了可以手动编辑此文件以外,还可以使用 Web 管理工具来配置应用程序的设置。设置和注释的完整列表在figments中,该文件通常位于\WindowsMicrosoft.NetFrameworkv2.xConfig 中。
4.2 数据库操作类的编写
在系统的开发中,良好的类设计能够使系统结构更加清晰,并且可以加强代码的重用性和易维护性。本系统中也建立了一个公共类DB.cs,用来执行各种数据库操作。由于在ASP.NET 2.0中,App_Code文件夹专门用来存放应用程序中一些通用的类,这些类完成了MVC结构中模型(Model)与控制器(Controller)之间的数据交流,如果没有,在添加类时会弹出消息框,新建该文件夹。
由于对数据库操作需要频繁地连接数据库,如果每次连接都写一遍代码会很麻烦。所以这里把数据库的连接语写在一个方法GetCon中,通过调用GetCon方法来连接数据库。该方法的代码如下:
除了GetCon方法外,DB.cs类中还包含其他4个方法来对数据库进行操作,分别为ExSql方法、reDs方法、reDr方法和ExcuteDataTable方法,下面分别对这4个方法进行简单的介绍[3-4]
1ExSql方法
Exsql方法用于执行数据库操作,首先调用GetCon方法建立与数据源的连接,然后将执行作为参数的SQL语句,完成相应的数据库操作。
2reDS方法
reDS方法是一个静态方法。形参str是一条SQL语句。此方法通过SQL语句来查询数据库中的数据,并将查询结果存储在DataSet数据集中。最终,返回一个DataSet(数据集)对象。
3reDr方法
reDr方法的形式参数str是一条用于查询的SQL语句,该方法将执行此语句的结果存储在一个SqlDataReader对象。最后,将这个SqlDataReader对象返回到调用处,并对其值进行操作。
mvc三层架构如何实现(4ExcuteData Table方法
ExcuteDataTable方法的参数也是一条用于查询的SQL语句,它将执行的结果存储在Data Table对象中,并将此DataTable对象返回到调用处。
综上所述,本系统架构在MVC工作结构的基础之上,开发过程中主要使用了ASP.NET技术同时结合了SQL Server数据库开发方法。系统开发的过程中深入到了企业和学校的第一线,了解用户对系统的实际需求,尽量按照实际环境去开发系统,在系统开发成功后也进行了程序员和用户等不同角的测试。
【参考文献】
[1]ASPASP.NET之间的差异.w3schoolhttp//www.w3school/aspnet/aspnet_vsasp.asp2009-7-6.
[2]陈超.基于J2EE平台和MVC模式的物资管理系统的设计与实现[D].南京航空航天大学,2004.
[3][]Alessandro Gallo[]David Barkol[]Rama Krishna Vavilala.ASP.NET AJAX实战[M].苏金国,等,译.北京:人民邮电出版社,2008.
[4][]考夫曼,肖奕译.ASP.NET数据库入门经典[M].北京:清华大学出版社,2007.