欢迎来到天天文库
浏览记录
ID:61956578
大小:384.45 KB
页数:22页
时间:2021-04-01
《.Net某权限管理系统结构说明.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、优选在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅对于开发人员是一件受苦受难的事情,软件本身的质量更是受到严重威胁。一个标准的四层架构包含如下四个部分:1.展示层,负责系统与客户的交互2.业务逻辑层,负责处理系统的业务3.数据访问层,负责处理数据,与不同的数据库打交道22/22优选1.服务层,负责与其他系统进行数据交互和业务集成我们在此四层架构的基础上进行一些扩展,就是将业务逻辑的方法抽象出业务接口层(IBLL)。调用关系请结合下面的组件图一起来看,如下:展示层(App)调用业务接口层(IBLL),业
2、务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(mon)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。另外,增加了一个服务层(WcfHost),将接口层(IBLL)暴露给其他系统,使其方便与其他系统进行数据交互和业务集成。注意:此处没有让展示层(App)调用服务层(WcfHost),是为了性能的考虑。1.App——页面展示是BS架构的项目,选择最新的MVC框架,使用Jquery脚本库。2.BLL——业务逻辑22/22优选业务逻辑的操作,包括业务处理,事务等。1.DAL——数据访问数据库访问的操作,数据实体,业务实体,
3、数据校验,使用EntityFramework。2.IBLL——业务接口业务逻辑层的方法对外暴露的接口和服务契约。3.mon——公共组件整个应用程序使用的公共辅助方法。4.ModelingProject——模型设计在此设计项目的图例,如:架构图。5.WcfHost——服务宿主为对外的服务提供宿主,使用微软WCF技术。6.WFActivitys——工作流活动层定义了工作流的活动,使用微软WF技术。7.WFDesigner——工作流设计器实施人员自由配置工作流的设计器,使用微软WPF技术。以上是在架构图的框架下设计的9个组件,我们结合架构图一起分析:1.展示层,包含App和WFDes
4、igner项目22/22优选1.业务逻辑层,包含BLL,IBLL和WFActivitys项目2.数据访问层,包含DAL项目3.服务层,包含WcfHost项目4.公共组件层,包含mon项目“数据实体”在DAL层中,是EntityFramework自动生成的实体;“业务实体”是基于“数据实体”进行扩展的实体,或者自定义的实体。因为是基于EntityFramework自动生成的数据实体,所以也放在DAL层中。另外,数据实体和业务实体集成了数据验证的作用。注意:因为“业务实体”也放在DAL访问层中,所以展示层(App)也需要引用数据访问层,但此处约定不许在展示层做数据库操作。数据访问层
5、仅仅负责管理数据库与业务逻辑层之间的通讯,不负责业务逻辑。技术上我们采用EntityFramework,它是微软开发的基于ADO.NET的ORM(Object/RelationalMapping)框架。EntityFramework的主要特点:1.支持多种数据库(MicrosoftSQLServer,Oracle,andMySQL);2.能很好地支持表,视图和存储过程;3.提供VisualStudio集成工具,进行可视化操作;22/22优选创建ADO.NET实体数据模型项目在项目上点击右键,添加->新建项选择“ADO.NET实体数据模型”22/22优选从数据库生成,新建连接,选
6、择数据源22/22优选填写连接需要的数据库信息后,点击下一步注意:只选择“在模型中加入外键列”22/22优选可以看到新生成了两个文件“App.Config”和“Model1.edmx”:“App.Config”里面是数据库连接字符串“Model1.edmx”里面是数据实体类和访问数据库的上下文22/22优选注意:Model1.edmx文件是EntityFramework自动生成的,不做修改,因为每次更新会覆盖。分析总结我们将系统需要的基础类放在“Framework”文件夹中,所有的实体数据都需要继承IBaseEntity接口,所有的数据库表操作都需要继承BaseReposito
7、ry抽象类,所有视图操作都需要继承BaseViewRepository抽象类下面我们以SysException单表的增删改为例,进行介绍:这里使用了分部类(partialclass)对实体数据SysException进行扩展,加入自定义的属性,使用SysExceptionMetadata类对SysException进行数据验证,以保障数据的完整性和正确性。数据访问层中的SysExceptionRepository执行数据库中的增删改查操作。以上我们完成了数据访问层的设计,此架构的代码实现,请
此文档下载收益归作者所有