vlambda博客
学习文章列表

基于.NETMVC架构下的科研项目管理系统

摘要:通过对X市局科研项目管理工作需求的分析,系统采用B/S结构,以ASP.NET MVC作为系统的基本架构模式,在Visual Studio 2010开发平台下使用C#语言开发,结合.NET Framework 4.0框架、SQL Sever数据库、LINQ及Office等WEB技术来设计一套完整的科研项目网上管理解决方案.实现了对科研项目的申报、开题、预审、验收、报奖及统计等工作的网上管理.该系统已应用于X市局的科研项目管理工作,实际应用证明该系统界面友好,运行安全且稳定.

关键词: ASP .NET; MVC;数据访问;LINQ

      随着科技的日益发展,科研活动和科研能力已成为现代化进步综合实力的重要指标,进而使X市局的项目申报工作不断庞大和加重.目前项目管理及相关标准(现有标准达到几千条)管理工作主要依靠手工或单机版的软件(如:Office等)操作,存档的方式多以纸质材料为主.因此为数据采集、查询和统计方面带来了很多不便,工作效率大大降低.

本文采用ASP .NET MVC架构设计科研项目申报系统.一是因为基于ASP .NET MVC架构开发的Web应用技术比较成熟,且已应用到众多领域,如人事管理系统、CMS、e-ERP系统、网上珠宝销售系统[1]等.二是因为,相比传统意义上的Web开发框架,MVC架构将数据与视图分离,这样大大提高了系统的安全性,①收稿时间:2014-04-01;收到修改稿时间:2014-05-23减少了代码的重复编译,可维护性得到保证[2].

      1、ASP .NET MVC架构

      基于MVC模式的ASP .NET Web应用程序将系统划分为模型(Models)、视图(Views)和控制器(Controllers ),实现系统松耦合,防止服务器端与客户端数据的直接交互,提高系统安全性[3,4].ASP.NETMVC开发遵循先定义Model,再规划Controller,最后再开发View视图页面.本系统应用MVC架构的基本结构图如图1所示:

图1科研项目管理系统MVC架构

      模型负责与数据库沟通,实现从数据库中读取和写入数据、保存模型状态、数据格式验证等.依据对需求的分析,在Models文件夹下针对项目信息设计了以下七个数据模型实体(Entities):项目类别(ProjectSort)、项目信息(ProjectDetail)、完成单位ProjectCompleteCompany)、项目合同(ProjectPatent)、项目成员(ProjectNumber)和技术报告(ProjectTechbook).系统在数据模型定义时采用了Code First开发模式,即通过使用说明性属性使得模型代表的意义清楚明了.如使用DisplayName属性用于在view界面上显示该属性值,调用的程序为:<%:Html.LabelFor(model => model.Name) %>.

      控制器是ASP .NET MVC的核心,它决定系统的运作流程,负责从Model取得数据,并决定显示哪个View(正常或异常)给浏览器,因此其有效地实现了视图与业务逻辑的分离[5].本系统以管理单位用户浏览项目功能为例说明,其包括项目类别列表、项目列表和项目明细三个页面组成,这三个页面的功能都放在ProjectviewController控制器里.  ProjectviewController继承自Controller,其有三个Action: ProjectSort(项目类别)、ProjectList(项目列表)和ProjectDetail(项目详细信息).

      视图是用于呈现数据的,也就是用户看到并与之交互的UI.在本系统中,项目申报流程中的每个阶段(如计划、开题、验收等)界面中显示了该项目数据库中相关数据表的详细信息,也就是对应的项目表信息.当然,系统中还有消息列表、用户(申报单位和评审专家)列表和标准列表等其他界面,也是通过相关Controller在Model中取得数据或决定数据送到相应的Action中.如浏览项目功能,因为其在ProjectviewController控制器中有ProjectSort、ProjectList和ProjectDetail三个Action,且都需要对应View页面,所以需要创建不同的“强类型视图”.如项目类别需要输出所有项目类别信息,因此必须以ProjectSort数据模型为主的页面,利用VS2010自动生成视图属性来完成创建,其他页面也用同样方法.

      2、系统构成

      2.1系统功能结构

      结合对该区域实际科研项目管理流程的整体分析,在系统设计过程中把科研项目评价体系分为系统登录、待办事项提醒、项目管理、消息管理、用户管理和标准管理六大模块,有些模块下有子模块,如图2所示.

基于.NETMVC架构下的科研项目管理系统

图2科研项目管理系统功能模块图

      下面将对各模块的功能做简要说明:

      1)系统登录:完成对申报单位、管理机构和评审专家三类用户的身份认证,系统会根据用户类别分配权限及职能,从而提供个性化的服务.

      2)待办事项提醒:该模块主要功能是提醒用户等待处理的相关事项,主要包括消息提醒、项目阶段提醒、项目预到期提醒、合同提醒等,为用户操作提供快捷服务.

      3)项目管理:该模块主要包括六个申报流程和一个统计功能,六个流程是项目申报、项目开题、合同提交、项目预审、项目验收和项目报奖,这六个流程严格按顺序执行,缺一不可.

      4)消息管理:该模块是管理机构用于向其他两类用户(申报单位或评审专家)发送消息信息而研发的,其发送对象可以是全体用户,也可以是个别用户,发送的内容可以是文本信息或者附件.

      5)标准体系:该模块是相对独立的模块,是为管理标准体系(包括国家标准和地方标准)而开发的,对标准的操作包括添加、删除、查看、下载、搜索等.

      6)用户管理:分为“申报单位”、“评审专家”和“个人”三部分信息管理.其中申报单位信息和评审专家信息管理主要用于添加、修改、删除用户信息和密码重置.个人信息管理主要用于当前用户修改密码使用.系统的用例图如图3所示.

基于.NETMVC架构下的科研项目管理系统

图3系统用例图

      3、数据访问

      3.1系统数据库设计

      系统应用SQL Sever 2008作为数据库引擎,内部主要数据由消息信息、标准信息、用户信息、专家意见、项目信息等组成,项目相关数据表关系图如图4所示.消息信息(message_detail表)主要包括系统提示、待办事项、管理单位或系统发送的消息;标准信息存储了国家标准和地方行业标准两类信息,每类信息主要由三个表组成:ss_detail(标准详细信息)、ss_group(标准所属大类)、ss_sorts(标准所属子类).

基于.NETMVC架构下的科研项目管理系统

图4系统项目相关数据表关系图

      用户信息由三类用户表组成: department_user(申报单位)、expert_user(评审专家)和management_user(管理机构);项目相关信息由6个表组成,分别是:project_patent(项目专利)、project_detail(项目详细信息)、project_person(项目完成人)、project_complete_company(项目完成单位)、project_sort  (项目类别)、project_techbook(项目技术报告).

      3.2数据库连接

      与SQL Sever 2008连接的命令写在Web.conf i g文件中,部分代码如下:


......


      程序通过访问Web.config文件中 配置节点中的信息建立与数据库的连接.其中name是连接名称, connectionString是关键字,里面有Data Source(数据库名)、AttachDbFilename(链接文件)、User  Instance(开启用户验证)和System.Data.SqlClient(调用系统dll文件).

      3.3LINQ

      LINQ(Language  Integrated Query)是.NET语言集成查询技术,其已应用到很多信息类管理系统,如在线考试系统、实验室网上预约系统等[6,7].其中Linq tosql(DLINQ)用于以对象形式管理关系数据,并提供了丰富的查询功能,它将数据结构(表结构)看作是类,而将表里的数据看作是变量,描述为Data-object(variable),将数据库的信息配置放到XML中(称为ExternlMapping)或property中[8].

      下面程序段是管理单位用户查询项目信息过程中使用的GetProjects查询语句.

[Authorize  (Role=”Management”)]  //利用Authorize属性通知控制器操作,只有Management用户才可以执行这个操作方法

publicActionResult ProjectDetail( int projectID , stringprojectSort)

{Project data =from a in ProjectReview. Project_Detailorderby  a. AcceptanceState  descending//以项目验收状态进行降序排序

where a.ProjectID==projected

&& a.ProjectSort==projectSort

select a;//使用LINQ查询在数据表Project_Detail中满足指定条件ProjectID和ProjectSort的数据,

ProjectDetail model = ProjectDetail.Create(data) ;//创建传递对象模型

ViewData [“PageTitle”] = “View Project Details”;//设置页面Title为View Project Details

returnView( model) ; }//返回视图

      4、系统界面实例

      系统的前台页面设计严格按照用户原则、信息最小量原则、帮助和提示原则等设计,其中运用了HTML、CSS相关技术设计静态页面, JavaScript脚本语言、Ajax及JQuery技术等设计动态效果,在必要时给予用户帮助提示.由于系统的界面众多,在此只列出几个主要界面的结构图,如图5所示.

基于.NETMVC架构下的科研项目管理系统

图5系统主要的界面结构图

      本系统通过SQL Sever 2008+数据库和IIS 6.0+发布,系统的部分实例如图6~8所示.

基于.NETMVC架构下的科研项目管理系统

图6系统登录页面面

图7填写项目开题报告页面

图8评审专家信息管理页面

      5、结语

      本系统为科研工作人员在项目管理、标准体系管理及相关用户信息管理上提供了网络管理途径,实现了无纸化办公和无区域化限制,大大减轻了科研工作人员工作量和费用支出.通过实际应用证明,本系统功能满足用户需求,页面响应速度快,运行稳定.

      参考文献

      1李志,贾克斌,李真真,等.基于.NET MVC架构的网上珠宝销售系统的设计与实现.计算机应用与软件,2013,30(3):187-189.

      2 Masound FA. ASP .NET and JSP frameworks in model view controller  implementation.  Information  and  Communication Technologies, 2006,(2): 3593-3598.

      3 Galloway J, Haack H, Wilson B, et al.孙远帅译.ASP .NETMVC 3高级编程.北京:清华大学出版社,2012.

      4 Lin YL, Hu JP. Design and implementation of the internet service platform   for   rural   house   building   technique   criteria   and management  based  on  .NET  MVC.  Applied  Mechanics  and Materials. 2011, 58-60: 1727-1731.

      5周文红.基于ASP .NET MVC框架的Web应用开发.计算机与现代化,2013,(10):197-199.

      6吴伶琳.基于LINQ技术的小区物业管理系统.计算机系统应用,2013,22(11):81-85.

      7王小花,李红霞,袁媛.基于LINQ to SQL的实验室网上预约系统的设计与实现.计算机与现代化,2012,(11):81-84.

      8李洪进.LINQ to SQL技术在Web开发中的应用.计算机与信息技术,2012:20-22.


——————— 推 荐 阅 读 ———————