1.1 ABP总体介绍 - 入门介绍

ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序基础框架和项目模板。

ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。

  • ABP的官方网站:http://www.aspnetboilerplate.com
  • ABP在Github上的开源项目:https://github.com/aspnetboilerplate

ABP框架于2014年5月4日首次在Github开源,截止到2015年5月25日,总共进行了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。

1.1.1 ABP采用了以下技术

服务器端:

  • ASP.NET MVC 5、Web API 2、C# 5.0
  • DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
  • Castle windsor (依赖注入容器)
  • Entity Framework 6 \ NHibernate,数据迁移
  • Log4Net(日志记录)
  • AutoMapper(实现Dto类与实体类的双向自动转换)

客户端:

  • Bootstrap
  • Less
  • AngularJs
  • jQuery
  • Modernizr
  • 其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2

1.1.2 ABP框架已实现了以下特性

  • 多语言/本地化支持
  • 多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数时写相应代码)
  • 软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)
  • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
  • 数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)
  • 日志记录(自动记录程序异常)
  • 模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)
  • Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)
  • Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)
  • EventBus实现领域事件(Domain Events)
  • DLL嵌入资源管理
  • 通过Application Services自动创建Web Api层(不需要写ApiController层了)
  • 自动创建Javascript 的代理层来更方便使用Web Api
  • 封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层

“Zero”的模块,实现了以下功能:

  • 身份验证与授权管理(通过ASP.NET Identity实现的)
  • 用户&角色管理
  • 系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)
  • 审计日志(自动记录每一次接口的调用者和参数)

在其他项目中的很多优秀设计,在ABP项目中也已存在,而且可能实现得更好。ABP框架的代码,都通过xUnit进行了单元测试。作者一直在用ABP框架开发他们的实际项目,从Github和他官方论坛上的信息可以看到,有很多国外的开发者在将ABP用作生产项目的基础框架。如果需要直接使用ABP组件,可以通过Nuget安装(在VS的Nuget包管理界面搜索ABP)。

为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改后使用的,没有直接使用ABP组件。

我希望更多国内的架构师能关注ABP这个项目,也许这其中有能帮助到你的地方,也许有你的参与,这个项目可以发展得更好。

今天只是作了一个大概介绍,希望有更多的朋友能去阅读源代码,然后参与讨论。

1.1.3 ABP适用的场景

中小规模WEB应用开发,可直接使用ABP框架。 较大型项目可以在ABP框架的源码基础上进行扩展,以实现分布式架构。

注:处理高并发并不是ABP的强项。需要非常高并发的DDD框架,建议去研究netfocus的ENode。

ABP官方文档(一)【入门介绍】相关推荐

  1. C#_08_官方文档_语言介绍

    C# 官方文档_C#语言介绍篇章 https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/ C# 语言介绍 C#(读作"S ...

  2. clang format 官方文档自定义参数介绍(中英文)

    官方文档:http://clang.llvm.org/docs/ClangFormatStyleOptions.html 中文 在代码中配置样式当使用 clang::format::reformat( ...

  3. Redis官方文档(入门必备)

    函数大全 中文文档 官方文档

  4. ABP官方文档(四十九)【集成EntityFramework】

    9.1 ABP基础设施层 - 集成Entity Framework ABP可以与任何ORM框架协同工作,它内置了对EntityFramework的集成支持.本文将介绍如何在ABP中使用EntityFr ...

  5. python3.7基础教程_关于本教程 |《Python 官方文档:入门教程 3.7.0》| Python 技术论坛...

    本文档最新版为 3.8,旧版本可能放弃维护,推荐阅读最新版! Python 入门教程 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并能够用简单又有效的方式进行面向对象编 ...

  6. ABP官方文档(三)【模块系统】

    1.3 ABP总体介绍 - 模块系统 1.3.1 ABP模块系统简介 ABP框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况下,一个程序集就可以看成是一个模块.在ABP框架中, ...

  7. ABP官方文档(四十四)【后台作业和后台工人】

    7.1 ABP后台服务 - 后台作业和后台工人 7.1.1 简介 ABP提供了后台作业和后台工人,来执行应用程序中的后台线程的某些任务. 7.1.2 后台作业 由于各种各样的原因,你需要后台作业以队列 ...

  8. ABP官方文档(五)【多租户】

    1.5 ABP总体介绍 - 多租户 1.5.1 什么是多租户 维基百科:"软件多租户是指一个软件架构的实例软件运行在一个服务器上,但存在多个租户.租户是一组共享一个公共的用户访问特定权限的软 ...

  9. ABP官方文档(十三)【对象之间的映射】

    2.7 ABP公共结构 - 对象之间的映射 2.7.1 简介 我们通常需要在近似的对象之间进行映射处理.这是一个重复且枯燥无味的工作,通常来说两个需要相互映射的对象之间有近似的或者相同的属性.思考一下 ...

  10. ABP官方文档(四十五)【集成Hangfire】

    7.2 ABP后台服务 - 集成Hangfire 7.2.1 简介 Hangfire是一个综合性的后台作业管理工具.你可以用Hangfire来替换ABP中默认实现的后台作业管理者.你可以对Hangfi ...

最新文章

  1. Caught exception java.lang.interruptedException(在集群上进行多个文件合并压缩时出错)
  2. JPA(七):映射关联关系------映射双向多对一的关联关系
  3. 解决softmax后列和不为1的bug记录 :问题原因为 s为1维的,来除torch.exp(x)(64x10)时候,维数不对应,需要将s也要转换为2维的即维数为(64x1),才可以广播按行对应相除
  4. C经典之14-双向链表存储1-10---ShinePans
  5. 001 GIt的基本操作
  6. 【JAVA编码专题】深入分析 Java 中的中文编码问题
  7. 聊聊AspectCore动态代理中的拦截器(一)
  8. 互联网晚报 | 3月3日 星期三 |​ 淘特宣布上线淘特10元店、淘特100;​A股三大指数集体收涨,多只地产股涨停...
  9. unity捕捉全景图_DronePan:可捕捉飞机全景的应用程序
  10. 关于IIS不能浏览ASP网页 和不能浏览后台(转)
  11. 【生信进阶练习1000days】day11day12-GEO data mining
  12. C语言练习题 时钟指针
  13. Corel VideoStudio X7 (64bit)安装
  14. DCloud之APP离线SDK升级步骤(3.5.3升至最新版3.6.7.81556_20221018)
  15. ESP32_esp-adf环境搭建
  16. PostgreSQL 插入数据报错:column “xxx“ does not exist 解决方法
  17. 虚拟机设置BT4上网
  18. 免费刷会员和六钻工具?小心通过QQ传播的灰鸽子Backdoor.Win32.Gpigeon.gem
  19. about GLOBAL TEMPORARY TABLES
  20. 平板设备发展趋势设想

热门文章

  1. deepin显卡驱动管理器在哪_deepin显卡设置
  2. 分享 | 3D目标检测方法总结
  3. vs项目中的筛选器(filter)
  4. 图扑软件数字孪生微电网,部署源网荷储一体化平台事半功倍
  5. 什么是PID,PID的作用。
  6. 计算机硬件基础——第七章:存储系统
  7. 微型计算机的外存储器 现在普遍采用什么,当前微型计算机上大部分采用的外存储器,不包含什么? 有选择A 硬盘 B 光盘 C 软盘 D 磁带...
  8. html中超链接使用_html超链接有哪些类型 html中,超链接用的是什么标签
  9. 古都侠隐-评《侠隐》
  10. JavaFX scene切换