ABP框架模板开发手册

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ABP框架模板开发手册

杭州蒙特信息技术有限公司

2018年1月

目录

1ABP框架介绍 (3)

1.1ABP简介 (3)

1.2ABP多层结构 (3)

1.3ABP环境 (5)

1.4开发环境 (5)

2搭建网站 (5)

2.1获取源码 (5)

2.2搭建数据库 (6)

2.3搭建站点 (8)

3模块开发 (9)

3.1领域层 (9)

3.2应用层 (18)

4后台页面 (22)

5前台页面 (27)

6后台配置....................................................................................................错误!未定义书签。

1ABP框架介绍

1.1ABP简介

我们总是对不同的需求开发不同的应用。但至少在某些层面上,一次又一次地重复实现通用的和类似的功能。如:授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审核日志等功能。所以我们创建架构和最佳实践,如分层和模块架构,DDD,依赖注入等,并尝试开发应用时基于一些约定。

由于所有这些是非常耗时而且很难单独创建并可适用于每个项目,许多公司创建自己的框架,他们用自己的框架能快速开发新应用而且不出错。但不是所有的公司都是幸运的,大部分公司没有时间,预算和团队来开发好的框架。他们甚至都没有可能创建一个框架,因为编写文档,培训开发人员和维护框架都是非常困难的。

Boilerplate (ABP) 是一个开源并且有丰富文档的应用框架,开发宗旨是:“为所有公司,所有开发人员,开发出一个通用框架!”,而且不只是一个框架,同时提供一个强大的基于DDD的构架模型和最佳实践。

1.2ABP多层结构

一个应用的代码库的分层是一个广为接受的技术,用来减少复杂度和提高代码复用性。ABP依照DDD理念来分层,在DDD里有4个基本的层:

•表示层:为用户提供一个界面。使用应用层来完成用户交互。

•应用层:表示层与领域层的媒介。协调服务业对象执行指定的应用任务。

•领域层:包含业务对象和业务规则。是整个应用的核心。

•基础层:提供支持更高层的通用技术。一个基础层的典型例子是通过ORM框架实现与数据库的交互的仓储,或是实现发送邮件的邮件供应器。

也可以根据需要添加层,例如:

•分布服务层:为远程客户端公开应用特性。像 web API和WCF等。

这些都是以领域为核心的架构的通用层。实现上可能有些细微的差别。

层和结构的预览如下

ABP分层结构图如下

1.3ABP环境

前台环境

MVC + Bootstrap

后台环境

Angular框架 + AdminLTE + Bootstrap

基础环境

.NET Framework 4.6.1 + EF

1.4开发环境

TypeScript:微软开发的自由和开源的编程语言,这是Javascript的超集;

Web Compiler: A Visual Studio extension that compiles LESS, Sass, JSX, ES6 and CoffeeScript files;

如何ABP的.NET框架是Core 2.0时则需要使用Visual Studio 2017

2搭建网站

2.1获取源码

第一步:通过SVN获取源码,源码下载之后Visual Studio打开源文件,

第二步:用Visual Studio还原NuGet包如下图

第三步:重新生成解决方案(检测项目正确性和完整性);

2.2搭建数据库

2.2.1配置信息

第一步:创建空数据库

database:database(数据库);

uid:uid(用户名);

pwd:ILwFjPFH8J(密码);

第二步:修改配置文件g,配置网站数据库信息,更改ConnectionStrings的数据库连接字符串信息;database:数据库名 ,uid:用户名,pwd:密码;配置方法如下图

2.2.2创建数据库

第一步:打开程序包管理器控制台

第二步:选择"EntityFramework"项目

第三步:将Web项目设置为启动项

第四步:执行命令创建数据库及表:Update-Database–Verbose

第五步:执行完打开数据库管理器查看,如下图所示说明成功了

到这里数据库的搭建工作完成。

2.3搭建站点

第一步:重新生成解决方案

第二步:将Mt.文件夹内的所有文件拷贝至网站的根目录下

第三步:访问网站;后台网址:域名/B;默认账号:admin,密码:123qwe;开发者账号:mountor,密码:123qwe

后台页面

3模块开发

3.1领域层

领域层必须实现所有业务规则。

实体:展示数据和领域业务的操作。通常地它们映射到数据库表。

仓储:类似于对象集合,用来获取和持久化实体到数据源(数据库)。领域层定义了仓储,但不实现它们,由基础层来实现它们。

领域事件:定义领域里特定的事件,并触发和处理它们。领域服务利用实体(及其它领域对象)实现那些不属于某个单独实体的业务规则。

工作单元:是一个管理数据库连接和事务的设计模式,跟踪实体变化并保存变化到数据存储。领域层定义了它,但由基础层实现它。

这一层应该尽可能地独立于第三方类库。

3.1.1实体类

实体是DDD一个核心的概念。Eric Evans是这么描述的:“一个对象根本上不是按它的特性定义的,而是按一个线程的连续性和身份来定义”。所以实体有一个id属性存入数据库中。一个实体通常映射成关系型数据库的一个表。

继承

FullAuditedEntity:主键类型为Guid类型的全审计实体(软删除,记录删除时间和删除人员等信息)(必要)

IPassivabile:信息状态接口(必要)

IMustHaveTenant:必要性租户字段接口(必要)

相关文档
最新文档