ABP - 初识 ABP
ABP框架
ABP是用于创建现代化Web应用程序的完整体系结构和强大的基础架构,以模块化的方式进行开发,所有模块以nuget包的方式提供,开箱即用,遵循最佳实践和约定,提供SOLID开发经验。
缩写 | 英文 | 中文 |
---|---|---|
SRP | The Single Responsibility Principle | 单一职责元素 |
OCP | The Open Closed Principle | 开放封闭原则 |
LSP | The Liskov Substituution Principle | 里氏替换原则 |
ISP | The Interface Segregation Principle | 接口替换原则 |
DIP | The Dependency Inversion Principle | 依赖倒置原则 |
目前版本
ASP.NET Boilerplate
ASP.NET Boilerplate(ABP)是一个开放源代码且有据可查的应用框架。它不仅是一个框架,而且提供了一个基于领域驱动设计的强大的体系结构模型,同时考虑了所有最佳实践。
此版本基于.net framework平台开放,支持Asp.Net MVC 5.x和EF6.x,也可以和Asp.Net Core和EF Core一起使用,但依赖性比较臃肿。
开源版:https://aspnetboilerplate.com
企业版: https://aspnetzero.com
源码: https://github.com/aspnetboilerplate
中文文档: https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese
ABP Framework
ABP Framework,也称 ABP vNext,是一个开源应用程序框架,专注于基于Asp.Net Core的Web应用程序开放。它还支持开放其他类型的应用程序,如微服务。这个版本提供的模块包更加轻量级。
新版abp官网: https://abp.io
源码: https://github.com/abpframework/abp
中文文档: https://docs.abp.io/zh-Hans/abp/latest
abp汉化: https://github.com/cnabp
nuget包地址: https://www.nuget.org/profiles/volosoft
官网nuget包: https://abp.io/package
企业版: https://commercial.abp.io
这也是领域驱动设计的基本分层结构。
ABP 框架初始化
ABP框架提供了命令行工具ABP CLI,作为一个项目初始化的脚手架,通过它可以快速的构建一个基于领域驱动设计的起始项目,方便我们进行Web应用的开发。
使用ABP CLI初始化ABP项目
-
安装
ABP CLI是一个.net工具,在.net core 2.1及以上的环境下,可以通过命令行工具进行安装和更新。安装命令如下:dotnet tool install -g Volo.Abp.Cli
安装完成之后,在命令行中输入abp,即可查看当前ABP CLI版本,出现上图内容时,即按照成功。
-
更新
ABP 框架更新比较频繁,不使用VS中的程序包管理工具,通过ABP CLI也可以更新依赖的ABP框架nuget包,但是ABP CLI本身也需要更新,否则会有警告信息。更新命令如下:dotnet tool update -g Volo.Abp.Cli
也可以通过下面选项,在使用ABP CLI更新包的时候跳过版本检查。
--skip-cli-version-check
-
卸载
作为一个.net 工具,ABP CLI自然可以卸载,卸载命令如下:dotnet tool uninstall -g Volo.Abp.Cli
-
生成解决方案
通过 abp new 命令可以快速的初始化一个解决方案。new 命令可以追加一些参数,生成不同的解决方案。下面罗列出一些生成不同解决方案的命令,其他的参数选项可参考 ABP CLI。
- 生成一个mvc框架的Web项目
abp new <解决方案名称>
- 生成一个前后端分离项目,目前只支持angular
abp new <解决方案名称> -t app -u angular
- 生成一个WebApi项目,作为前后端分离的后端解决方案
abp new <解决方案名称> -t app -u none
- 分离Identity Server,上面几种方式创建的解决方案中集成了Identity Server,与服务端同一个端口
abp new <解决方案名称> -t app -u none --separate-identity-server
- 指定数据库提供程序,可以是关系型数据库(EF),或者非关系型数据库(mongodb)
abp new <解决方案名称> -t app -u none --database-provider ef
- 生成一个微服务解决方案
abp new <解决方案名称> -t module --no-ui
- 生成一个控制台程序
abp new <解决方案名称> -t console
- 生成一个mvc框架的Web项目
-
添加包
通过以下命令将ABP提供的模块包添加到项目中,这种方式会自动在项目中的模块类中添加对于的包依赖,即[DependsOn(...)]特性。
abp add-package <包名>
-
更新包
通过以下命令,可以一次性更新全部ABP的依赖包到最新版本,需要在.sln或者.csproj文件所在的文件夹中执行。abp update
ABP 系列总结:
目录:ABP 系列总结