摘要:.NET软件环境融合3层架构和复用技术, 成为开发分布式软件应用系统的主流。文章通过对.NET软件3层框架思想的探析, 以某员工信息管理系统设计为例, 来介绍和实现各模块功能的方法。
关键词:.NET,分布式软件,体系结构,设计应用
从现代软件复用技术、构件化编程思想的广泛应用, 对于现代管理信息系统的设计, 更多的是通过软件框架与业务流程, 融入分布式软件体系结构来满足对复杂、庞大数据的快速、高效处理。在软件系统设计中, 各个对象之间的相互协作来实现对业务流程的交互应用, 为了提升软件设计的复用力度, 从提升软件的可靠性上, 有研究者提出在领域框架下, 将每一行代码转移至大力度体系结构中, 形成与应用框架相对立的构件, 来提升编程的便捷性、灵活性水平, 也增强了应用软件的代码复用使用性。所以, 本文结合.NET软件基础框架, 介绍一种基于分布式应用程序设计模型的企业员工信息管理系统, 来验证这种设计模式的科学性。
1. NET框架及三层架构设计思想
.NET是微软推出的软件设计产品, 其能够满足微软平台的组件技术、数据库技术。整个体系结构以互联网为基础, 融入分布式设计思想。通常而言, 对于.NET体系架构主要包括公共语言运行库、统一类库等内容。同时, .NET框架完全支持可扩展的标记语言 (Extensible Markup Language, X M L) , 能够满足Web服务应用。当然, 对于任何一个软件开发设计项目, 从提升软件质量上都需要相应的支持平台。.NET支持面向对象技术, 更适宜开发结构灵活、功能强大的信息管理系统。比如在企业管理架构中, 企业组织之间往往以分层思想来实现管理应用, 而企业分层又将企业员工组织起来, 围绕企业目标来协同合作。同样, 在.NET软件平台设计中, 也需要利用分层结构来组织软件框架的部署。不过, 不同的分层结构, 与其所对应的设计任务具有对应性, 以求有效合理地组织相关构件, 来实现高效协同管理。我们从.NET 3层架构设计基础上来看, 自下而上分为数据访问层 (Data Access Layer, DAL) 、业务逻辑层 (Business Logic Layer, BLL) 和表示层。在进行软件系统开发时, 也会根据设计需要来设置相应的通用辅助类及方法。如事务管理类、数据库访问类等, 以实现软件系统各模块数据访问时的相互复用需要。另外, 在关于企业的信息管理系统软件中, 其操作对象主要为数据库中的表、视图等内容, 这些内容在设计时可以根据需要将其抽象为共用实体类模块。
2. NET 3层框架的设计与实现
从.NET分布式应用软件设计框架模型来看, 其3层结构的协作来实现对用户请求的反馈。数据访问层直接访问底层数据库, 并对相关数据进行存储;业务逻辑层是整个分布式软件设计的核心, 以满足不同数据业务间的调度与管理。如可以实现对不同业务组件的打包, 并按照业务类型进行连接数据库与网络, 业务逻辑层与数据库之间通过API来实现通信。
2.1 数据访问层的设计
.NET 3层架构的数据访问层, 主要是面向数据库来完成业务逻辑层提交的各项操作任务。如对数据库进行插入数据、删减数据、更新数据等操作。通常, 在管理信息系统软件设计中, 用户通过操作界面来完成对不同业务流程的操作, 而这些业务流程本身, 都需要转换到数据访问层, 以实现对数据库相关数据表单的修改和操作。所以, 我们通过对软件框架数据访问对象进行抽象处理, 来实现数据库的查询、插入、修改、删除等操作。同样, 在对不同数据表或视图进行操作时, 其需要通过软件设计指令来完成。如在结构化查询语言 (Structured Query Language, SQL) 关系数据库系统中, 为了减少程序代码编写的繁复性, 以微软的静态类Sq Helper来进行设计。我们可以将数据访问功能封装在Sq Helper静态类中, 利用程序指令来调用Sq Helper静态方法来完成数据库的交互操作。如Execute Non Query方法主要用于执行不返回任何行或值的指令;对于Execute Reader方法用于返回Sql Data Reader对象, 其对象包含某一指令返回的结果集;Execute Dataset方法主要用于返回Data Set对象;Execute Scalar方法主要返回一个值, 其值为指令返回的第一行的第一列。同时, 所有Sq Hepler静态类指令, 在执行时都可以添加相应的参数, 且需要通过Sql Command指令来完成。针对数据访问层的查询运算, 可以根据实体类常见查询字符串str SQL, 然后调用Execute Reader方法来进行数据查询, 将查询结果返回。同样, 插入运算也是调用Execute Scalar方法, 来进行插入运算参数配置, 并对插入的ID号返回。
2.2 业务逻辑层的设计
在.NET 3层框架中, 业务逻辑层主要负责不同的数据业务流程, 其内容主要与管理信息系统相关联, 并从软件的上下层交互逻辑处理中完成具体业务目标。由于该层数据交互与具体业务逻辑有关, 所以, 在进行软件设计时, 可以利用通用业务接口来访问数据访问层。当然, 对于特殊的业务流程访问时, 也可以直接对BLL层中相关类进行继承, 然后重载相关操作。业务层软件设计时, 可以根据操作表、视图等内容, 来生成不同的表的业务层通用操作代码。如Public class Purchase Application BLL{Pubic static<参数>业务功能 () ......Public static<参数>业务功能 (n) }。
2.3 表示层的设计
表示层主要包括界面层和实体类。对于界面层, 主要是完成人机交互, 向用户提供业务操作的相关界面和结果的展示。根据用户所操作的不同控件, 其在界面层的显示往往通过GET或SET方法来实现。因此, 利用界面层设计, 可以对相关的数据库操作对象进行选择, 也可以对各数据字段进行属性设置。如利用操作界面来完成增加、删除、修改、审核等功能。当然, 在界面层设计上, 可以根据业务操作菜单的变化, 对应具体的业务流程, 来实现与业务层进行有效对接。对于实体类, 主要是数据库中抽象后的对象类。这些实体类, 也是软件设计时操作的对象实例。所以, 在设计上, 要根据数据库的表、视图等所映射的对象类, 利用GET或SET方法来完成对象属性的设置, 就可以将数据库与具体的信息管理业务建立连接。
3 应用实例开发
通过对.NET 3层框架软件各层功能及设计要求的分析, 我们可以结合某具体管理信息系统软件设计项目, 来通过配置数据库, 以实现对某企业人力资源系统的动态管理。
3.1 分布式人力资源管理软件设计的可行性
从现代企业发展来看, 人力资源管理占据重要地位, 而随着企业战略的推进, 处于不同地域下的人力效率管理一直是难点。我们借助于.NET分布式软件设计特点, 将之与企业人力资源管理相融合, 来实现对多地域企业员工的网络化管理。在分布式软件设计模型中, 数据库统一用来存储、维护员工信息, 管理人员可以通过网络来访问远程数据库, 还可以结合不同业务来管理和更新数据库, 实现各地域人力的协作管理。当然, 借助于分布式人力资源管理项目, 还可以对员工进行动态管理, 员工也可以登录系统, 对自己的业务进行操作和存储。
3.2 分布式人力系统管理软件设计框架结构
结合某企业人力资源管理需要, 从提升人力管理动态化、跨区域管理水平上, 引入分布式软件设计体系。基于Visual Studio.NET来开发, 选用SQL Server数据库, 采用B/S 3层主体结构, 各功能子模块共用统一的数据库, 以满足不同地域条件下各人力资源管理的协同, 提升软件管理效率。其基本结构为:表示层包括人力资源系统用户交互界面;逻辑应用层包括通用数据查询模块、通信报表模块, 以及员工数据档案管理模块;数据访问层包括用户界面与数据实体类, 利用XML来实现对数据库的直接访问。
3.3 各主要模块及实现方法
在软件项目设计应用中, 首先是系统登录模块的设计。登录模块参照一般流程, 由用户输入账户信息、密码等, 来调用用户信息表格进行查询, 当输入正确时, 进入人力系统操作主界面;当输入用户不存在时, 返回错误信息, 并转向重新输入。在员工信息录入与修改模块, 该模块主要完成员工基本信息的录入管理。由于考虑到对传统员工档案信息格式及内容的兼容性, 我们可以利用软件设计来优化传统档案数据向分布式软件数据库的导入方式。当然, 为了确保档案信息的正确性、准确性, 我们在数据库转换设计上, 还要增加信息纠错与数据保障功能。在本模块, 主要记录了员工的基本信息, 如姓名、性别、年龄、参加工作时间、职务信息等。管理人员也可以根据查询模块来对相关组合条件进行综合查询, 以便于对员工的有效管理。对于分布式软件设计, 在满足查询条件时, 需要考虑多种查询方式的兼容性。如满足任意条件查询、拟定条件查询等。在任意查询时, 可以根据检索字段信息, 展开任意组合条件的查询。如根据年龄、性别进行查询, 根据工作年限、职称情况进行查询;在拟定查询方案时, 可以将某次查询方式进行设置, 并保存到菜单内, 便于后续直接查询, 提升企业人力管理有效性。对于分布式软件设计中的报表生成模块, 应该是实现人力资源管理软件设计的重要内容。报表是记录管理业务的重要方式, 其输出形式可以与Microsoft Excell表格进行对接, 将之生成电子表格方式来便于打印、输出;也可以将报表导出成报表模板, 以满足其他输出需要。
参考文献
[1]周德贤.现代分布式软件工程架构分析与探讨[J].信息技术与信息化, 2014 (11) :108-109.
[2]朱焕亮, 张佩民.企业数据架构规划和治理浅析[J].中国信息化, 2016 (7) :76-81.