ABP vnext模块化架构的最佳实践的实现 (3)

ABP vnext模块化架构的最佳实践的实现


服务启动成功,在浏览器打开链接:5000/swagger/index.html
,开始调试账号注册和验证接口。结果如下:

ABP vnext模块化架构的最佳实践的实现


ABP vnext模块化架构的最佳实践的实现


ABP vnext模块化架构的最佳实践的实现


ABP vnext模块化架构的最佳实践的实现

四、模块化架构的最佳实践的好处

使用模块化架构的好处有几点:

可以方便的更换模块
比如我现在用的数据库是PostgreSQL,如果想要更换成MySQL,只要以EntityFrameworkCore层为基础,新增一个MySQL连接库,就可以在不改变业务逻辑的前提下快速的切换数据库。

dotnet new classlib -o src/Lemon.Account.EntityFrameworkCore.MySQL dotnet new classlib -o src/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations dotnet sln Lemon.Account.sln add src/Lemon.Account.EntityFrameworkCore.MySQL dotnet sln Lemon.Account.sln add src/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations dotnet add src/Lemon.Account.EntityFrameworkCore.MySQL/Lemon.Account.EntityFrameworkCore.MySQL.csproj reference src/Lemon.Account.Domain/Lemon.Account.Domain.csproj dotnet add src/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations.csproj reference src/Lemon.Account.EntityFrameworkCore.MySQL/Lemon.Account.EntityFrameworkCore.MySQL.csproj dotnet add src/Lemon.Account.EntityFrameworkCore.MySQL/Lemon.Account.EntityFrameworkCore.MySQL.csproj package Volo.Abp.EntityFrameworkCore.MySQL dotnet add src/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations/Lemon.Account.EntityFrameworkCore.MySQL.DbMigrations.csproj package Microsoft.EntityFrameworkCore.Design

最后再修改ConnectionStrings default为mysql的连接,修改LemonAccountHostModule的依赖项LemonAccountEntityFrameworkCoreDbMigrationsModule为MySQL

单体应用和微服务无缝切换
模块开发完成后,一般当作微服务来部署;或者把模块发布到nuget,在单体应用的各个分层中引入模块,多个模块在单体应用中的应用就构成可一个完整系统服务。

模块复用
由于模块是发布到nuget的,所以如果有新的项目需要用到相同功能的,可以直接从nuget引入安装,无需重复开发或者复制代码。

自动API控制器

动态 C# API 客户端

GiHub地址:https://github.com/huangbenq/abp-samples

参考文档:

模块化:https://docs.abp.io/zh-Hans/abp/latest/Module-Development-Basics

最佳实践:https://docs.abp.io/zh-Hans/abp/latest/Best-Practices/Index

自动API控制器:https://docs.abp.io/zh-Hans/abp/latest/API/Auto-API-Controllers

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssdjs.html