基于.NET平台B/S结构的考勤管理系统
滕佩峰1,王晓敏2
1北京邮电大学计算机应用,北京(100876)
2泰山医学院,泰安(271016)
E-mail:tengpeifeng226@sohu.com
摘 要:随着公司的日益发展,公司的各项事务都需要朝着自动化的方向发展。考勤管理是员工每天要进行的第一项工作任务,也是行政和财务工作的一个基础。本文论述了基于.NET平台B/S结构的考勤管理系统的设计思想,并结合此实例,阐述了用ASP.NET开发的三层结构应用系统的方法。
关键词:B/S,ASP.NET,三层结构
1. 引言
目前办公自动化系统正处于从传统的C/S 模式向B/S 模式的转化过程中。B/S 模式软件(浏览器/服务器模式)是随着Internet 技术的兴起,对C/S 模式的一种改进。在这种结构下,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
2. ASP.NET简介
ASP.NET是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的的优势。它把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多[1]。可以用Microsoft(R)公司最新的产品 Visual Studio.net开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.NET强大化软件支持的一小部分。因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中[2]。ASP.NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.NET。ASP.net是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。
3. 三层结构设计原理
为了方便系统的移植和以后的维护,现在的一些大型系统都是分层设计的,而最常见的分层结构就是三层结构,具体为表现层、业务流程控制层和服务提供层,三层的具体关系见图1[3]。
-1-
http://www.paper.edu.cn
表现层 控制层 服务提供层 数据
图1 三层结构模型
3.1 表现层
表现层即用户界面部分,ASP.NET以aspx或html页面的形式呈现给用户,表现层主要完成两个功能,获取用户输入并将用户请求的处理结果呈现给用户。
3.2 控制层
控制层处理用户请求,调用相应的web服务并根据服务结果生成用户界面。
3.3 服务提供层
服务提供层负责和数据库的交互及数据处理。
4. 采用三层结构进行系统设计
4.1总体设计
考虑到系统部署的方便,软件采用B/S结构。客户端直接使用IE浏览器访问系统,服务器端程序使用asp.net程序构建。基于系统灵活性和可扩展性的考虑,服务器端的数据以webService的方式提供。
4.2系统架构
系统主要分为三层:表现层、业务流程控制层和服务提供层。系统总体结构如图2所示:
-2-
http://www.paper.edu.cn
Web Forms Work Flow WebServices DB 表现层 控制层 服务提供层
图2 系统总体架构图
4.2.1表现层设计
根据需求分析所有相关的用户界面主要包括以下几个方面: Index.aspx:主界面,如图3:
图3 考勤系统主界面
用户及权限管理
Regist.aspx:用户注册界面,如图4
-3-
http://www.paper.edu.cn
图4 用户注册界面
Login.aspx:登录界面,如图5:
图5 用户登陆界面
RolesManagement.aspx:角色管理界面
-4-
http://www.paper.edu.cn
PrivilegeManagement.aspx:权限管理界面 UserManagement.aspx:用户管理界面 考勤管理
LeaveRequisition.aspx:请(补)假界面 RemediationRequisition.aspx:遗忘补救界面 OutRequisition.aspx:外出及出差登记界面 RequisitionManagement.aspx:单据管理界面 SingleAttendence.aspx:个人考勤查询,如图6:
图6 个人考勤查询界面
MultiAttendence.aspx:多用户的考勤查询 系统维护
SystemParameter.aspx:系统参数 BusinessRules.aspx:业务规则 4.2.2控制层设计
控制层由处理不同页面请求的控制器组成,每个控制器处理相应的用户请求。控制器决定用户请求的处理流程。目前提供三种控制器分别处理用户相关请求、考勤相关请求及系统维护相关请求。
UserController:处理用户及权限管理的页面请求 所处理的所有请求包括 Regist:新用户注册请求 Login:用户登录请求
-5-
http://www.paper.edu.cn
Logout:用户退出请求 AddRole:增加角色请求 RemoveRole:删除角色请求 UpdateRole:更新角色请求 SetPrivilege:设置角色权限 DeleteUser:删除用户 FreezeUser:停用用户 ResetPassword:重置用户密码 ChangePassword:更改用户密码 UpdateUser:更新用户信息
BusinessController:处理考勤管理的页面请求 LeaveRequisition:请假申请 LeaveConfirm:请假审批
RemediationRequisition:遗忘补救申请 RemediationConfirm:遗忘补救审批 OutRequisition:外出及出差申请 OutConfirm:外出及出差审批 QuerySingle:个人考勤查询请求 QueryMulti:多用户考勤查询请求
SystemController:处理系统维护的页面请求 AddDepartment:增加部门 RemoveDepartment:删除部门 UpdateDepartmen:更新部门信息 AddStatisticRules:增加统计规则 RemoveStatisticRules:删除统计规则 UpdateStatisticRules:更新统计规则 AddConfirmRules:增加审批规则 RemoveConfirmRules:删除审批规则 UpdateConfirmRules:更新审批规则
SetDepartmentStatisticRules:设置部门统计规则 SetDepartmentConfirmRules:设置部门审批规则 4.2.3服务层设计
这种方式也使其他应用程序服务提供层以webservice的方式提供对控制器的数据支持,
可以方便的使用考勤管理系统的数据。对应每个控制器都有一个相应的服务提供数据支持。同时,在webservice和数据库之间有相应的数据库访问层DAL来处理相关的数据库操作。
UserService:提供用户及权限管理相关的服务 Register:新用户注册服务 Login:用户登录服务
-6-
http://www.paper.edu.cn
Logout:用户退出服务 AddRole:增加角色服务 RemoveRole:删除角色服务 UpdateRole:更新角色服务 SetPrivilege:设置角色权限服务 DeleteUser:删除用户服务 FreezeUser:停用用户服务 ResetPassword:重置用户密码服务 ChangePassword:更改用户密码服务 UpdateUser:更新用户信息服务
AttendenceService:提供考勤管理相关的服务 LeaveRequisition:请假申请服务 LeaveConfirm:请假审批服务
RemediationRequisition:遗忘补救申请服务 RemediationConfirm:遗忘补救审批服务 OutRequisition:外出及出差申请服务 OutConfirm:外出及出差审批服务 QuerySingle:个人考勤查询请求服务 QueryMulti:多用户考勤查询请求服务
SystemService:提供系统维护相关的服务 AddDepartment:增加部门服务 RemoveDepartment:删除部门服务 UpdateDepartmen:更新部门信息服务 AddStatisticRules:增加统计规则服务 RemoveStatisticRules:删除统计规则服务 UpdateStatisticRules:更新统计规则服务 AddConfirmRules:增加审批规则服务 RemoveConfirmRules:删除审批规则服务 UpdateConfirmRules:更新审批规则服务
SetDepartmentStatisticRules:设置部门统计规则服务 SetDepartmentConfirmRules:设置部门审批规则服务
4.3页面处理流程
用户的请求由控制层相应的控制器获取,控制器调用服务提供层提供的服务处理用户请求,并将处理结果呈现给用户。各页面处理流程如图7所示:
不同的控制器处理不同的用户请求,目前提供三类控制器,分别对应相应的用户界面。服务提供层负责所有和数据库的交互及复杂数据处理,并以webservice的方式提供接口。一个用户请求的处理流程如图8:用户发起请求;控制器接收请求,处理用户数据并调用相应的webservice;服务提供层通过调用的参数计算结果,如需要数据库访问则通过数据访问层
-7-
http://www.paper.edu.cn
获取数据;服务提供层将计算结果发送到控制器中;控制器根据服务层提供的数据决定用户请求的处理。
用户及权限管理 UserController UserService 考勤管理 BusinessController AttendenceServie 系统维护 SystemController SystemService
图7 页面处理流程图
下面以新用户注册为例说明用户请求的处理流程。⑴首先用户通过Regist.aspx页面发起注册请求;⑵页面处理程序做输入合法性检查,通过检查后将调用UserController的Regist方法;⑶UserController调用UserService的Regist服务;⑷UserService通过DAL进行用户注册的数据库操作;⑸UserService将注册结果发送给UserController;(6)UserController根据结果决定处理流程,如果成功则进入index.aspx页面。⑺Regist.aspx获取UserController的处理结果,如果失败则显示错误原因。处理流程如图4所示:
Regist.aspx ⑴ ⑺ Regist.aspx.cs ⑵(6) UserController Regist() ⑶ ⑸ UserService Regist() Index.aspx (6) ⑷ DAL 图8 用户注册请求的处理流程
4.4数据库设计
数据库设计请参考图9数据库模型图“CNTOA.VSD。”下面对一些比较复杂的数据表作一个简单说明。
-8-
http://www.paper.edu.cn
图9 数据库模型图
Privileges:权限表。主要是获取考勤统计的权限。编号由低到高相应的权限也有低到高。依次为查看自己考勤记录的权限,项目组,部门和全体考勤权限。
Departments:部门表。公司部门信息,为树型结构。根节点为公司,DepartmentID为0;项目组可以作为某个部门的一个子节点处理。
对单据类的考勤处理涉及到好几个数据表。
RequsitionTypes:定义了单据的类型,如请假、出差等。 Requsitions:是用户的一个申请
RequsitionConfirmPolicy:是用户申请的审批策略。每个部门可以定义自己的审批策略,也可以使用父部门的策略。公司审批策略是系统的缺省策略。Authority是审批权限,RoleIDToConfirm是对应的审批角色。
RequsitionsConfim:是用户申请的审批状态。Authority对应RequisitionConfirmPolicy的Authority字段,记录每级的审批人,审批状态,意见等。
5. 结束语
三层结构的设计,不仅可以方便地移植移植,而且给以后的维护带来了极大的方便。此
-9-
http://www.paper.edu.cn
考勤系统投入使用半年以来,运行一直很稳定,给行政人员带来了极大的方便,极大的提高了工作效率。
参考文献
[1] Chris Ullman ,John Kauffman,杨浩 ASP.NET 1.1入门经典 [M] 清华大学出版社2005.8 [2] Karli Watson ,Christian Nagel C#入门经典(第3版) [M] 清华大学出版社 2006.1 [3] Simon Robinson C#高级编程(第3版) [M] 清华大学出版社 2005.6
Development of Attendance Management System based
on .NET platform and B/S structure
Teng Peifeng1, Wang Xiaomin2
1 School of Computer Science and Technology, Beijing University of Post and Telecomunications,
Beijing (100876)
2 Taishan Medical University, Taishan (271016) Abstract
With the growing development of the company,automation of all affairs is required. Attendance Management is not only the first task of every employee, but also a basis for the administrative and financial work. This paper discusses the design of Attendance Management System based on .NET platform and B/S structure. And integrated of this case, explain the method of developing an application system of three-tier structure using ASP.NET. Keywords: B/S; ASP.NET; three-tier structure
-10-
因篇幅问题不能全部显示,请点此查看更多更全内容