王鹏跃
摘要:在信息化、无纸化就业见习管理背景下,结合用户需求设计并实现了基于ASP.NET技术的就业见习管理信息系统,提供了一种B/S模式下的三层架构系统解决方案。
关键词:信息化;无纸化;三层结构;ASP.NET技术;B/S模式
DOIDOI:10.11907/rjdk.161522
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2016)009007504
基金项目基金项目:
作者简介作者简介:王鹏跃(1990-),男,陕西西安人,西安工程大学计算机科学学院硕士研究生,研究方向为信息系统设计与软件开发。
0引言
就业见习是指政府有关部门对离校后未就业毕业生到企事业单位实践训练的就业扶持措施,这项措施为高校毕业生由校园走向社会带来了良好的过渡效果。就业见习信息管理随着时间的累积产生了数量庞大的繁杂数据,因其格式不一等原因,很大程度上降低了就业见习管理效率。设计并实现一个就业见习管理信息系统,通过信息的规范管理、快速查询等来实现就业见习管理的信息化、自动化和无纸化。
1相关技术介绍
1.1ASP.NET及其三层架构
ASP.NET是微软推出的网络编程开发框架,它是.NET框架中的重要成员。ASP.NET 采用结构化的网页,为了将逻辑代码和表现代码分开而引入了Code Behind技术,通过使用这项技术,可以使逻辑代码和表现代码互不影响。因此,利用ASP.NET可以方便快速地开发功能强大的网络应用程序[1]。
ASP.NET的三层架构,层与层互相独立,不管哪一层发生变化,只需更改该层中的代码即可,提高了代码的可读性和功能的扩展性,有利于项目开发后的变更、维护和升级,在各种项目中应用广泛。三层架构自底向上分别是数据访问层(DAL)、业务逻辑层(BLL)、表示层(PL)。
数据访问层(DAL):对数据进行增加、删除、修改、査阅、存储等操作。
业务逻辑层(BLL):在数据访问层和表示层之间起重要的衔接作用,提供所有与数据库有关的操作。
表示层(PL):位于最外层展现界面。用于用户输入数据、显示输出结果等操作。
在三层构架中,数据访问层通过业务逻辑层来连接及操作,表示层给中间的业务逻辑层传递参数,并接受业务逻辑层参数[2]。
1.2ADO.NET
无论是简单文件或相关数据库亦或是其它存储类型都需要查询和更新数据。服务框架中的ActiveX Data Object+(ADO.NET)类库提供数据的简单访问功能,也就是使用相对容易的类来描述关系数据库中的表、列、行。ADO.NET是一组用于和数据源进行交互的面向对象类库。数据源可以是数据库、文本文件、文件或者其它新的数据源。不同的数据源使用与之相应的协议,如ODBC协议、OLE DB协议。这些数据源都可以通过ADO.NET类库进行数据交互[2]。
1.3浏览器/服务器(Browser/Server,简称B/S)模式
B/S模式是一种以Web技术为基础的系统平台模式,它把传统C/S模式中的服务器分解为一个数据库服务器与一个或多个应用服务器(Web 服务器),从而构成一个三层结构的客户服务器体系,如图1所示。在这种模式下,用户端只需一个通用浏览器,如Chrome或Explore,便代替了各种应用软件,浏览器和Web服务器之间通过TCP/IP通讯协议进行连接。浏览器发出数据请求,由Web服务器向后台取出数据并计算,并将计算结果返回给浏览器[1]。
2系统需求及用例分析
就业见习系统用户有3类,分别是毕业生用户、企事业单位用户、政府就业见习管理人员用户。
(1)毕业生用户需求及用例分析。
毕业生在就业见习系统中注册基本信息后,可以登录系统进而查看见习岗位信息以及企事业单位发送来的见习邀请。
毕业生用户用例分析如图2所示。
(2)企事业单位用户需求及用例分析。
企事业单位用户(以下称为见习基地用户)在就业见习系统中注册基本信息并通过审核后,可以发布见习岗位(见习岗位同样需要审核)以便申报毕业生见习,通过审核后便可前往见习基地进行就业见习。见习基地需为见习生申报保险和补贴。另外,见习基地用户还可以邀请未申报的毕业生前来见习。见习基地用户用例分析如图3所示。
(3)政府就业见习管理人员用户需求及用例分析。
政府就业见习管理人员用户(以下称就业见习管理用户)登录系统后,对见习基地用户注册的基本信息、发布的岗位信息、申报的毕业人员信息以及保险和补贴信息进行审核。同时,还需对毕业生信息、见习基地信息和岗位信息进行管理,对见习毕业生、见习基地、保险、补贴等信息进行统计分析。就业见习管理用户用例分析如图4所示。
3系统设计
3.1系统架构设计
就业见习管理信息系统采用B/S模式,省去了毕业生用户和见习基地用户重复搭建客户端环境的麻烦,并在Web服务器端采用了ASP.NET的三层架构,在提高代码重用率的基础上更好地适应了高内聚低耦合的设计原则。系统整体架构如图5所示。
为了提高服务器端三层架构之间的数据交互效率,本文根据面向对象的设计方法使用了业务实体类和通用类库来封装三层之间的数据交流,从而提高数据的隐秘性并方便系统开发,其结构如图6所示。
3.2系统功能设计
根据系统需求分析及系统架构设计,就业见习系统总体功能模块设计如图7所示。
3.2.1申报模块
申报模块包括发布岗位功能、申报毕业生见习功能、申报保险功能、申请补贴功能,其功能流程如图8所示。
3.2.2审核模块
审核模块包括见习基地审核功能、毕业生见习申报审核功能、保险申报审核功能以及补贴申请审核功能,每个功能都可以见习基地名称作为条件进行数据筛选,从而方便就业见习管理用户进行信息查询并审核。
3.2.3管理信息模块
管理信息模块包括学生信息、见习基地信息、岗位信息、保险信息以及补贴信息的查看编辑功能,每个功能载入时都会进行用户类型判断,从而限制用户所能查看或编辑的信息范围。例如毕业生用户只能查看自己的信息,就业见习管理用户则可查看所有注册了的学生信息。
3.2.4统计分析模块
统计分析模块在为就业见习管理用户统计历史数据的同时也为相关决策提供数据支持。该模块主要包括见习毕业生统计功能、见习基地统计功能、保险信息统计功能、补贴信息统计功能。其中因保险信息与补贴信息的统计分析数据会涉及到金钱,所以相关数据格式均保留到小数点后两位。
3.3系统数据库设计
根据以上需求分析及系统功能设计,通过UML建立数据库模型,主要类的类图如图9所示。
由于每个类的属性字段过多,这里仅列出重要的属性字段。有了类图便可以设计相应的数据库表,包括用户信息表、毕业生信息表、见习基地信息表、见习岗位信息表、保险信息表、补贴信息表。
4系统实现
4.1实现环境
操作系统:Windows 10专业版,开发工具:Microsoft Visual Studio 2013,Web服务器:IIS Express,数据库:SQL Server 2008R2。
4.2见习基地用户发布岗位功能实现
4.2.1表现层实现
就业见习系统中岗位发布功能的人机交互界面由aspx文件结合css 层叠样式表实现,使用JavaScript进行前台数据验证。
4.2.2业务逻辑层实现
见习基地用户一旦确认申请发布岗位,系统后台便会将用户所输入的信息封装进岗位信息业务实体类的一个实例对象中,再以参数的形式传递到系统业务逻辑层进行相关业务操作,例如在插入数据前检查岗位名称是否重复等。在业务逻辑执行完毕后再调用数据访问层进行数据插入操作,相关代码如下:
int AddBiaoShi = 0;
//创建岗位信息业务实体类实例
XABYS.Model.JianXi_JiDiFaBuGangWei FaBuGangWeimod =
new Model.JianXi_JiDiFaBuGangWei();
//检查数据库表中是否已经存在拥有该岗位名称的岗位信息
DataTable dt = FaBuGangWeibll.GetList("_DanWeiMingCheng = " + (string)RequestSession.GetSessionUser().Name + " AND _GangWeiMingCheng = " + this.MingCheng.Value + " AND _GangWeiShiJian = " + Convert.ToInt32(DateTime.Now.ToString("yyyy"))).Tables[0];
//判断是否符合添加条件
if (dt == null || dt.Rows.Count == 0)
{//符合条件
//将就业见习用户所填写的岗位信息封装进岗位信息业务实体类的实例中
FaBuGangWeimod._JiDiID = JiDibll.SelectJiDiID(
(string)RequestSession.GetSessionUser().Name);
FaBuGangWeimod._DanWeiMingCheng = (string)RequestSession.GetSessionUser().Name;
FaBuGangWeimod._DanWeiQuXian = JiDibll.SelectJiDiDanWeiQuXian(
(string)RequestSession.GetSessionUser().Name);
FaBuGangWeimod._GangWeiMingCheng = this.MingCheng.Value;
FaBuGangWeimod._ZhuanYeXuQiu = this.ZhuanYe.Value;
FaBuGangWeimod._ZhaoShouRenShu = this.RenShu.Value;
FaBuGangWeimod._SuoShuHangYe = JiDimod._SuoShuHangYe;
FaBuGangWeimod._DanWeiXingZhi = JiDimod._DanWeiXingZhi;
FaBuGangWeimod._GangWeiMiaoShu = this.MiaoShu.Value;
FaBuGangWeimod._BeiZhu = this.BeiZhu.Value;
FaBuGangWeimod._GangWeiShiJian = Convert.ToInt32(
DateTime.Now.ToString("yyyy"));
FaBuGangWeimod._GangWeiZhuangTai = "未审核".Trim();
//在业务逻辑层调用添加岗位信息的方法以岗位信息实体类实例作为参数
//从中最终调用数据访问层的添加岗位信息方法插入数据
AddBiaoShi = FaBuGangWeibll.Add(FaBuGangWeimod);
//插入成功AddBiaoShi > 0 ;插入失败AddBiaoShi = 0
return AddBiaoShi;}
else {
//不符合条件
//不符合条件,则AddBiaoShi < 0
AddBiaoShi = -1;
return AddBiaoShi;}
public int Add(XABYS.Model.JianXi_JiDiGangWei model){
//调用数据访问层的添加岗位信息的方法
return dal.Add(model);}
4.2.3数据访问层实现
数据访问层在被业务逻辑层调用后,首先会将岗位信息实例对象拆分成单个数据并对应数据库表中相应的字段,完成SQL语句的拼接,接着使用DbHelperSQL等通用类库中早已封装好的ADO.NET类的实例进行数据库访问及数据插入操作,完成数据库服务器岗位信息的存储,相关代码如下:
public int Add(XABYS.Model.JianXi_JiDiGangWei model){
//SQL语句的拼接
StringBuilder strSql = new StringBuilder();
trSql.Append("insert into Tb_JianXiGangWei("); strSql.Append("_JiDiID,_DanWeiMingCheng,_DanWeiQuXian,_GangWeiMingCheng,_Zh aoShouRenShu,_ZhuanYeXuQiu,_ShiFouQuanZhi,_YouWuYeBan,_JianXiDiDian,_BeiZhu, _GangWeiShiJian,_YiJianXiRenShu,_GangWeiZhuangTai,_ShenHeRen,_SHenHeShiJian) ");
……
SqlParameter[] parameters = {
new SqlParameter("@_JiDiID",SqlDbType.Int,4),
……
new SqlParameter("@_SHenHeShiJian",SqlDbType.NVarChar,100)};
parameters[0].Value = model._JiDiID;
……
//以ADO.NET的方式访问数据库
object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
//返回数据插入的结果
if (obj == null)
{return 0;}
else
{return Convert.ToInt32(obj);}}
5结语
本就业见习系统已经在某市人才中心应用,使用效果表明:系统减少了就业见习管理工作人员的工作量,对毕业生、就业见习基地等信息的管理质量显著提高。系统统计分析功能可为人才中心各部门的业务决策提供一定的数据支持。基于ASP.NET就业见习管理信息系统在信息化、自动化、无纸化方面取得了良好效果。
参考文献参考文献:
[1]唐伟.基于.NET的管理信息系统设计及开发技术研究[D].南京:东南大学,2005.
[2]梁国平.基于ASP.NET成人教育教务管理系统的设计与实现[D].上海:复旦大学,2013.
[3]陆玮.高校毕业生就业信息管理系统的分析与设计[D].昆明:云南大学,2013.
[4]李娟娟.基于B_S的库存管理信息系统的研究和开发[D].西安:西北工业大学,2005.
[5]黄刚,赵校.B_S和C_S模式在MIS中的比较[J].铁路计算机应用,2004,13(4):5051.
责任编辑(责任编辑:杜能钢)