1、本 科 毕 业 论 文办公自动化系统娱乐生活模块Office Automation SystemEntertainment and Life Module姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月摘 要办公自动化是现代化办公与计算机网络相互结合的一种新型办公方式。在竞争日趋白热化的信息时代要求更便捷、更高效的新型办公自动化,从这个角度出发,办公自动化不再是一种工具,而是决定企业生存发展的命脉。企业的主体是人,是生产力中最活跃的因素。对人的关注在企业文化的任何方面都不能忽视。新型办公自动化通过“无纸化”的工作模式,打破时间和空间的距离,给企业流程注入
2、新的活力,极大地提高信息管理与应用的效率,同时要将人的潜能释放出来,进而激发出企业文化潜能。本系统中的娱乐生活模块是以增加企业人文关怀为目的,利用便捷的信息化平台,解决企业员工用餐拥挤问题。从生活的点滴体现企业的人文关怀,营造更有人情味的企业文化。本系统的开发环境为 Visual Studio 2005 + SQL Server 2005。项目参考微软在.Net 方面推出的一个典型范例 PetShop 框架,按照三层结构从底层数据访问层往上开发,构建一个 B/S架构的信息化平台。本模块的主要子模块是网上订餐系统,另外附加两个子模块::在线益智游戏和简易电子地图。本文重点描述娱乐生活模块的总体设
3、计和详细设计。总体设计中描述数据库设计、页面跳转和系统功能。详细设计描述项目实现过程,从Model、 IDAL、DALFactory、DBUtility、SQLServerDAL、BLL 到表示层,逐层说明每一层的代码实现,同时分析使用 PetShop 框架对系统开发、后期维护的好处。另外本文还介绍了使用 JavaScript 编写出的网页特效和一些益智游戏,让系统的界面更加友好,操作更加体贴。关键字:办公自动化;订餐系统;PetShop 框架AbstractOffice Automation is a new office type, which is the integration of
4、modern office and computer network. Nowadays, competition has become increasingly heated, so enterprises demand more convenient and more efficient new office automation. From this perspective, office automation is no longer a tool, but plays an important role which decides lifeblood of enterprise su
5、rvival and development.People are the main part of enterprises, and the most active factor in productivity. The concerns of people in any aspect of corporate culture can not be ignored. New type of office automation through the “paperless” work pattern breaks the distance of time and space, injects
6、new vitality to enterprise, improves the efficiency of information management, at the same time releases human potential, and thus stimulates potential corporate culture. This module uses efficient information technology platform to solve the issue of employees crowded dining for the purpose of incr
7、easing humane care, and creates a more humane corporate culture.The development environment of the system is Microsoft Visual Studio 2005 and SQL Server 2005 Project references PetShop framework which is a typical example of .NET launched by Microsoft. It develops from data access layer according to
8、 the three-tier architecture. This module contains a main sub-module: online reservation system, and two additional sub-module online puzzle game, simple digital map.The reporter describes the design and detailed design of entertainment life module. The design describes in database design, page jump
9、, and the system functions. Detailed design describes the implementation process of project from the Model layer, IDAL layer, DALFactory layer, DBUtility layer, SQLServerDAL layer, BLL layer to the Web layer, and illustrates the code at every level layer by layer. At the same time the reporter analy
10、sis the benefits of PetShop framework to system development and post-maintenance.In addition this article also describes the use of JavaScript to write more beautiful pages and several puzzle games, so that the system interface becomes more friendly, more considerate operation.Key words: Office Auto
11、mation; Online Reservation System; PetShop 目 录第一章 引言 1第二章 系统总体设计 32.1 系统设计原则与规范 .32.1.1 设计原则 .32.1.2 设计规范 42.2 系统开发运行环境介绍 42.3 系统模块设计 .52.3.1 模块划分 .52.3.2 订餐系统功能描述 .52.3.3 在线游戏功能描述 62.3.4 简易电子地图功能描述 62.4 数据库设计 .62.5 系统页面导航设计 82.5.1 订餐系统 82.5.2 在线游戏 122.5.3 简易电子地图 .12第三章 系统详细设计 133.1 系统整体框架 133.2 数据访
12、问层 153.2.1 Model 项目 153.2.2 IDAL 项目 163.2.3 DALFactory 项目 173.2.4 DBUtility 项目 173.2.5 SQLServerDAL 项目 183.3 业务逻辑层 193.4 表示层 .203.4.1 页面操作说明 213.4.2 页面美工设计 273.4.3 常用技术说明 .27第四章 系统运行结果 29第五章 结束语 42致谢语 43参考文献 .44ContentsChapter 1 Introduction .1Chapter 2 System Design32.1 Design Principles and Norms
13、32.1.1 Design Principles.32.1.2 Design Norms42.2 Development Environments 42.3 Modules Description.52.3.1 Modules Division 52.3.2 Online Reservation System .52.3.3 Online Puzzle Game62.3.4 Simple Digital map62.4 DataBase Design .62.5 Page Navigation 82.5.1 Online Reservation System .82.5.2 Online Pu
14、zzle Game122.5.3 Simple Digital map12Chapter 3 Detail Design 133.1 System Framework.133.2 Data Access Layer 153.2.1 Model Program153.2.2 IDAL Program.163.2.3 DALFactory Program173.2.4 DBUtility Program 173.2.5 SQLServerDAL Program183.3 Bussiness Logic Layer193.4 Presentation Layer .203.4.1 Introduct
15、ion to Page Operation .213.4.2 Page Design.273.4.3 Description of Common Technical .27Chapter 4 Results of System29Chapter 5 Summary.42Thanks.43References 44第一章 引言1第一章 引言随着计算机网络的发展,办公自动化(Office Automation,OA)在企业单位的管理、业务运转活动中发挥着越来越重要的作用。但在竞争残酷的信息化时代,办公自动化不仅仅要适应不断变化的办公需求,提供公文流转等偏向个体的自动办公功能,还要不断满足用户日益增
16、长和变化的需求 1-2。办公自动化是采用 Internet/Intranet 技术,基于工作流的概念,使企业内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息采集、信息处理,为企业的管理和决策提供科学的依据 3。顾名思义办公自动化就是打破现实世界空间和时间的距离,用虚拟网络构建一个无沟通障碍,跨越时间、地点的协同工作环境。现在的办公自动化发展趋势是协同办公。协同的英文原意是:working together,就是不同的实体一起工作,共享流程、技术和信息,使企业价值最大化。但是很多企业会发现使用了协同办公自动化后,原有的企业文化不能很好地表现出来
17、,让人难以看清自己企业的文化独特性所在之处。这种现象的后果是可怕的,有可能会导致企业人心的涣散,甚至企业的产品和服务质量的下降,合作伙伴不支持,用户不满 2。这也是为什么说 OA 容易,但是做好 OA 难。现在市面上 OA 的厂家很多,但是价格不等,从几百到上万都有。这说明 OA 的生产没有一个严格的标准化,不像 ERP、CRM 等管理软件有自己的生产流程,因此很多 OA 的开发变成一种尝试行为。因为 OA 不等同于 ERP 等管理软件。ERP 等管理软件总是把充满人情味的问题的处理方式变成各个生硬的模块、制度,人为地为管理工具计算机的管理提供方便,而不是让计算机为用户提供方便 4。而 OA
18、需打破闭锁的信息孤岛,加强人员之间的沟通,强化团队沟通,激发人的潜能,从而定位企业的文化,释放企业的潜力。正所谓用文化团结人,用文化凝聚人,用文化带动人,人是最重要的因素,只要解决了人的文化问题,企业文化问题也迎刃而解。所以在实施 OA 过程中要考虑人的因素,尽最大努力将所有的阻力消除,不断地丰富企业文化,带来新的发展动力。论文中所阐述的娱乐生活模块也是一种尝试。模块名称为娱乐生活,就是让员工认真工作之余也能享受信息化的便捷,真正做到“享受工作,享受生活” 。从增加企业人文关怀为出发点,利用便捷的信息化平台,解决企业员工用餐拥挤烦恼,帮助丰富员工业余生活,营第一章 引言2造更有人情味的企业文化
19、。这样有助于员工融入企业文化,激发自身的潜能,进而激发企业最大的潜能。第二章 系统总体设计3第二章 系统总体设计本模块主要包括网上订餐系统、在线娱乐游戏和简易电子地图。其中网上订餐系统针对企业办公室这一特殊群体,采用订单式订餐方式,便于统一处理。另外还附加发起活动功能,以丰富员工业余生活,促进交流,增进感情。在线娱乐游戏旨在让员工劳逸结合,提高工作效率。简易电子地图可以帮助新进员工熟悉周围环境,尽早融入企业。2.1 系统设计原则与规范2.1.1 设计原则系统设计时遵循以下主要原则 5:(1)可靠性本系统是日常管理应用系统,因此系统应具有较强的鲁棒性,对各种错误、干扰具有一定的包容和排除能力,受
20、到冲击时能快速自行恢复,或在少量的人工干预下能恢复。(2)安全性本系统是基于 B/S 架构,是可以移植到网络平台。另外本系统是针对专门的企业,要注意企业信息的保密性。因此,系统对使用的信息进行严格的权限管理,只允许内部员工才能登陆,而且特别注意数据库的安全性,时刻进行备份,防止意外情况。(3)实用性本系统与企业的业务紧密结合,应满足每一个用户的需求,解决用户的实际问题。(4)可维护性本系统有一个完善的管理机制,便于维护人员改正、改动和改进本系统。(5)可扩展性本系统应具有一定的兼容性,特别是 WEB 应用能适应多种运行环境,并能应对未来变化的环境和需求,易于扩展,系统架构可以根据网络环境和用户
21、的访问量而及时调整。(6)总体规划、分层实施本系统在总体设计指导下分步开发。在适应系统需求的准则下,设计低耦合的分层结构,利于分工协作,提高开发效率,降低项目风险。第二章 系统总体设计42.1.2 设计规范(1)命名规范:变量命名采用“骆驼命名规则” 。页面的命名是每个单词的第一个字母大写。(2)数据库表名:统一命名规则为以“Tbl”开头。(3)界面约定:如表 2-1 所示。表 2-1:界面约定界面背景色 界面控件颜色 界面内容字体#B4C4D1 淡蓝色 宋体,小五(大小)2.2 系统开发运行环境介绍目前开发网站有很多主流技术,根据小组同学共同讨论,我们选择的开发环境为:(1)开发工具:Mic
22、rosoft Visual Studio 2005Visual Studio 系列是微软公司推出的开发环境,是目前最流行的 Windows 平台下应用程序开发环境. Visual Studio 2005 是一个全面集成的开发环境,用于编写、调试代码,把代码编译为程序集发布。同时它也是一个非常专业的多文档界面应用程序,它提供许多便捷的操作,利于程序员开发代码。它主要包括:文本编辑器、代码的设计视图编辑器、支持窗口、集成的调试程序、集成的 MSDN 帮助,并支持在环境中直接编译和访问其他程序,无需退出开发环境 6。另外 Visual Studio 2005 是与.NET Framework 2.0
23、 一起工作。.NET Framework 2.0是支持生成和运行下一代应用程序和 XML Web Services 的内部 Windows 组件。它包含两个主要组件:公共语言运行库(CLR)和.NET Framework 类库。(2)数据库: SQL Server 2005(3)开发语言: C#、JavaScript、CSSJavaScript 是目前很流行的一种广泛应用的脚本语言,将它和 CSS 结合可以写出很多漂亮的动态网页特效,增加页面的美观度。JavaScript 是客户端脚本语言,可独立在用户的浏览器上运行,不需要服务器的支持,并且支持跨平台,容易上手。而且 JavaScript 使
24、第二章 系统总体设计5多种任务仅在客户端就能完成,不需要网络和服务器的参与,很好的支持分布式的运算和处理,大大减轻了网络传输和服务器的负担 7。(4)技术框架:PetShop 技术框架PetShop 是微软推出的基于 ASP.NET 2.0 的一个范例,是典型的利用 ASP.NET2.0 技术构建的企业级应用程序 8-9。PetShop4.0 的逻辑结构是软件体系结构中最常见且最重要的一种结构三层分层结构,从下至上依次为:数据访问层、业务逻辑层、表示层。PetShop4.0 按照三层的分层模型来部署整个系统,降低层与层之间的依赖,使开发人员的分工更加明确,只关注其中某一层,并有利于标准化和各层
25、逻辑的复用,也便于后期修改和维护。其中数据访问层:主要负责访问数据库,进行数据存储和检索,也称为持久层;业务逻辑层:是整个系统的核心,实现本系统的所有业务功能操作;表示层:是系统的 UI部分,负责使用者与整个系统的交互 9-10。(5)开发平台: Windows vista、Windows XP(6)建模工具:Microsoft Office Visio 2003、Star UML(7)运行环境:Internet Explorer 6.0 (7.0)2.3 系统模块设计2.3.1 模块划分娱乐生活模块主要划分为三大子模块:网上订餐系统、在线游戏、电子地图。具体如图2-1 所示:订餐系统 在线游
26、戏 电子地图图 2-1:模块划分2.3.2 订餐系统功能描述(1)食品模块在这一模块中,用户可以根据自己的需求选择自己想预定的套餐放入购物车中,待确认第二章 系统总体设计6购物车的信息后,选择结算,并确认个人信息和用餐时间后提交订单。在管理员未处理前,用户可以取消订单。管理员在固定时段处理系统中已有的订单,统一产生该时段的订单并导出 Excel 表格,统计订餐情况,便于统一订餐。用户还可根据自己亲身体会,对套餐进行星级评价,或发表对该套餐的感受。另外用户根据自己的喜好,将套餐放入自己的收藏夹中,便于预定,不必每次都需搜索自己喜爱的套餐。(2)休闲活动模块用户可以发起活动,例如聚餐、爬山等日常休
27、闲活动,并可设置参与人数。在活动未结束前可以修改本活动相关信息。其他用户可以选择自己感兴趣的活动加入该活动。(3)用户个人管理用户可以在个人管理中,查看自己的账户、订单、发起和参与过的活动、充值记录、个人收藏夹。(4)后台管理模块管理员在后台可以对套餐、订单、用户账户和活动进行管理,包括添加新的套餐,修改已有套餐信息,删除过时套餐;接受订单;添加新的用户账户,为用户账户充值,修改用户账户信息;删除修改活动。2.3.3 在线游戏功能描述提供迷宫游戏、动脑小游戏等益智小游戏。但本模块只在固定时段才开放。2.3.4 简易电子地图功能描述供用户浏览地图,熟悉环境。2.4 数据库设计根据系统的功能需求,
28、并遵循数据库设计规范,本模块总共涉及 9 张表。这些表的主键都设定为在数据库中自动增加。(1)食品模块这个模块涉及 5 张表:用户表(User) 、食品表(Food) 、食品评论表(FoodMsg) 、订单表(Order)和食品类型表(FoodType) 。这 5 张表对应与食品相关的操作,如预定套餐,套第二章 系统总体设计7餐评价,收藏套餐等。表与表之间的关系如图 2-2 所示。其中需说明的几个特殊字段有:Order 表中的 Status 字段表示当前订单的状态,其中“0”表示订单取消, “1”表示订单正在处理, “2”表示订单成功。Order 表中的 Type 字段表示订单是否已经被统计,
29、并包含到导出的 Excel 表格中,其中“1”表示订单还未被统计, “2”表示订单已包含在 Excel 表格中。Food 表中的 Type 表示食品的类型,对应到 FoodType 表的主键 TypeID 字段。Food 表中的 Pic 字段是 Image 类型,用来存储食品对应的图片。F o o dF o o d I DF o o d N a m eP r i c eP i cD e t a i lF o o d A d d rT y p eS t a rA t t a c h N u mF o o d T y p eT y p e I DT y p e N a m eU s e rU s
30、e r N a m eU s e r I DF o o d M s gM s g I DF o o d I DU s e r I DC o m m e n tD a t eO r d e rO r d e r I DO r d e r T i m eS t a t u sU s e r I DO r d e r P r i c eF o o d I DE x p l a i nU s e T i m eA c c e p t T i m eT y p e图 2-2:订餐和对食品的评价模块数据库表之间关系(2)休闲活动模块这个模块涉及 3 个表:用户表(User) 、活动表(Activity)和
31、活动类型表(ActivityType) 。表与表之间的关系如图 2-3 所示。其中 Activity 表中的 Status 代表活动当前的状态,其中“1”表示正在进行中, “0”表示取消或者过期, “2”表示已满和已经结束,具体由发起的用户控制。第二章 系统总体设计8U s e rU s e r I DU s e r N a m e活动表 A c t i v i t yA c t i v i t y I D T i m eL i m i t N u mN o w N u mA d d r e s sT y p eA p p e a l U s e rP a r t I n U s e rD e
32、 t a i lC r e a t T i m eS t a t u s活动类型 A c t i v i t y T y p eT y p e I DT y p e N a m e图 2-3:休闲活动模块数据库表之间关系(3)用户账户管理这个模块涉及 3 个表:用户账户表(UserAccount) 、用户表(User)和用户存款记录表(UserStoreRecord) 。表与表之间的关系如图 2-4 所示。U s e rU s e r I DU s e r N a m eU s e r S t o r e R e c o r dS t o r e I DS t o r e T i m eS t
33、 o r e P r i c eU s e r I DU s e r A c c o u n tA c c o u n t I DS t o r e S u mR e m a i n sE x p l a i nU s e r I DC o n s u m e S u m图 2-4:用户账户管理模块数据库表之间关系另外后台管理模块和用户个人管理模块涉及的表都包含在上面的表中。2.5 系统页面导航设计2.5.1 订餐系统(1)食品模块这个模块对应的页面如表 2-2 所示。第二章 系统总体设计9表 2-2:食品模块涉及页面表名 描述FoodSearch.aspx 食品列表和搜索页面Shopping
34、Cart.aspx 购物车页面CheckOut.aspx 提交订单页面CheckOutSuccess.aspx 提交订单成功页面OrderDetail.aspx 查看订单详细信息页面页面跳转设计如图 2-5 所示。H o m e P a g e . a s p xH o m e D i n n e r . a s p xC h e c k O u t S u c c e s s . a s p xS h o p p i n g C a r t . a s p xF o o d D e t a i l . a s p xC h e c k O u t . a s p xF o o d S e a
35、 r c h . a s p xO r d e r D e t a i l . a s p x登陆搜索食品预定结算提交订单查看食品详细预定预定查看订单详细图 2-5:食品模块页面跳转设计(2)休闲活动模块这个模块对应的页面如表 2-3 所示;页面跳转设计如图 2-6 所示。第二章 系统总体设计10表 2-3:休闲活动模块涉及页面表名 描述AppealActivity.aspx 发起活动页面ActivityList.aspx 活动列表页面ActivityDetail.aspx 活动详细信息页面H o m e P a g e . a s p xH o m e D i n n e r . a s p
36、 xA c t i v i t y D e t a i l . a s p xA c t i v i t y L i s t . a s p xA p p e a l A c t i v i t y . a s p x登陆发起活动查看 活动查看已有活动列表查看活动修改活动信息图 2-6:休闲活动页面跳转设计(3)用户个人管理模块这个模块对应的页面如表 2-4 所示。表 2-4:用户个人管理模块涉及页面表名 描述AboutMe.aspx 个人管理首页MyOrder.aspx 个人订单查看和管理页面MyConsume.aspx 个人消费信息页面MyAccount.aspx 管理我的账户页面MySt
37、oreRecord.aspx 查看个人存款记录信息页面第二章 系统总体设计11页面跳转设计如图 2-7 所示。H o m e P a g e . a s p xH o m e D i n n e r . a s p xA b o u t M e . a s p x登陆查看我的订单关于我查看账户信息 查看存款记录查看消费金额M y S t o r e R e e c o r d . a s p xM y O r d e r . a s p xM y C o n s u m e . a s p xM y A c c o u n t . a s p x图 2-7:用户个人管理模块页面跳转设计(4)后
38、台管理这个模块对应的页面如表 2-5 所示。表 2-5:用户个人管理模块涉及页面表名 描述ManageActivity.aspx 管理活动页面ManageOrder.aspx 管理订单页面ManageAccount.aspx 管理账户页面ManageFoodType.aspx 管理套餐类型页面ManageFood.aspx 管理套餐页面ManageActivityType.aspx 管理活动类型页面AddFood.aspx 添加食品页面页面跳转设计如图 2-8 所示。第二章 系统总体设计12A d m i n H o m e . a s p x管理员登陆管理订单管理账户信息管理食品M a n
39、a g e O r d e r . a s p xM a n a g e F o o d . a s p xM a n a g e A c c o u n t . a s p xM a n a g e A c t i v i t y T y p e .a s p xM a n a g e F o o d T y p e .a s p x管理食品类型管理活动类型A d d F o o d . a s p x添加食品图 2-8:后台管理模块页面跳转设计2.5.2 在线游戏这个模块对应的页面如表 2-6 所示。表 2-6:在线娱乐游戏模块涉及页面表名 描述HomeGame.aspx 游戏首页Game
40、Migong.aspx 迷宫游戏GameIntellect.aspx 动脑小游戏2.5.3 简易电子地图这个模块对应的页面有:DiligitMap.aspx。第三章 系统详细设计13第三章 系统详细设计本系统的目标是构建一个基于 B/S 模式的网上平台。系统开发时参考 PetShop 技术框架,按照三层结构从底向上开发。3.1 系统整体框架本系统开发时采用 PetShop 技术框架。根据本模块的需求,系统包括 7 层,分别是:Model 层、IDAL 层、SQLServerDAL 层、DBUtility 层、DALFactory 层、BLL 层和 WEB 层,整体框架如图 3-1 所示。A S
41、 P . N E T 2 . 0A S P . N E T F o r m s , 用户控件 , 模板页 , 向导P r o f i l e P r o v i d e r M e m b e r s h i p P r o v i d e r购物车等 安全 、 用户帐户 、 登陆等表示层业务逻辑层C # 业务组件F o o d 、 A c t i v i t y 、 F o o d M s g 、 O r d e r 、 U s e r A c c o u n t 、 A c t i v i t y T y p e 、 F o o d T y p e 、 U s e r S t o r e
42、R e c o r d业务逻辑层数据访问层接口工厂类S Q L D A L数据访问层M o d e lO b j e c tS Q L S e r v e r 2 0 0 5图 3-1:系统整体架构其中 PetShop 的数据访问层使用工厂模式,利用 DAL Interface 抽象出数据访问逻辑,并以 DAL Factory 作为数据访问层的对象的工厂模块,专门管理 DAL 对象,并向上层 BLL提供数据访问层的对象 9-11。SQLServerDAL 用来实现 DAL 接口的方法,负责业务实体和后台数据库进行绑定,实现前台操作和后台数据库的同步更新。其详细的模块结构图如图 3-2 所第三章
43、 系统详细设计14示。D A L F a c t o r y I D A LM o d e lS Q L S e r v e r D A L创建 D A L 对象的工厂数据访问层的接口程序集访问 S Q L S e r v e r 数据库 ,实现 I D A L 中的接口数据访问层需要使用的数据对象 ,即持久层的持久对象 ,只有属性 , 没有行为图 3-2:数据访问层的模块结构图显然,数据访问层采用了“面向接口编程”思想。IDAL 模块脱离与具体数据库的依赖,使二者相对独立便于修改和维护。抽象出来的 IDAL 不仅向下脱离数据库的依赖,而且向上与业务逻辑层也保持弱依赖性。业务逻辑层是整个系统的
44、核心模块,包含整个系统的核心业务,它与数据访问层之间的模块结构图如图 3-3 所示。BLL 层要通过数据访问层才能访问数据库,而且从图中可以看出包含访问数据库 SQL 语句和 DAL 具体实现方法的 SQLServerDAL 与业务逻辑层完全没有关系。如果修改数据访问层的具体实现,只要不涉及到 IDAL 的接口定义,BLL 完全不会受到影响,这样更进一步易于系统的开发、修改和维护 11-12-13。B L LD A L F a c t o r y I D A L M o d e l业务逻辑层 , 核心的业务代码第三章 系统详细设计15图 3-3:业务逻辑层模块结构图因为 PetShop 将核心
45、的业务逻辑都放到 BLL 中,并没有将具体的实现和抽象严格的按照模块分开,所以表示层和 BLL 之间的耦合度相对较高,即表示层中需包含部分业务逻辑来实现一些较复杂的操作 13-14-15。表示层与业务逻辑层之间的关系如图 3-4 所示。表 示 层B L L图 3-4:表示层的模块结构图下面具体说明每一层的具体实现过程。3.2 数据访问层数据访问层主要包含 Model 层、IDAL 层、DALFactory 层和 DBUtility 层。下面具体描述每一层的功能和实现过程。3.2.1 Model 项目Model 项目中的每个类映射数据库中的每张表,并且只有属性,没有方法。每个类中的属性对应相应的
46、表中的字段,属性的类型和字段的类型一致。因为上层的程序执行最终都是操作数据库,但是数据库是关系型的,不是面向对象的,所以需要把平面的“表”结合业务规则抽象成类,就会让 BLL 和表示层以为自己在操作类而不是数据库,从而使它们感觉不到数据库的存在 11。这样在后期表结构有变化的话,BLL 的代码不用改变,不会“牵一发而动全身” 。另外从系统的安全性方面考虑,图片采用二进制流的形式存入数据库.因此 SQL Server2005 中用来保存图片的字段pic 的数据类型设置为 Image,而在 Model 中对应的属性的数据类型为 byte。第三章 系统详细设计163.2.2 IDAL 项目这个项目包
47、含 9 个接口类。每个接口中包含多个成员方法的定义,如增加一条数据,更新一条数据,删除一条数据,判断是否存在该记录,得到一个对象实体,获得数据列表。下面以 Activity.cs 为例子来具体说明。(1)增加和更新数据方法的参数都是业务实体。如:void Add(Model.Activity model);(2)通用的获得数据列表方法通用的获得数据列表有两种,一种返回 Dataset 类型,另外一种返回 IList 。之所以选用 IList是因为 IList是个接口,只定义了一些操作方法,具体的实现方法由我们自己决定。相较于 List,使用 IList可以实现功能和具体实现的分离, 并支持松耦
48、合,有利于系统的维护和重构,优化系统的流程。具体定义如下:DataSet GetList (string QueryWhere, string QueryOrder);IList GetList (string strWhere, string strOrderby);其中 QueryWhere 是指根据什么条件查询,即对应 sql 语句中的 where 语句,QueryOrder 是指对查询的结果进行排序的依据,即对应 sql 语句中的 order by 语句。(3)获得特殊的数据列表获得特殊的数据列表的方法也有两种返回类型。跟通用的获得数据列表方法差不多,除了多了一个参数 QueryWha
49、t,即要查询的字段,而通用的获得数据类表方法中默认查询整条记录。具体定义如下:DataSet GetSpecialList ( string QueryWhat,string QueryWhere, string QueryOrder);IList GetSpecialList (string QueryWhat,string strWhere, string strOrderby)。(4)删除和判断是否存在删除和判断是否存在都是根据 ID 进行的,返回的类型均为 bool 型。(5)获得一个对象实体根据的是 ID 进行查询,返回一个对象实体。具体定义如下:Model.Activity GetModel(int Id)。第三章 系统详细设计17(6)特殊方法除了上面的公共方法,每个接口都定义了自己的特殊方法。如 Activity 就有加入活动这个操作,具体定义为:void PartIn (int ID, string partInUser)。3.2.3 DALFactory 项目数据层的抽象工厂,这是个公用的项目。其下只有一个类 DataAccess.cs。这里采用的是设计模式中最常用的工厂模式。所谓工厂模式,即用户只需告诉工厂需要生产的东西,然后取出来使用即可,而不必关心工厂是怎么生产这个