ABP教程- ABP介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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在我们本地跑起来,大家静请期待……
以上是关于ABP教程- ABP介绍的主要内容,如果未能解决你的问题,请参考以下文章