- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
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(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 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是一个.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 .
abp new <解决方案名称>
abp new <解决方案名称> -t app -u angular
abp new <解决方案名称> -t app -u none
abp new <解决方案名称> -t app -u none --separate-identity-server
abp new <解决方案名称> -t app -u none --database-provider ef
abp new <解决方案名称> -t module --no-ui
abp new <解决方案名称> -t console
添加包 。
通过以下命令将ABP提供的模块包添加到项目中,这种方式会自动在项目中的模块类中添加对于的包依赖,即[DependsOn(...)]特性.
abp add-package <包名>
更新包 通过以下命令,可以一次性更新全部ABP的依赖包到最新版本,需要在.sln或者.csproj文件所在的文件夹中执行.
abp update
ABP 系列总结:
目录: ABP 系列总结 。
最后此篇关于ABP-初识ABP的文章就讲到这里了,如果你想了解更多关于ABP-初识ABP的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我刚刚开始探索 Abp 功能,我从他们的网站创建了一个示例项目并能够成功构建该项目。但是当我运行 dbmigrator 项目时出现异常,下面是错误的截图, 我按照这篇文章运行了应用 https://d
我正在尝试使用 abp.framework(版本 3)为 Entity Framework 数据库播种和 AppUser。我知道如何使用 IdentityUserManager 为 IdentityU
我使用具有商业许可的 abp 套件生成了一个 MVC 项目。它有默认的 Lepton 主题,但我想切换到基本主题,因为它更容易定制。 最佳答案 安装 Volo.Abp.AspNetCore.Mvc.U
我使用具有商业许可的 abp 套件生成了一个 MVC 项目。它有默认的 Lepton 主题,但我想切换到基本主题,因为它更容易定制。 最佳答案 安装 Volo.Abp.AspNetCore.Mvc.U
在我的公司,我们使用全新的 Abp 框架 (abp.io)。由于它是一个新框架,因此缺少很多文档,因此我们必须搜索源代码。看了这么多代码,我意识到这是他们使用的模式,总是出现 Providers、Pr
1. 事件总线 在我们的一个应用中,经常会出现一个逻辑执行之后要跟随执行另一个逻辑的情况,例如一个用户创建了后续还需要发送邮件进行通知,或者需要初始化相应的权限等。面对这样的情况,我们当然可以
ABP框架 ABP是用于创建现代化Web应用程序的完整体系结构和强大的基础架构,以模块化的方式进行开发,所有模块以nuget包的方式提供,开箱即用,遵循最佳实践和约定,提供 SOLID 开
Abp是一个基于模块化开发的应用程序框架,提供了模块化基础的架构和模块化加载的引擎。 理解模块 一个模块是对一个功能点的封装,可以独立成为一个包,实现了松耦合的代码组织方式。A
Abp.NHibernate动态库连接PostgreSQl数据库,供大家参考,具体内容如下 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用ab
在apb-vnext的实体的创建中可以确实字段的长度、说明、对应的表、表中给字段加的索引 以项目中的订单表为例,如下: [Comment("订单主表")] [Tabl
我不能完全理解在什么情况下我会使用 DomainService 和在这种情况下你的文件不详细在这个问题上足够了。你能给出更详细的解释吗举个例子? 如果我只使用 ApplicationService 而
1. 缓存模块源码解析 个人觉得 ABP 分布式缓存模块有三个值得关注的核心点。首先是 AbpRedisCache 类继承了微软原生的 RedisCache,并 通过反射的方式获取RedisC
依赖注入的使用 构造方法注入 这是将服务注入类的最常用方法,是将依赖项注入类的首选方式,也是微软推崇的模式。这样,除非提供了所有构造方法注入的依赖项,否则无法构造类,显示的声明了类必需的服
1. 与 .NET Core 缓存的关系和差异 ABP 框架中的缓存系统核心包是 Volo.Abp.Caching ,而对于分布式缓存的支持,abp 官方提供了基于 Redis 的方案,需要安装
依赖注入实现了系统之间、模块之间和对象之间依赖关系的解耦,基本上是现代应用程序框架必不可少的一个组成部分。 ABP的依赖注入系统是基于Microsoft的依赖注入扩展库(Microso
默认情况下,AbpUserRole 和AbpRole 实现ISoftDelete。是否可以禁用它? 我试着这样做: [AbpAuthorize(AppPermissions.Pages_Adminis
默认情况下,AbpUserRole 和AbpRole 实现ISoftDelete。是否可以禁用它? 我试着这样做: [AbpAuthorize(AppPermissions.Pages_Adminis
我在构建网站时了解到客户想要 2 个 300x250 的广告和 1 个 728x90 的广告。我已经使用以下 HTML 将这些添加到设计中: 这很好用。我添加
我有一个具有一些可选关系的实体,我正在执行 GetAllIncluding(someProperties),但是当 GetAll 完成时,导航属性保持为 null。 include (Cliente,
为了回应被搁置的问题,我修改了我的问题。希望这能更好地符合 SO 标准。 该程序的目的是构建和发送使用交替位协议(protocol)作为简单重发机制的 UDP 数据包。我已经确认数据包可以正确发送和接
我是一名优秀的程序员,十分优秀!