ABP总体介绍

摘要:
ABP的官方网站:http://www.aspnetboilerplate.comABP在Github上的开源项目:https://github.com/aspnetboilerplateABP框架于2014年5月4日首次在Github开源,截止到2015年5月25日,总共进行了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。ABP框架的代码,都通过xUnit进行了单元测试。为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改,而没有直接使用ABP组件。ABP适用的场景:中小规模WEB应用开发。(处理高并发并不是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。

ABP总体介绍第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。)

原文地址:http://www.cnblogs.com/Leo_wl/p/4537392.html

免责声明:文章转载自《ABP总体介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于 打印页面 图片被截断select2动态查询及多选下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Asp.Net运行于32/64模式下的性能差异

项目使用的是Oracle数据库,.Net使用Odac对数据库进行访问。在官方下载Odac时会让你选择是下载32位的还是64位的。这会直接影响到网站的运行模式。目前我们使用的是32位的,那么布署时,需要将应用程序池的启用32位设置为True。 那么,对于网站来讲,是32位模式性能更好,还是64位性能更好呢? 我没有动手亲自试验,而是在网上查了查,在这篇文章里...

利用Bootstrap框架制作查询页面的界面

UI设计实战篇——利用Bootstrap框架制作查询页面的界面  Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大)。尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不同的页面元素的布局),在Bootstrap中很好的支持了,只要简单设置了属性,就能自动实现...

Winform布局开源框架,Winform控件框架,插件化框架

  什么是Winform框架?   Winform框架是基于.NET开发平台研发的用于快速开发软件项目的软件模板或开发平台,常用的程序语言有C#.NET, VB.NET。   通常Winform框架界面组件使用第三方控件,如:DevExpress,该控件功能强调,用户体验友好。 若全部采用.NET原生组件,开发效率低,界面不美观,用户体验差,特别是基于数...

微软企业库4.1学习笔记(一)开篇乱弹

我是一个.NET技术为主的程序员,每次开发一个新的应用的时候,都会被人问道“.NET有没有框架可以用,有没有类似hibernate,structs,spring之类的框架,怎么什么都没有呢,.NET有没有开源的现成的好用的框架,怎么每次都要造轮子呢?你们在干什么呢,数据访问和日志这种东西怎么每次你们都要花功夫来写呢,没有可以参考的吗”,大部分人的回答往往是...

ABP 继承 ISoftDelete 后调用 HardDeleteAsync 实现物理删除

如标题描述的一样,在继承ISoftDelete 后希望进行物理删除操作时,调用HardDeleteAsync 方法即可。下面是该方法的内部实现: public static async Task HardDeleteAsync<TEntity, TPrimaryKey>(this IRepository<TEntity, TPrimary...

UpdatePanel的几个属性

UpdatePanel的RenderMode属性RenderMode Block:使用div包含内容 Inline:使用span包含内容 UpdatePanel的UpdateMode属性Conditional:表示只用UpdatePanel内的控件有回发的时候UpdatePanel才更新 Always:这是默认值表示页面上所有的控件回发都会引起Update...