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 CLI,作为一个项目初始化的脚手架,通过它可以快速的构建一个基于领域驱动设计的起始项目,方便我们进行Web应用的开发。

使用ABP CLI初始化ABP项目

  1. 安装

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

    dotnet tool install -g Volo.Abp.Cli

    安装完成之后,在命令行中输入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 系列总结

ABP - 初识 ABP的更多相关文章

  1. 初识ABP vNext(1):开篇计划&基础知识

    目录 前言 开始 审计(Audit) 本地化(Localization) 事件总线(Event Bus) 多租户(multi-tenancy technology) DDD分层 实体(Entity) ...

  2. 后台工作者HangFire与ABP框架Abp.Hangfire及扩展

    HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于大家来说,比较方便. HangFire是什么 Hangfire是一个开源框架(.NET ...

  3. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十六节--SignalR与ABP框架Abp.Web.SignalR及扩展

    SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...

  4. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十七节--Quartz与ABP框架Abp.Quartz及扩展

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

  5. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...

  6. [译][ABP vNext]ABP CLI,v0.18版本的新模板和其他功能

    ABP CLI,v0.18版本的新模板和其他功能 ABP v0.18已发布, 包含解决的70+个issue,500+次提交 网站更改 abp.io网站完全更新以突出ABP框架的目标和重要功能.文档和博 ...

  7. 手动从0搭建ABP框架-ABP官方完整解决方案和手动搭建简化解决方案实践

      本文主要讲解了如何把ABP官方的在线生成解决方案运行起来,并说明了解决方案中项目间的依赖关系.然后手动实践了如何从0搭建了一个简化的解决方案.ABP官方的在线生成解决方案源码下载参考[3],手动搭 ...

  8. 初识ABP vNext(2):ABP启动模板

    目录 前言 开始 AbpHelper 模块安装 最后 前言 上一篇介绍了ABP的一些基础知识,本篇继续介绍ABP的启动模板.使用ABP CLI命令就可以得到这个启动模板,其中包含了一些基础功能模块,你 ...

  9. 初识ABP vNext(3):vue对接ABP基本思路

    目录 前言 开始 登录 权限 本地化 创建项目 ABP vue-element-admin 最后 前言 上一篇介绍了ABP的启动模板以及AbpHelper工具的基本使用,这一篇将进入项目实战部分.因为 ...

  10. 初识ABP vNext(4):vue用户登录&菜单权限

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 登录 菜单权限 运行测试 最后 前言 上一篇已经创建好了前后端项目,本篇开始编码部分. 开始 几乎所有的系统都绕不开登 ...

随机推荐

  1. 操作kubernets(k8s)的增删改查

    资源的CRUD: 创建: Service service = client.services().inNamespace(namespace).create(service); 更新: Namespa ...

  2. spring-boot-starter-webflux

    webflux: 反应式编程reactor的产物,采用发布订阅模式,引入netty的nio,比较适合IO密集型应用. 因普遍应用使用的DB链接是IO阻塞型,因此在一般应用中无法体现它的优势.redis ...

  3. 基于Quartz.Net通过反射进行任务调度

    通过反射加载任务调度 需求: 因为有些任务需要进行各种定时操作,因此将 Quartz.Net 简单封装了一下使用: 希望通过上传 dll 来进行每个任务的调度,所以写了个反射调度示例: Program ...

  4. python内置函数range()—对象创建函数

    range()函数 介绍 range()函数实际上表示一个不可变的数字序列类型,通常用于在for循环中指定特定的次数. range()的格式: range(stop) range(start, sto ...

  5. Android笔记--案例:找回密码

    找回密码 具体实现: 登录成功: 报告密码不同: 报告验证码错误: 代码相关: 找回密码的界面很简单,不细说了,直接写就行 找回密码的逻辑实现: 下一次就去写数据存储啦! 拜拜!

  6. wxml2canvas爬坑之路

    效果图: 前提: 公司要求生成一分报告并转为图片并保存,之前用canvas画过,但这次是在不想用canvas一点点画了,再往上找了n久,爬了n多坑,终于搞出来了 插件: wxml2canvas 一:下 ...

  7. 4.0 SDK Workshop 纪实:一起体验多人、多屏幕共享新功能

    在本月初,声网发布了 RTC Native SDK 4.0 版本.该版本提供了更高的开发灵活度,可明显提升实时场景开发效率,并让第三方插件开发更容易.上周六(8月20日),我们组织了一场小型的线下 W ...

  8. AllenBradley罗克韦尔CIP通信协议介绍 C# AllenBradley(CIP)读写操作PLC数据 C#罗克韦尔(CIP)PLC通信 全开源下载

    罗克韦尔CIP通信协议(Control and Information Protocol)是一种面向对象的通信协议,它是用于工业自动化领域的数据通信协议.CIP协议可以在不同厂商.不同类型的自动化设备 ...

  9. 正态分布密度函数的动画演示—R语言

    正态分布是概率统计中最重要的一种分布,其重要性我们可以从以下两方面来理解:一方面,正态分布是自然界最常见的一种分布.一般说来,若影响某一数量指标的随机因素很多,而每个因素所起的作用都不太大,则这个指标 ...

  10. python实现远程桌面

    项目旨在让大家理解远控软件的原理,通过远控桌面可以实现远程控制我们的电脑,更好更方便的管理电脑.文末将给出初始版的完整代码,需要使用到的其他工具也会有所说明.最终实现的效果就是只要用户点击了客户端的程 ...