点这里进入ABP系列文章总目录

基于DDD的现代ASP.NET开发框架--ABP系列之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。

ASP.NET Boilerplate采用了以下技术:

服务器端:

  • 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

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、消息框、通知组件、忙状态的遮罩层等等

除ABP框架项目以外,还开发了名叫“Zero”的模块,实现了以下功能:

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

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

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

我的前篇文章中有介绍:新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序(续1)

我希望更多国内的架构师能关注到ABP这个项目,也许这其中有能帮助到您的地方,也许有您的参与,这个项目可以发展得更好。
今天只是作了一个大概介绍,希望有更多的朋友能去阅读源代码,然后参与讨论。

ABP适用的场景:中小规模WEB应用开发。(处理高并发并不是ABP的强项。需要非常高并发的DDD框架,建议去研究netfocus的ENode。)

欢迎加ABP架构设计交流QQ群:134710707    

时间: 2024-10-05 09:27:53

点这里进入ABP系列文章总目录的相关文章

【目录】开源C#彩票数据资料库系列文章总目录

本博客所有文章分类的总目录链接:http://www.cnblogs.com/asxinyu/p/4288836.html 1.开源足球赛事数据库系列目录 1.C#彩票利器—足球赛事资料数据库开源(1) 基本介绍 2.C#彩票利器—足球赛事资料数据库开源(2) 数据库架构一 3.C#彩票利器—足球赛事资料数据库开源(3) 数据库架构二 4.C#彩票利器—足球赛事资料数据库开源(4) 数据库架构三 5.C#彩票利器—足球赛事资料数据库开源(5) 核心采集源码 6.C#彩票利器—足球赛事资料数据库开

【全网最全的博客美化系列教程】文章总目录

前言 很多热心的园友叫我出一部博客美化系列的教程,都觉得我博客做的很漂亮?之前我也有写过博客美化教程,不过好像一篇文章的篇幅有点过长了,为了方便园友的查看,我决定重新出一套博客美化教程,把原有的功能进行细化,每种功能单独以一篇文章的形式发表,在保留原有功能的基础上,会持续更新探索一些好玩好看的新功能,供园友们学习.既然是园友们提出的想法,我也不能辜负你们的期望啊,喜欢的园友记得点赞收藏加关注哦~~~ 一枚即将步入大三的学生党也是时候需要考虑一下自己的未来了,毕竟学习的时间不多了.我也很久没有更新

【目录】数据挖掘与机器学习相关算法文章总目录

本博客所有文章分类的总目录链接:http://www.cnblogs.com/asxinyu/p/4288836.html 数据挖掘与机器学习相关算法文章目录 1.数据挖掘之—基于ReliefF和K-means算法的医学应用实例  2.彩票数据预测算法(一):离散型马尔可夫链模型实现[附C#代码] 

【T-SQL】系列文章全文目录(2017-06-02更新)

本系列[T-SQL]主要是针对T-SQL的总结. T-SQL基础 [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [T-SQL基础]09.可编程对象 T-SQL进阶 [T-SQL进阶]01.好用的SQ

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航

ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅.但是,由于本人英语水平有限,难免有翻译不准确或错误的地方,请大家踊跃提出宝贵的意见,以进行修正.本书一共18章,下面列出各章的英文目录: Chapter 1: Building a Basic MVC Web Site Chapter 2: Creating Views, Controllers,

基于DDD的现代ASP.NET开发框架--ABP系列之7、ABP Session管理

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之7.ABP Session管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 简介 如果一个应用程序需要登录,则它必须知道当前用户执行了什么操作.因此ASP.NET

基于DDD的现代ASP.NET开发框架--ABP系列之8、ABP日志管理

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由东莞-天道提供翻译 Server side(服务器端) ASP.NET Boilerplat

基于DDD的现代ASP.NET开发框架--ABP系列之6、ABP依赖注入

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之6.ABP依赖注入 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由 上海-半冷 提供翻译 什么是依赖注入 如果你已经知道依赖注入的概念,构造函数和属性注入模式

基于DDD的现代ASP.NET开发框架--ABP系列之5、ABP启动配置

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之5.ABP启动配置 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由 东莞-天道 提供翻译 译者注:在看这一节的内容之前,建议大家先下载module-zero这