ABP – 初识 ABP

  • ABP – 初识 ABP已关闭评论
  • 188 次浏览
  • A+
所属分类:.NET技术
摘要

ABP是用于创建现代化Web应用程序的完整体系结构和强大的基础架构,以模块化的方式进行开发,所有模块以nuget包的方式提供,开箱即用,遵循最佳实践和约定,提供SOLID开发经验。


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

ABP 框架初始化

ABP框架提供了命令行工具ABP CLI,作为一个项目初始化的脚手架,通过它可以快速的构建一个基于领域驱动设计的起始项目,方便我们进行Web应用的开发。

使用ABP CLI初始化ABP项目

  1. 安装
    ABP CLI是一个.net工具,在.net core 2.1及以上的环境下,可以通过命令行工具进行安装和更新。安装命令如下:

    dotnet tool install -g Volo.Abp.Cli 

    ABP - 初识 ABP

    安装完成之后,在命令行中输入abp,即可查看当前ABP CLI版本,出现上图内容时,即按照成功。

  2. 更新
    ABP 框架更新比较频繁,不使用VS中的程序包管理工具,通过ABP CLI也可以更新依赖的ABP框架nuget包,但是ABP CLI本身也需要更新,否则会有警告信息。更新命令如下:

    dotnet tool update -g Volo.Abp.Cli 

    也可以通过下面选项,在使用ABP CLI更新包的时候跳过版本检查。

    --skip-cli-version-check 
  3. 卸载
    作为一个.net 工具,ABP CLI自然可以卸载,卸载命令如下:

    dotnet tool uninstall -g Volo.Abp.Cli 
  4. 生成解决方案

    通过 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 
  5. 添加包

    通过以下命令将ABP提供的模块包添加到项目中,这种方式会自动在项目中的模块类中添加对于的包依赖,即[DependsOn(...)]特性。

    abp add-package <包名> 
  6. 更新包
    通过以下命令,可以一次性更新全部ABP的依赖包到最新版本,需要在.sln或者.csproj文件所在的文件夹中执行。

    abp update 

ABP 系列总结:

目录:ABP 系列总结