所有翻译文档,将上传word文档至GitHub

本节目录:

  • 简介
  • 代码示例
  • 支持的功能
  • GitHub

简介

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

ABP不仅仅是1个框架,更提供了一个基于DDD和最佳实践方案

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

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

代码示例

(Application层代码示例)

public class TaskAppService : ApplicationService, ITaskAppService
{
private readonly IRepository<Task> _taskRepository; public TaskAppService(IRepository<Task> taskRepository)
{
_taskRepository = taskRepository;
} [AbpAuthorize(MyPermissions.UpdatingTasks)]
public async Task UpdateTask(UpdateTaskInput input)
{
Logger.Info("Updating a task for input: " + input); var task = await _taskRepository.FirstOrDefaultAsync(input.TaskId);
if (task == null)
{
throw new UserFriendlyException(L("CouldNotFoundTheTaskMessage"));
} input.MapTo(task);
}
}

  

支持的功能

  • Dependency Injection: 继承了application service的每个类, 都会注册到容器中 as transient (created per request). 并会自动注入所有依赖.
  • Repository: ABP 会创建1个 default repository for each entity. Default repository 有很多实用的方法. 我们也可以自定义repository的方法.
  • Authorization: ABP 会检查权限. 如果用户没有登录或者没有UpdatingTasks权限,在上面的例子中,则会自动阻止执行.通过添加特性标签实现权限.
  • Validation: ABP 会自动验证input参数是否为null.并根据(data annotation attributes and custom validation rules)对所有属性做验证.如果验证不通过,会抛出异常.
  • Audit Logging: User, browser, IP address, calling service, method, parameters等信息会自动记录下
  • Unit Of Work: 在ABP中, 每个application service 方法默认都会开启事务.在方法开始的时候,自动创建1个数据库连接和开启事务,方法没有异常的执行完会自动提交事务.
  • Exception Handling: 在ABP中,我们几乎不需要处理异常.ABP会自动记录,并通过合适的方法返回给客户端.
  • Logging: 可以通过Logger属性 write logs.Log4Net 是默认的日志框架,并且可配置替换成其他日志框架.
  • Localization: 当抛异常的时候,可以调用L方法,会自动使用本地化语言配置.
  • Auto Mapping: ABP定义1个MapTo扩展方法,使用AutoMapper方便我们做实体映射.
  • Dynamic Web API Layer: 通过配置,ABP会在运行的时候,自动将application service methods 生成Web API.
  • Dynamic Javascript AJAX Proxy: ABP自动创建javascript proxy methods可以直接调用application service methods.
  • Modularity: 提供了完善的基础设施层来生成可复用的模块.
  • Data Filters: 提供自动过滤,如软删除,多租户.
  • Multi Tenancy: 提供单数据库 多用户方式的多租户.
  • Setting Management: 提供了完善的基础设施层来获取更改 application, tenant and user level 设置信息.
  • Unit & Integration Testing: 提供了基类简化单元和集成测试.
  • ...

GitHub

(图片引用tkb至简)

说明:

之所以一边英文,一边中文是由于某些词英文表达更好,或者是由于ABP已自带相关内容链接.

[Architect] ABP(现代ASP.NET样板开发框架) 翻译的更多相关文章

  1. ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...

  2. ABP(现代ASP.NET样板开发框架)系列之20、ABP展现层——动态生成WebApi

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerplate Project (ASP.N ...

  3. ABP(现代ASP.NET样板开发框架)系列之4、ABP模块系统

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之4.ABP模块系统 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  4. ABP(现代ASP.NET样板开发框架)系列之5、ABP启动配置

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之5.ABP启动配置 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  5. ABP(现代ASP.NET样板开发框架)系列之6、ABP依赖注入

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之6.ABP依赖注入 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  6. ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  7. ABP(现代ASP.NET样板开发框架)系列之9、ABP设置管理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之9.ABP设置管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. ABP(现代ASP.NET样板开发框架)系列之10、ABP领域层——实体

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之10.ABP领域层——实体 ABP是“ASP.NET Boilerplate Project (ASP.NET样板 ...

  9. ABP(现代ASP.NET样板开发框架)系列之11、ABP领域层——仓储(Repositories)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之11.ABP领域层——仓储(Repositories) ABP是“ASP.NET Boilerplate Proj ...

随机推荐

  1. DropDownList 获取不了选择的值 这种错误

    有时候做项目的时候 发现DropDownList 获取不了选择的值 这个原因很可能是 你初始化DropDownList的时候 没有进行 ispostback的判断 导致提交的时候 又初始化了一次... ...

  2. Javascript sleep 函数

    此函数仅适合在10秒内 sleep(5) 超过10秒CPU 会吃不消 <script type="text/javascript"> function sleep(se ...

  3. Django 源码小剖: Django ORM 查询管理器

    ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...

  4. SQL Server如何启用xp_cmdshell组件

    [错误描述]: SQL Server阻止了对组件‘xp_cmdshell’的过程‘sys.xp_cmdshell’的访问.因为此组件已作为此服务嚣安全配置的一部分而被关闭.系统管理员可以通过使用sp_ ...

  5. Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI

    WebApi写好之后,在线帮助文档以及能够在线调试的工具是专业化的表现,而Swagger毫无疑问是做Docs的最佳工具,自动生成每个Controller的接口说明,自动将参数解析成json,并且能够在 ...

  6. 本博客停止更新,移至purecpp.org

    声明:本博客停止更新,迁移至C++开源社区purecpp.org, 欢迎持续关注!

  7. URL 学习总结

    1.绝对路径(以"/"斜线开头的路径,代表相对于当前Web应用): a)地址给服务器用,web应用名称可以省略. 请求包含:request.getRequestDispatcher ...

  8. RESTFUL接口

    原文地址:http://kb.cnblogs.com/page/512047/ 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者 ...

  9. Qt编写自定义控件二动画按钮

    现在的web发展越来越快,很多流行的布局样式,都是从web开始的,写惯了Qt widgets 项目,很多时候想改进一下现有的人机交互,尤其是在现有的按钮上加一些动画的效果,例如鼠标移上去变大,移开还原 ...

  10. JRE 1.8.0_65/66 Certified with Oracle E-Business Suite

    Java Runtime Environment 1.8.0_65 (a.k.a. JRE 8u65-b17) and JRE 1.8.0_66 (8u66-b17) and later update ...