Web应用框架ABP技术分享

发布时间 2023-12-28 10:11:34作者: JianMing

ABP技术分享

 

一、什么是ABP

ASP.NET BoilerplateABP)是一个开源且有着完善文档的应用程序框架。它不仅仅是一个框架,还基于领域驱动设计提供了强大的架构模型,并考虑到了所有的最佳实践。

二、ABP 的关键特性和原则

2.1领域驱动设计(DDD)

ABP鼓励使用DDD原则,帮助开发人员专注于对应用程序内核业务逻辑和关系进行建模。

2.2模块化

ABP促进了一种模块化架构,允许开发人员将应用程序拆分为更小、更易管理的模块,可以独立开发和维护。

2.3多租户支持

ABP内置了对多租户的支持,使其适用于为多个客户或组织提供服务的应用程序。

2.4横切关注点

它提供了处理诸如授权、验证、缓存和错误处理等横切关注点的机制,以结构化和一致的方式处理。

2.5应用程序服务

ABP鼓励使用应用程序服务,它们在应用程序逻辑与用户界面之间提供了一个抽象层。

2.6依赖注入

该框架内置了依赖注入系统,使得管理对象的生命周期和处理依赖关系变得容易。

2.7内置用户管理

ABP提供了预先构建的用户和角色管理功能,可以轻松扩展或定制以适应特定的应用程序要求。

2.8支持多个UI框架

ABP支持不同的UI框架,包括ASP.NET MVCAngularBlazor,使得在选择前端技术方面具有灵活性。

2.9本地化与国际化

它包括对多语言应用程序的支持,可以轻松地本地化和国际化用户界面。

2.10强大的社区和文档

ABP拥有一个活跃且支持性强的社区,以及广泛的文档和教程,使得开发人员更容易上手,并在需要时获得帮助。

 

总的来说,ASP.NET Boilerplate为构建企业级应用程序提供了坚实的基础,使开发人员能够专注于业务逻辑,同时遵循软件开发的最佳实践。它是在.NET生态系统中开发复杂且可扩展的Web应用程序的开发人员的常用选择。

三、ABP架构及实现

3.1领域驱动设计

DDD适用于复杂领域或较大规模的系统,而不是简单的CRUD程序.它着重于核心领域逻辑,而不是基础架构.这样有助于构建一个灵活,模块化,可维护的代码库

 

DDD高度依赖面向对象编程思想(OOP)设计原则。

3.2 DDD分层和整洁架构

基于DDD的架构分为四个基础层

 

业务逻辑分为两层,分别为 领域(Domain) 层和 应用(Application) ,它们包含不同类型的业务逻辑.

领域层:只实现领域业务逻辑,与用例无关.

应用层:基于领域层来实现满足用例的业务逻辑.用例可以看作是用户界面(UI)或外部应用程序的交互.

展现层:包含应用程序的UI元素.

基础设施层:通过对第三方库的集成或抽象,来满足其它层的非核心业务逻辑的实现.

同样的分层架构也可以如下图所示:被称为 整洁架构, 又或者称为 洋葱架构:

 

 

3.3 ABP解决方案分层

 

3.4项目依赖关系图

 

 

3.5 DDD模式的应用程序执行顺序

 

 

3.6应用开发

3.6.1.准备开发环境:

Visual Studio 2022, Node v16/18, npm v6+, Redis, DB, ABP CLI

3.6.2创建解决方案

Download template 或者ABP CLI命令

3.6.3运行解决方案

DB Migration, ConnectionStrings, Run Swagger UI/MVC

四、病人管理Demo

4.1 Domain层

1.创建OIS_Patient实体及共享实体(SexType 枚举)

2.OIS_Patient实体添加到DbContext

3.OIS_Patient实体映射到数据库表
4.添加数据迁移

5.添加初始数据

6.更新数据库

4.2 Application层

1.创建DTO( PatientDto,CreateUpdatePatientDto)

2.定义映射

3.创建应用服务接口

4.实现服务接口

5.自动生成APISwagger UI

4.3 Rest API(自动创建)

4.4 Razor Page UI

......