ASP.NET样板项目ABP框架的特性总结

 更新时间:2016年06月15日 16:34:10   作者:阳光铭睿  
这篇文章主要介绍了ASP.NET样板项目ABP框架的特性总结,ABP框架基于ASP.NET框架,用于开发Web应用程序,需要的朋友可以参考下

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
ASP.NET Boilerplate采用了以下技术:

  • 多语言/本地化支持
  • 多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数据时写相应代码)
  • 软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)
  • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
  • 数据有效性验证(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是什么?
ABP是为新的现代Web应用程序使用最佳实践和使用最流行工具的一个起点。可作为一般用途的应用程序的基础框架或项目模板。它的功能包括:

服务器端:

  • 基于最新的.NET技术 (目前是ASP.NET MVC 5、Web API 2、C# 5.0,在ASP.NET 5正式发布后会升级)
  • 实现领域驱动设计(实体、仓储、领域服务、领域事件、应用服务、数据传输对象,工作单元等等)
  • 实现分层体系结构(领域层,应用层,展现层和基础设施层)
  • 提供了一个基础架构来开发可重用可配置的模块
  • 集成一些最流行的开源框架/库,也许有些是你正在使用的。
  • 提供了一个基础架构让我们很方便地使用依赖注入(使用Castle Windsor作为依赖注入的容器)
  • 提供Repository仓储模式支持不同的ORM(已实现Entity Framework 、NHibernate、MangoDb和内存数据库)
  • 支持并实现数据库迁移(EF 的 Code first)
  • 模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)
  • 包括一个简单的和灵活的多语言/本地化系统
  • 包括一个 EventBus来实现服务器端全局的领域事件
  • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
  • 数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)
  • 通过Application Services自动创建Web Api层(不需要写ApiController层了)
  • 提供基类和帮助类让我们方便地实现一些常见的任务
  • 使用“约定优于配置原则”

客户端:

  • Bootstrap、Less、AngularJs、jQuery、Modernizr和其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2等
  • 为单页面应用程序(AngularJs、Durandaljs)和多页面应用程序(Bootstrap+Jquery)提供了项目模板。
  • 自动创建Javascript 的代理层来更方便使用Web Api
  • 封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层等等

 

 

ABP不是什么?
ABP 提供了一个应用程序开发模型用于最佳实践。它拥有基础类、接口和工具使我们容易建立起可维护的大规模的应用程序。

然而:

  • 它不是RAD工具之一,RAD工具的目的是无需编码创建应用程序。相反,ABP提供了一种编码的最佳实践。
  • 它不是一个代码生成工具。在运行时虽然它有一些特性构建动态代码,但它不能生成代码。
  • 它不是一个一体化的框架。相反,它使用流行的工具/库来完成特定的任务(例如用EF做ORM,用Log4Net做日志记录,使得Castle Windsor作为赖注入容器, AngularJs 用于SPA 框架)。

 就我使用了ABP几个月的经验来看,虽然ABP不是RAD,但是用它开发项目绝对比传统三层架构要快很多。

虽然ABP不是代码生成工具,但因为有了它,使我们项目的代码更简洁规范,这有利于使用代码生成工具。

我自己使用VS2013的Scaffolder+T4开发的代码生成器,可根据领域对象的UML类图自动生成全部前后端代码和数据库,简单的CURD模块几乎不需要编写代码,有复杂业务逻辑的模块主要补充领域层代码即可。这样就能把时间多花在领域模型的设计上,减少写代码的时间。

 

相关文章

  • ASP.NET Core在Linux下为dotnet创建守护进程

    ASP.NET Core在Linux下为dotnet创建守护进程

    本篇主要是怎么样为我们在Linux或者macOs中部署的dotnet程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问。需要的朋友可以收藏下,方便下次浏览观看
    2021-12-12
  • 检测含有中文字符串的实际长度

    检测含有中文字符串的实际长度

    检测含有中文字符串的实际长度...
    2006-08-08
  • .net core中的System.Buffers命名空间

    .net core中的System.Buffers命名空间

    这篇文章介绍了.net core中的System.Buffers命名空间,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 为ABP框架添加基础集成服务

    为ABP框架添加基础集成服务

    这篇文章介绍了为ABP框架添加基础集成服务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • asp.net 专业源代码打包工具

    asp.net 专业源代码打包工具

    我想很多人都在网上下载过一些示例代码,或者收到一些别人给的示例代码。通常为了方便,都是打成一个压缩包的形式
    2012-03-03
  • ASP.NET Core依赖关系注入

    ASP.NET Core依赖关系注入

    这篇文章介绍了ASP.NET Core中的依赖关系注入,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • ASP.Net Core MVC基础系列之中间件

    ASP.Net Core MVC基础系列之中间件

    这篇文章介绍了ASP.Net Core MVC的中间件,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 析构函数的作用 什么是析构函数

    析构函数的作用 什么是析构函数

    这篇文章主要讲述了析构函数的概念、原理、功能以及定义格式,析构函数是C#程序设计中比较重要的概念,需要的朋友可以参考一下
    2007-12-12
  • .NET正则表达式的最佳用法

    .NET正则表达式的最佳用法

    本文详细讲解了.NET正则表达式最佳用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • aspx是什么格式 ASPX文件怎么打开

    aspx是什么格式 ASPX文件怎么打开

    ASPX文件是一种Web文件,它是网站的网页源文件,里面全是代码。这种文件是由微软的ASP.NET语言开发出来的
    2013-05-05

最新评论