韦松磊
【摘 要】扶贫开发涉及范围广、时间跨度长,但对于我国经济发展有着极大帮助,本文开发一款基于GIS的扶贫信息管理系统,这将会为政府部门提高扶贫工作管理的效率,并且联网的系统也可以大大加强对国家调配扶贫资金的监管力度,降低官员贪污腐败的概率。
【关键词】扶贫项目;信息管理;GIS
1 系统总体架构设计
系统的主体框架有三层:分别是Web层、BLL层、Model层。Web层的设计使用了ASP.NET MVC,采用Model抽象与数据库访问结合的方法。系统的数据库访问使用了EF框架,由于系统中对于数据库的访问层都用到Model传递,为了确保数据有效性,需要对其相关属性验证。最后给Web层的View创建强类型视图使用。
(1)Web层:包括View和Controller两个部分。View是用于用户交互的aspx页面,将使用Model生成带有输入验证的强类型视图。Controller(控制器)用于和BLL层传递信息。
(2)BLL层:业务层。该层通过调用Model的实体框架的数据库方法进行对于数据的增、删、改、查的相关操作。
(3)Model层:包括Metadata和Entity Framework两层,其中Metadata是用于View层验证而存在的,Entity Framework是数据库访问层解决方案(采用O/R映射)。
(4)通用类库:系统通用类库。例如分页控件,权限的验证类等。
2 平台软硬件架构设计
基于GIS的扶贫项目管理系统是面向贫困地区各级单位的信息管理系统。系统需要基本满足扶贫开发工作需求,由扶贫办的用户首先在系统在录入相关投资计划信息;各乡镇用户登录系统查看到计划后,在系统中填写项目申请信息表向扶贫单位提出项目申请;扶贫单位用户再查看各地申请的项目,并确定是否批准。若某一项目获得批准,系统将将该项目列入“在建项目列表”,并可以对项目的进度信息进行跟踪管理,其中包括项目的招标、合同、建设单位、建设内容、覆盖区域、台帐等信息进行管理。期间用户可以将项目信息以报表的形式导出或打印,也可以结合地图查看贫困村和项目信息。
(1)系统服务器端硬件配置
宽带局域网、1M以上宽带互联网;
网络、数据库、应用服务器:CPU P4 3.0G以上,内存1G以上,硬盘80G以上,10M/100M网卡。
(2)系统服务器端软件配置
数据库服务器:Windows Server 2008操作系统、SQL Server 2008。
应用服务器:Windows Server 2008操作系统、.NET Framework 4.0、ASP.NET MVC 2.0、IIS 6.0或更高版本。
(3)客户端系统配置
IBM PC及其兼容机:CPU P4 2.0G以上,内存256M以上,硬盘40G以上,10M/100M网卡,Windows 2000/2003/NT/XP/Vista/7/8中文操作系统;
浏览器: Internet Explorer 8/Chrome/Opera
办公软件:MS Office 2000或以上中文版本
3 平台功能设计
系统主要分为系统模块和业务模块两大类别,分别是对系统进行相关设置以及对扶贫项目信息的处理,共分为六大块功能。
(1)系统设置模块:主要负责与系统运行相关的参数的管理,包括用户管理、角色管理、模块管理、操作类型、系统参数、操作日志、数据管理。即对该系统信息进行增删查改的功能模块。
(2)基本信息模块:主要用于管理扶贫项目相关的基础信息,含13个子项目(行政区域、建设性质、投资来源、优先等级、项目状态、年度设定、招投标管理、合同状态、项目类别、贫困村基本情况指标、村类别、定点帮扶、建设单位信息),实现对扶贫项目基本信息的处理,录入、增删查改等功能。
(3)历年项目信息模块:用于记录历年的已竣工的项目信息,供用户查询。包含历年项目和自定义项目记录两个功能。
(4)扶贫项目模块:包含项目分类投资、数据批量录入、申请项目信息、审批项目信息、在建项目信息共五个模块,实现对于扶贫项目的进程管理。
(5)报表模块:系统目前可对计划表、进度表、竣工表和项目记录表进行查看、打印。用户可以根据“年度”、“区域”和“项目类型”对项目进行筛选,当没有任何限定条件时,系统将对所有项目的相关数据进行统计,并生成报表。
(6)地图模块:本模块使用GIS实现提供项目位置信息的显示,并实现了扶贫项目信息与其地点的相关联动。
4 平台实现的关键技术
《基于GIS的扶贫项目管理系统》采用了B/S结构设计,在Microsoft公司.NET Framework4.0平台上使用C#语言进行本系统的开发,采用了ASP.NET MVC2.0框架和Entity Framework(实体框架),数据库使用Microsoft SQL Server 2008设计。程序开发IDE采用Microsoft Visual Studio 2010。
4.1 系统总体解决方案
系统可以抽象为3层架构,共6个子项目:
(1)Web:系统的表示层,用户交互在这一层完成。在Web层要完成系统View视图,控制器,系统样式,系统通用控件,系统路由,Web系统配置等的设计。
(2)BLL:系统的业务逻辑层,主要完成系统系统业务逻辑的设计。
(3)Model:Model项目下主要有4类文件:App.Config,以Metadata.cs结尾的类文件、DBModel.edmx以及ExtendedDBEntities.cs。
(4)App.Config:系统自动生成,用于存储实体框架数据库以及连接字符串。
(5)DBModel.edmx:.edmx 文件是一个 XML 文件,它用于定义概念模型、存储模型和这些模型之间的映射。
(6)Metadata.cs:MVC中的数据传递是由Model中的数据类型来决定的,所以系统的验证就在MVC的Model层。
4.2 数据库信息处理
主要实现对于录入本系统的数据处理,包括查看、增添、删除、修改。
(1)Controller
Cotroller是控制器类,主要的方法有Index、Edit、Delete、Details
Index:通过查询页面,调用BLL中的Get方法获得一个对象集,再进行反馈。
Edit:数据编辑功能。调用BLL中的Save方法保存在数据库中进行添加和修改。添加时, Controller获取页面的输入信息,调用BLL的Save方法保存对象。修改数据时,通过Id获取数据信息,调用BLL中的Save方法保存修改的对象。
Delete:通过页面传递过来的Id调用DeleteObject方法删除相应的信息。
Details:通过Id调用的Get方法返回一个对象。
(2)BLL
BLL是逻辑类,通过调用数据库访问层的类方法处理系统业务逻辑的类。
Get:一个多次重载的函数方法,功能是获取数据库相应表中的所有数据,Get(id)是通过数据的Id获取对应数据。
Save:接收Controller类传过来的数据对象,再调用实体框架进行更新和保存操作。
DeleteObject:通过Id获取数据对象,再调用实体框架进行删除操作。
(3)Model
Model是实体框架根据已有的数据库和数据表生成相应的对象。其属性因数据库的形式不同而不同。通过对实体框架中的Model元数据进行扩展,形成MVC中的页面验证机制。
(4)UserAuthorize
主要用于系统调用Controller类的时候对Controller类中的Action进行权限验证,如果有访问权限,则执行Action的方法并记录日志,没有权限返回提示。
4.3 基于GIS的地图设计
Map Suite MVC Edition提供了两种方法,添加的代码定义Shape File Feature Layer。一个是控制器Controllor的操作中,另一种在视图页面中。这里,将使用后者。即使用一个Shapefile文件,它包含了整个世界的数据。有一个现成的Shapefile文件可供我们使用,为地图定义和添加Shapefile层。代码放在视图页面“Index.cshtml”中。
为地图创建浏览方法后,可以通过拖拽平移地图,双击放大地图,按住Shift键同时用鼠标左键绘制一个矩形框来放大矩形框中的内容,或者使用鼠标滚轮进行放大和缩小地图的功能。
在Map Suite MVC Edition中TextStyle主要用来在地图中标记项目。每已个Shapefile都有一个对应相关的.dbf文件,并使用TextStyle来实现标记功能。Shapefile包含了地图中所有位置的名字信息,可以利用这个区域来标注地图上的城市。
【参考文献】
[1]黄保翕.陈酉玫,李杨改编.ASP.NET MVC 2开发实战[M].北京:电子工业出版社,2011.
[2][美]Jeffrey Palermo, Ben Scheirman, Jimmy Boggard,著.姚军,译.ASP.NET MVC实战[M].北京:人民邮电出版社,2010.
[3][美]James W. Cooper.张志华,刘云鹏,等,译.C#设计模式[M].北京:电子工业出版社,2003.
[4][美]Mark Michaelis,周靖译.C#本质论[M].2版.人民邮电出版社.
[5]David Flanagan.李强,等,译.JavaScript权威指南[M].北京:机械工业出版社,2007.
[6]Andrew B. King.杨敏,李明,等,译.Web站点优化[M].北京:机械工业出版社,2009.
[7]胡超,闫玉宝,等,编著.SQL Server 2008从入门到精通[M].北京:化学工业出版社,2011.
[8][美]Shari Lawrence Pfleeger, [加] Joanne M. Atlee.杨卫东,译.软件工程:theory and practice[M]. 北京:人民邮电出版社,2010.
[9]蒋金楠.How ASP.NET MVC Works. http://www.cnblogs.com/artech/archive/2012/04/10/how-mvc-works.html[OL].
[责任编辑:杨玉洁]