我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商

登录 注册
当前位置:首页 > 科研信息化 > 正文

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

2019-11-20 来源:《计算机系统应用》
      摘要:通过对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所示.
图2科研项目管理系统功能模块图
      下面将对各模块的功能做简要说明:
      1)系统登录:完成对申报单位、管理机构和评审专家三类用户的身份认证,系统会根据用户类别分配权限及职能,从而提供个性化的服务.
      2)待办事项提醒:该模块主要功能是提醒用户等待处理的相关事项,主要包括消息提醒、项目阶段提醒、项目预到期提醒、合同提醒等,为用户操作提供快捷服务.
      3)项目管理:该模块主要包括六个申报流程和一个统计功能,六个流程是项目申报、项目开题、合同提交、项目预审、项目验收和项目报奖,这六个流程严格按顺序执行,缺一不可.
      4)消息管理:该模块是管理机构用于向其他两类用户(申报单位或评审专家)发送消息信息而研发的,其发送对象可以是全体用户,也可以是个别用户,发送的内容可以是文本信息或者附件.
      5)标准体系:该模块是相对独立的模块,是为管理标准体系(包括国家标准和地方标准)而开发的,对标准的操作包括添加、删除、查看、下载、搜索等.
      6)用户管理:分为“申报单位”、“评审专家”和“个人”三部分信息管理.其中申报单位信息和评审专家信息管理主要用于添加、修改、删除用户信息和密码重置.个人信息管理主要用于当前用户修改密码使用.系统的用例图如图3所示.
图3系统用例图
      3、数据访问
      3.1系统数据库设计
      系统应用SQL Sever 2008作为数据库引擎,内部主要数据由消息信息、标准信息、用户信息、专家意见、项目信息等组成,项目相关数据表关系图如图4所示.消息信息(message_detail表)主要包括系统提示、待办事项、管理单位或系统发送的消息;标准信息存储了国家标准和地方行业标准两类信息,每类信息主要由三个表组成:ss_detail(标准详细信息)、ss_group(标准所属大类)、ss_sorts(标准所属子类).
图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文件中,部分代码如下:
<connectionStrings>
<add name="ApplicationServices" connectionString   ="data  source=.\SQLEXPRESS;Integrated  Security=  SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;UserInstance=true"providerName="System.Data.SqlClient"/> ......
<add name="Ip" connectionString="http://X.X.X.X" />
</connectionStrings>
      程序通过访问Web.config文件中<connectionStrings >配置节点中的信息建立与数据库的连接.其中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所示.
图5系统主要的界面结构图
      本系统通过SQL Sever 2008+数据库和IIS 6.0+发布,系统的部分实例如图6~8所示.
图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.
      (本文于2014年发表在《计算机系统应用》 作者:天津城建大学 计算机与信息工程学院  林永良,胡建平;天津锐敏科技发展有限责任公司 吴树林)
分享到:

免责声明:
  1、项目管理信息化网发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more>

会议活动

more>

公开课

more>

PMO

Copyright © 2021 项目管理信息化网 版权所有 京ICP备17062359号-9 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如内容涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:574888227

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商,隶属卓橡公司

项目管理信息化微信公众号

PMO大会微信公众号