ABP教程(一)- ABP介绍

ABP是什么

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

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

ABP的官方网站http://www.aspnetboilerplate.com

ABP在Github上的开源项目https://github.com/aspnetboilerplate

ABP 的由来

“DRY——避免重复代码”是一个优秀的开发者在开发软件时所具备的最重要的思想之一。我们在开发企业WEB应用程序时都有一些类似的需求,例如:都需要登录页面、用户/角色管理、权限验证、数据有效性验证、多语言/本地化等等。一个高品质的大型软件都会运用一些最佳实践,例如分层体系结构、领域驱动设计、依赖注入等。我们也可能会采用ORM、数据库迁移(Database Migrations)、日志记录(Logging)等工具。

从零开始创建一个企业应用程序是一件繁琐的事,因为需要重复做很多常见的基础工作。许多公司都在开发自己的应用程序框架来重用于不同的项目,然后在框架的基础上开发一些新的功能。但并不是每个公司都有这样的实力。假如我们可以分享的更多,也许可以避免每个公司或每个项目的重复编写类似的代码。作者之所以把项目命名为”ASP.NET Boilerplate”,就是希望它能成为开发一般企业WEB应用的新起点,直接把ABP作为项目模板。

ABP的构成

服务器端:

  • 基于最新的.NET技术 (目前是ASP.NET MVC 5、Web API 2、C# 5.0)
  • 实现领域驱动设计(实体、仓储、领域服务、领域事件、应用服务、数据传输对象,工作单元等等)
  • 实现分层体系结构(领域层,应用层,展现层和基础设施层)
  • 提供了一个基础架构来开发可重用可配置的模块
  • 集成一些最流行的开源框架/库,也许有些是你正在使用的。
  • 提供了一个基础架构让我们很方便地使用依赖注入(使用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框架项目以外,还开发了名叫”Zero“的模块,实现了以下功能:

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

ABP不是什么?

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

然而:

它不是RAD工具之一,RAD工具的目的是无需编码创建应用程序。相反,ABP提供了一种编码的最佳实践。

它不是一个代码生成工具。在运行时虽然它有一些特性构建动态代码,但它不能生成代码。

它不是一个一体化的框架。相反,它使用流行的工具/库来完成特定的任务(例如用EF做ORM,用Log4Net做日志记录,使得Castle Windsor作为赖注入容器, AngularJs 用于SPA 框架)。

下一篇我们将ABP在我们本地跑起来,大家静请期待……

时间: 2024-08-01 08:18:45

ABP教程(一)- ABP介绍的相关文章

ABP教程(四)- 开始一个简单的任务管理系统 - 实现UI端的增删改查

接上一篇:ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码 1.实现UI端的增删改查 1.1添加增删改查代码 打开SimpleTaskSystem.sln解决方案,添加一个“包含视图的MVC 5控制器(使用EntityFramework)”TaskController控制器,添加成功后我们就能得到一个完整增删改查的功能了. 生成的代码是不能用在我们的这个示例里的,还需经过些许调整,经过调整后的代码如下: using System; using System.Net; using Sy

Struts2.x教程(一) Struts2介绍

一.Struts2是什么 Struts2是在WebWork2基础发展而来的.和Struts1一样, Struts2也是基于MVC的web层框架. 那么既然有了Struts1,为何还要Struts2? Struts2和Struts1虽然都是基于MVC的Web框架,但是它们的实现机制完全不同. Struts1是基于Servlet的实现,并且Struts1的API过分依赖容器,导致了Action开发.测试都非常繁琐,而Struts2是基于过滤器的实现,API不再依赖容器,测试过程中不必再模拟Web容器

ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1-1 手把手引进门 1-2 进阶 1-3 杂项 (相关理论知识) 第一篇含两个步骤. 1-1-1 ASP.NET Core & Entity Framework Core 后端(内核)含两篇 ( 第一篇链接    

Castle Windsor常用介绍以及其在ABP项目的应用介绍

最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castle Windsor项目常用方法介绍和关于ABP的使用总结 1.下载Castle.Windsor所需要的dll,在程序包管理器控制台 运行Install-Package Castle.Windsor 下面先看个简单的例子 var container = new WindsorContainer(); container.Register( Component.For

入门ABP——多层架构体系介绍

一.ABP遵循DDD(领域驱动设计)的原则 ? 展现层(Presentation):提供一个用户界面,实现用户交互操作.? 应用层(Application):进行展现层与领域层之间的协调,协调业务对象来执行特定的应用程序的任务.它不包含业务逻辑. ? 领域层(Domain):包括业务对象和业务规则,这是应用程序的核心层. ? 基础设施层(Infrastructure):提供通用技术来支持更高的层.例如基础设施层的仓储(Repository)可通过 ORM 来实现数据库交互.根据实际需要,可能会有

【ABP框架系列学习】介绍篇(1)

  0.引言 该系列博文主要在[官方文档]及[tkbSimplest]ABP框架理论研究系列博文的基础上进行总结的,或许大家会质问,别人都已经翻译过了,这不是多此一举吗?原因如下: 1.[tkbSimplest]的相关博文由于撰写得比较早的,在参照官方文档学习的过程中,发现部分知识未能及时同步(当前V4.0.2版本),如[EntityHistory].[Multi-Lingual Engities]章节未涉及.[Caching]章节没有Entity Caching等内容. 2.进一步深入学习AB

.NET CORE 框架ABP的代码生成器(ABP Code Power Tools )使用说明文档

前言 各位好,又是一个多月没更新文章了. 原因嘛,大家都懂的,太忙了~ 临近年末,公司的项目.年会的做技术支持,同事朋友聚餐也比较频繁. 当然视频教程也没有继续更新.我的锅~ 但是这个月好歹抽空做了一些事情,嗯.就是一直说的ABP 的新版本代码生成器,之前的代码生成器大家说不支持.NET CORE. 现在这个版本终于支持了. 也算是兑现了承诺. ABP Code Generator 是基于ABP(ASP.NET Boilerplate)框架制作的代码生成器,可以用于大家在日常开发过程中节约时间,

ERPSYSTEM开发教程01 框架介绍

从今天开始我将给大家带来一套有关Delphi开发的教程 主要开发ERP软件 我个人觉得,ERP软件的开发,技术层面的不是最大问题, 而是对客户需求的认知程度以及如何管理复杂多样的需求. 因此一个开发框架显得非常重要! 这里我推荐一套来自网络的开源框架 Tangram Plugin Framework 框架特点 1.采用模块化插件开发,支持DLL和BPL两种模块方式 2.自动或手动动态加载模块 3.模块与模块或主程序之间均使用统一的接口方式进行访问 源代码下载地址  http://code.goo

python 2.7 中文教程及自动化测试介绍(3) -- 待整理

数据结构 本章详细讨论一些已学知识,并引入了一些新知识.列表的详细介绍 列表的所有方法如下: list.append(x):附加元素到列表末端,相当于a[len(a):] = [x].    list.extend(L):附加列表L的内容到当前列表后面,相当于 a[len(a):] = L .    list.insert(i, x):在指定位置i插入x.i表示插入位置,原来的i位置如果有元素则往后移动一个位置,例如 a.insert(0, x)会插入到列表首部,而a.insert(len(a)