所有翻译文档,将上传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. C#数据库绑定

    .Net对数据库的绑定 using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...

  2. EF中一对多的关系中,用单字段保存ID拼接字符串

    model.SubjectTerms = model.SelectedSubjectTerm.Trim(',').Split(',').ToList().Select(x => new Subj ...

  3. android 左右翻页

    布局: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android ...

  4. 统计Codec RAM和ROM方法

    有二种方法,你试一下这个也是我2010-03-29工作日志      2010-03-29: 1) How to accurately get the program memory/Data RAM/ ...

  5. 我的常用mixin 之 lines

    /** * 最多显示 $lineCount 行 * lines * * example: * @include lines; * @include lines(3); */ @mixin lines( ...

  6. iOS开发备忘录:实现多StoryBoard之间跳转

    iOS项目中可以将同一业务流程的页面归置到一个StoryBoard中,项目中必然会包含多个StroryBoard,可以利用跳转,实现项目的不同业务流程页面间的跳转切换. 实现思路: 1,项目(Proj ...

  7. 何为.Net Remoting【转】

    借助基维百科给它的定义如下: NET Remoting 是微软 .NET Framework 中的一种网络通讯技术,与 XML Web Service 不同的是,它可以使用 SOAP 以外的协定来通讯 ...

  8. Java Collection好文章

    Java Collection好文章 http://my.oschina.net/xiaomaoandhong/blog/78394

  9. Qt实现FlatUI样式(开源)

    对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反而没有扁平 ...

  10. 移动API-restful的设计原则和参考

    移动应用API设计10大技巧 http://jingyan.baidu.com/article/455a9950fd27ffa166277825.html RESTful API 设计指南 http: ...