




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——扶贫信息系统毕业
第11页共51页在申项目投资明细登录>>>修改密码>在申项目>项目管理>村镇政府用户已审核项目图2.6
看只能看到自己所在区域的项目状况。
村镇用户只能使用在申项目和在申项目资金明细的编辑和查看功能,而且查县级政府用户和市级政府用于由于对于系统权限的要求需要视相应的需求
而定,所以用例图无法确定的画出。2.3系统运行环境
系统服务器端硬件配置:
宽带局域网、1M以上宽带互联网;
网络服务器:CPUP43.0G以上,内存1G以上,硬盘80G以上,10M/100M网卡;
数据库服务器:CPUP43.0G以上,内存1G以上,硬盘80G以上,10M/100M网卡;
应用服务器:CPUP43.0G以上,内存1G以上,硬盘80G以上,10M/100M网卡;
系统服务器端软件配置:
数据库服务器:WindowsServer2023操作系统、SQLServer2023。应用服务器:WindowsServer2023操作系统、.NETFramework4.0、ASP.NETMVC2.0、IIS6.0或更高版本。
客户端系统配置:
IBMPC及其兼容机:CPUP42.0G以上,内存256M以上,硬盘40G以上,10M/100M网卡,Windows2000/2023/NT/XP/Vista/7/8中文操作系统;
浏览器:InternetExplorer8/Chrome/Opera
办公软件:MSOffice2000或以上中文版本;
第12页共51页3.相关技术介绍
3.1CSharp
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似VisualBasic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言。
C#将快速的应用开发和对底层平台所有功能的访问紧凑结合,它与Web标准完全同步,并且与现存应用便利地集成,它允许程序员在需要时使用底层代码。
C#与Java的不同之处在于:
(1)动态查阅。C#4.0新增dynamic关键字,提供动态编程(dynamicprogramming)把既有的静态对象标记为动态对象,类似javascript,Python或Ruby。
(2)中间代码。微软在用户选择何时MSIL应当编译成机器码的时候是留了很大的余地.微软公司很防备的声称MSIL不是解释性的,而是被编译成了机器码.它也明白大量--假使不是大多数的话--程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用C#,VisualBasic,\C++\的一个符合CLS的版本--等语言编写的程序)将在性能上超过\解释性的\代码.当然,这一点还需要得到事实证明,由于C#和其他生成MSIL的编译器还没有发布.但是JavaJIT编译器的普遍存在使得Java和C#在性能上相对一致.象\是编译语言而Java是解释性的,\之类的声明只是商业技巧.Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码.
(3)命名空间中的申明。当你创立一个程序的时候,你在一个命名空间里创立了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体。必需使用using关键字来引用其他命名空间的内容。
(4)基本的数据类型。C#拥有比C/C++或者Java更广泛的数据类型.这些类型是bool,byte,ubyte,short,ushort,int,uint,long,ulong,float,double,和decimal.像Java一样,所有这些类型都有一个固定的大小.又像C和C++一样,每个数据类型都有有符号和无符号两种类型.与Java一致的是,一个字符变量包含的是一个16位的Unicode字符.C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字。
(5)两个基本类。一个名叫object的类是所有其他类的基类。而一个名叫string的类也象object一样是这个语言的一部分.作为语言的一部分存在意味
第13页共51页着编译器有可能使用它--无论何时你在程序中写入一句带引号的字符串,编译器会创立一个string对象来保存它。
(6)参数传递。方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进行值传递。ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值。out关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值。
(7)与COM的集成。C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术.实际上,最终有可能在任何.NET语言里编写COM客户和服务器端。C#编写的类可以子类化一个已存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件。这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用任何.NET语言子类化。
(8)代理和反馈。一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了。代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event关键字用在将在事件发生的时候被当成代理调用的方法声明中。
3.2ADO.NETEntityFramework
ADO.NETEntityFramework是微软以ADO.NET为基础所发展出来的物件关联对应(O/RMapping)解决方案,早期被称为ObjectSpace,现已经包含在VisualStudio2023ServicePack1以及.NETFramework3.5ServicePack1中发表。
ADO.NETEntityFramework以EntityDataModel(EDM)为主,将资料规律层切分为三块,分别为ConceptualSchema,MappingSchema与StorageSchema三层,其上还有EntityClient,ObjectContext以及LINQ可以使用。
EntityFramework利用了抽象化数据结构的方式,将每个数据库物件都转换成应用程式物件(entity),而资料字段都转换为属性(property),关联则转换为结合属性(association),让数据库的E/R模型完全的转成物件模型,如此让程式设计师能用最熟悉的编程语言来呼叫存取。而在抽象化的结构之下,则是高度整合与对应结构的概念层、对应层和储存层,以及支援EntityFramework的资料提供者(provider),让资料存取的工作得以顺利与完整的进行。
(1)概念层结构,概念层结构定义了物件模型(ObjectModel),让上层的应用程式码可以如面向对象的方式般存取资料,概念层结构是由CSDL
第14页共51页(ConceptualSchemaDefinitionLanguage)所撰写。一份概念层结构定义如下所示:
(2)对应层结构负责将上层的概念层结构以及下层的储存体结构中的成员结合在一起,以确认资料的来源与流向。对应层结构是由MSL(MappingSpecificationLanguage)所撰写。一份对应层结构定义如下所示:
第15页共51页(3)储存层结构是负责与数据库管理系统(DBMS)中的资料表做实体对应(PhysicalMapping),让资料可以输入正确的资料来源中,或者由正确的资料来源取出。它是由SSDL(StorageSchemaDefinitionLanguage)所撰写。一份储存层结构定义如下所示:
3.2ASP.NETMVCFramework
ASP.NETMVCFramework是微软在ASP.NET中所添加的一组类别库,这组类别库可以使用Model-View-Controller的设计模式来开发ASP.NET的应用程式。它与现有的ASP.NET应用程式并没有冲突,所以两者是可以并行的。ASP.NETMVCFramework被包装在System.Web.Mvc.dll中,并利用ASP.NETRouting来支援动作流以及URLRewriting的能力,让它可以更贴近Web的发展以及Web2.0的特性。
在ASP.NETMVC架构中,除了Controller、Model与View三个主要部份以外,还包含了大量技术以让这三层得以整合并交互运作。
(1)Controller
Controller在ASP.NETMVC应用程式中是负责中控的角色,也是来自用户端
a.Sex.Contains(input1));}
returnView(model.ToPagedList(pageIndex,pageSize));}
Sample_BLL中用到的Get方法:
///
///获取数据库Sample表中所有数据///
///IQueryable对象集publicIQueryableGet(){
return_db.Sample.OrderBy(a=>a.Id);}
2)Edit(编辑):
SampleController.cs中的方法。
///
///从Index向Edit跳转///
第44页共51页///单个对象
publicvirtualActionResultEdit(Guid?Id){
varitem=_Sample_BLL.Get(Id);returnView(item);}
//////点击提交///
///
//////新Url[HttpPost]
publicvirtualActionResultEdit(Guid?Id,Samplecollection){
Edit(Id);
if(!ModelState.IsValid){returnView();}_Sample_BLL.Save(Id,refcollection);returnRedirectToAction(\,RouteData.Values);}
Sample_BLL中用到的Get方法:
///
///获取单个对象///
//////单个对象publicSampleGet(Guid?Id){
varitem=newSample();if(Id!=null){item=_db.Sample.Single(a=>a.Id.Equals(Id.Value));}
returnitem;}
///
///保存新增或修改的信息///
///
第45页共51页///
publicvoidSave(Guid?Id,refSampleitem){
ExtendedDBModelContainer_db=newExtendedDBModelContainer();if(Id==null){item.Id=Guid.NewGuid();_db.Sample.Attach(item);_db.ObjectStateManager.ChangeObjectState(item,EntityState.Added);}else{_db.Sample.Attach(item);_db.ObjectStateManager.ChangeObjectState(item,EntityState.Modified);}
_db.SaveChanges();}
1)Delete(删除)
SampleController.cs的方法
///
///删除
///
//////1[HttpPost]
publicstringDelete(GuidId){
_Sample_BLL.DeleteObject(Id);return\;}
Sample_BLL.cs中的删除方法:
///
///删除对象///
///publicvoidDeleteObject(GuidId){
varitem=newSample(){Id=Id};_db.Sample.Attach(item);
_db.ObjectStateManager.ChangeObjectState(item,EntityState.Deleted);
第21页共51页?Web层:主要有View和Controller,View都是aspx页面,用于用户交
互,将使用Model生成强类型视图,带有输入验证。Controller(控制器)用于和BLL层传递信息。
?BLL层:即业务层,通过调用Model层的实体框架的数据库方法进行增
删改查的操作。
?Model层:包括Metadata和EntityFramework两层,其中Metadata是
用于View层验证而存在的,EntityFramework是数据库访问层解决方案(采用O/R映射)。
?通用类库:主要是整个系统通用的,譬如分页控件,权限验证类等。?实体框架扩展应用:是EF团队终究推出一套比较完整的缓存和SQL执行
日志的解决方案。
4.3系统设计4.3.1系统管理说明
根据需求分析得到系统管理包括:用户管理、角色管理、模块管理、操作类1)用户管理:主要实现系统用户信息的管理,主要针对用户的登录信息、
系统角色、所属区域等的信息的管理。
2)角色管理:主要用户系统权限的管理,每个角色拥有相应的系统权限,
最终角色赋予给系统用户,使用户拥有相应的系统权限。
3)模块管理:主要用于系统模块的排列的管理,模块管理的最终目的是用
于系统左侧菜单栏目的显示,所以系统模块的排列最终会决定系统菜单的显示。
4)操作类型:主要用于系统操作参数的管理,操作参数主要有编辑
(Edit)、列表(Index)、查看(Details)、删除(Delete)等,操作参数将对应系统代码内的参数,所以不得随意更改,否则系统不能正常运行。
5)系统参数:主要用于系统参数的存储和管理。例如:系统主名称、系统
副名称、日志是否写入文档、是否启用系统缓存等,系统参数是系统开发中代码内的参数,所以系统参数的参数名不可随意更改,否则将会导致系统正常运行。
6)操作日志:主要用于系统日志的管理,主要显示了用户访问了哪一个系
型、系统参数、操作日志、数据管理,7个模块。
第22页共51页统的模块,主要用于系统的测试和以后的维护,对于访问量高的系统模块我们要更好的实现他们的功能以适应大量的访问。同时操作日志还实现对于数据库操作的详细记录,对于哪个用户在什么时间操作了哪一条数据,数据是什么,都会有相应的记录。
7)数据管理:主要实现系统数据库的备份、还原信息的管理。类图1)用户管理
用户管理类图如图4.4所示
Controller:用户+Index:查询列表()+Edit:添加、修改()+Details:查看()+Delete:删除()UserAuthorize:权限验证Model:用户BLL:角色分派BLL:用户+Get:获取()+Save:保存()+DeleteObject:删除()+check:验证登录()-Id-Username-Password-LastActivityDate-IP-Email-AreaCodeDatabaseEntities:数据访问
图4.4
2)角色管理
角色管理类图如图4.5所示
Controller:角色-Index:查询列表-Edit:编辑-Delete:删除UserAuthorize:权限验证BLL:权限分派BLL:角色+Get:获取数据()+Save:保存数据()+DeleteObject:删除数据()Model:权限-Id-RoleName:角色名称-Description:描述DatabaseEntities
图4.5
第23页共51页3)模块管理、操作类型、系统参数、系统日志
模块管理、操作类型、系统参数、系统日志类图如图4.6所示
ControllerUserAuthorize:权限验证、日志记录+Index:查询列表()+Edit:编辑()+Delete:删除()+Details:查看详细()BLLModel:数据类型+Get:获取数据()+Save:保存数据()+DeleteObject:删除数据()DatabaseEntities
图4.6
类图说明
1)Controller
Cotroller类是系统中的控制器类,主要的方法有Index(列表查询)、Edit(编辑)、
Delete(删除)、Details(详细)等,具体的方法还要在开发时视当时的状况而定。
Controller+Index:查询列表()+Edit:编辑()+Delete:删除()+Details:查看详细()
?Index:通过页面输入的查询页面,调用BLL中的Get方法获得一个
IQueryabl的对象集,再返回给显示页面。
?Edit:数据编辑,包括添加和修改都是通过这个方法再调用BLL中的Save
方法最终保存在数据库中。添加时,Controller获取页面的输入信息,打包成Model数据,调用BLL的Save方法保存对象。修改数据时,通过数据的Id获取数据信息,在前台界面显示信息,最终修改信息完成调用BLL中的Save方法保存修改的对象。
?Delete:通过页面传递过来的Id调用DeleteObject方法删除相应的信
息。
?Details:通过页面传递的Id调用Get方法返回一个对象。
2)BLL
第24页共51页系统业务规律类,即通过调用数据库访问层的类方法处理系统业务规律的类。
BLL+Get:获取数据()+Save:保存数据()+DeleteObject:删除数据()
?Get:Get方法是一个经过屡屡重载的函数方法,Get()获取数据库相应
表中的所有数据,Get(id)是通过Id获取一条数据,同时根据开发需求还会编写其他的重载方法。
?Save:接收Controller类传过来的对象,调用实体框架中的方法去保存
新对象或者更新已有对象。
?DeleteObject:通过Id获取对象,最终调用实体框架的方法删除查询到
的对象。3)Model
Model是由EntityFramework(实体框架)根据已有的数据库已有的表生成相应的对象。所以Model的属性由于数据库表中列的不同而不同。通过对EntityFramework中Model元数据进行扩展,形成MVC中的页面验证机制。
Model:数据类型
4)UserAuthorize
UserAuthorize:权限验证、日志记录
这个类主要用于系统调用Controller类的时候对Controller类中的Action进行权限验证,假使有访问权限,则执行Action的方法并记录日志,没有权限返回提醒。4.3.2基本信息说明
根据需求分析得到基本信息包括:行政区域、建设性质、投资来源、建设信息、优先等级、项目状态、年度设定、项目招投标管理、合同状态、项目类别等
第25页共51页模块。
1)行政区域:用于行政区域的管理,属于基本信息,用于系统其他模块信
息的编辑使用,例如对于用户的行政区域将会用到这个模块的信息。2)建设性质:用于基础信息建设性质的管理。3)投资来源:用于投资来源信息的管理。4)建设信息:用于建设信息的管理。5)优先等级:用于项目优先等级的管理。6)项目状态:用于项目状态的管理。7)年度设定:用于系统年度信息的管理。8)项目招投标管理:用于项目招投标管理。9)合同状态:用于合同状态的管理。10)项目类别:用于项目类别的管理。
以下主要介绍一下行政区域和建设性质两个模块设计,其中项目类别将采用和行政区域一致形式实现,其他模块的实现将和建设性质的实现一致。类图
1)行政区域
行政区域类图如图4.7所示:
ControllerUserAuthorize:权限验证、日志记录+Index:查询列表()+Edit:编辑()+Delete:删除()+Details:查看详细()BLLModel:数据类型+Get:获取数据()+Save:保存数据()+DeleteObject:删除数据()DatabaseEntities
图4.7
2)建设性质
建设性质类如图4.8所示:
第26页共51页ControllerUserAuthorize:权限验证、日志记录+Index:查询列表()+Edit:编辑()+Delete:删除()+Details:查看详细()BLLModel:数据类型+Get:获取数据()+Save:保存数据()+DeleteObject:删除数据()DatabaseEntities
图4.8
类图说明
类图说明见:类图说明
4.3.3项目管理说明
根据需求分析项目管理包括在申项目管理、在申项目投资明细、已审核项目管理、项目管理、项目投资明细、项目下达明细、项目建设内容等模块。
1)在申项目:主要用于村镇提交项目,然后县级政府在其中对已添加的项
目进行进一步编辑确定优先等级,最终提交给市级政府审核,项目审核通过后会在已审核项目模块中等待登记为正式项目。在申项目投资明细。
2)主要用于在申项目投资明细的管理。
3)已审核项目:用于管理已审核通过的项目的管理。4)项目管理:用于登记成为正式项目的信息管理。5)项目投资明细:主要用于正式项目投资明细的信息管理。6)项目投资明细下达:主要用于正式项目投资明细下达信息的管理。7)建设内容:主要用于正式项目中建设内容的管理。
项目管理的类图和类图说明可以参照上面已经实现的模块类图设计和说明。类图
系统在申项目管理的总体类图如图4.9所示:
第27页共51页Contorller:在申项目+Index:列表()+Exam:审核()+Details:详细()+Edit:编辑()+Delete:删除()UserAuthorize:权限验证、日志记录BLL:在申项目+Get:获取()+Save:保存()+DeleteObject:删除()Model:在申项目ExtendedDBEntities:在申项目
图4.9
系统项目管理的类图如图4.10所示:
Contorller:项目管理UserAuthorize:权限验证、日志记录+Index:列表()+Details:详细()+Edit:编辑()+Delete:删除()BLL:项目管理+Get:获取()+Save:保存()+DeleteObject:删除()Model:项目管理ExtendedDBEntities:项目管理
图4.10
类图说明
类图说明见:类图说明。Exam:系统的审核操作。
第28页共51页4.3.4系统流程图
根据客户的需求可以把整个系统的业务流程抽象为图4.11所示:
开始优先判断上报项目终止项目申报(项目库管理)有优先等级的项目库TRUE审核项目下达明细TRUE竣工项目登记入库项目挑拣下达项目(项目登记)项目投资明细审查项目投资明细项目招标项目建设登记项目检查信息登记反馈下达信息反馈下达信息招标合同登记图4.11
流程解释:首先由村镇级用户或者更高一级单位的用户录入需要申请的项目的详细信息成为入库项目,然后由县级政府部门对录入的项目信息进行进一步编辑排序后交由更高一级单位进行审核,审核通过后等待登记为正式项目,然后在登记正式项目时录入相应的项目信息,正式项目通过后期的建设、检查最终成为竣工项目,而中间的一系列信息可以为最终的统计服务。4.4系统数据结构设计
由于系统涉及的数据结构表比较多,数据结构设计可看附录:《扶贫系统》
数据库设计.docx文件。4.5系统程序设计说明4.5.1系统开发解决方案说明
《贺州市扶贫信息管理系统》采用了常用的B/S结构设计,Microsoft(微
软)公司.NETFramework4.0平台上使用C#语言开发,采用了ASP.NETMVC2.0框架和EntityFramework(实体框架),数据库使用MicrosoftSQLServer2023设计。程序开发IDE采用MicrosoftVisualStudio2023。系统可以抽象为3
第29页共51页层架构,整个系统程序解决方案如下图4.12所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级语文竞赛试题(附答案)
- 电力档案培训课件
- DB36T-批而未用土地清数建库技术指南编制说明
- 2024年农业植保员考试成绩评估标准试题及答案
- 禽蛋养殖场兽药质量安全技术
- 2024年模具设计师考试高效复习法试题及答案
- 2024足球裁判员的职场挑战与试题与答案
- 关于体育经纪人的职业规划试题及答案
- 提高实战水平的2024年足球裁判员试题及答案
- 2024年篮球裁判员重要知识试题及答案
- JGJ59-2011建筑施工安全检查评分表-(完整版)
- 梁思成《千篇一律与千变万化》(课件)
- 《分子生物学》复习考试题库(带答案)
- 阿育吠陀体质测试
- 智能汽车传感器技术-激光雷达
- 2023年四年级奥林匹克英语竞赛试题
- 专利挖掘与技术交底书撰写
- 输液泵、微量泵的使用
- 35kv电缆敷设施工方案正式版
- GB/T 3098.26-2021紧固件机械性能平垫圈
- 四年级安全教育珍爱生命预防溺水安全知识主题班会
评论
0/150
提交评论