[Architect] ABP(现代ASP.NET样板开发框架) 翻译
所有翻译文档,将上传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样板开发框架) 翻译的更多相关文章
- ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证
点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...
- ABP(现代ASP.NET样板开发框架)系列之20、ABP展现层——动态生成WebApi
点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerplate Project (ASP.N ...
- ABP(现代ASP.NET样板开发框架)系列之4、ABP模块系统
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之4.ABP模块系统 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之5、ABP启动配置
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之5.ABP启动配置 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之6、ABP依赖注入
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之6.ABP依赖注入 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之9、ABP设置管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之9.ABP设置管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP(现代ASP.NET样板开发框架)系列之10、ABP领域层——实体
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之10.ABP领域层——实体 ABP是“ASP.NET Boilerplate Project (ASP.NET样板 ...
- ABP(现代ASP.NET样板开发框架)系列之11、ABP领域层——仓储(Repositories)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之11.ABP领域层——仓储(Repositories) ABP是“ASP.NET Boilerplate Proj ...
随机推荐
- 【Theano】安装Theano
http://blog.csdn.net/niuwei22007/article/details/47684673 http://blog.csdn.net/m624197265/article/de ...
- 【css】ie6 和 ie7 下 position 与 overflow 的问题
前几天做的项目中碰到这样一个问题,在 ie6 和 ie7 下,给父元素设置 overflow:hidden 不起作用无法隐藏,后来发现是子元素中有设置 position:relative,如果子元素删 ...
- VirtualBox的四种网络连接方式
VirtualBox中有4中网络连接方式:a. NAT 网络地址转换模式(Network Address Translation)b. Bridged ...
- [JWT] AngularJS Authentication with JWT
Set up server for JWT Authentication 1. require express 2. require faker: If faker is not install ye ...
- mac os x 安装mysql遇到 Access denied for user 'root'@'localhost' (using password: YES)的解决方法
最近把开发环境迁移到macbook上,装上mysql启动之后,连接,总是报这个错误.5.5的版本默认密码为空.其实这个错误是root未授权的问题.解决方法如下: 未给localhost root用户授 ...
- struts2:异常处理
Struts2框架提供了自己的异常处理机制,只需要在struts.xml文件中配置异常处理即可,而不需要在Action方法中来捕捉异常. 传统方法 public String execute() th ...
- 分布式并行数据库将在OLTP 领域促进去“Oracle”
原文链接:http://www.csdn.net/article/2015-09-11/2825678 摘要:本文全面介绍了分布式数据库和它的设计理念,以及分布式数据库的优势和应用场景,从而引出OLT ...
- Hadoop 2.4.1 登录认证配置小结
1.简单模式 这种模式,配置简单,使用简单. core-site.xml添加 <property> <name>hadoop.security.authorization< ...
- 所有博客已经迁移到个人空间 blog.scjia.cc
所有博客已经迁移到个人空间 blog.scjia.cc
- TIB自动化测试快讯 - Appium手机自动化测试学习资料精选
TIB自动化测试快讯 - Appium手机自动化测试学习资料精选 Appium+Android+Javahttp://automationqa.com/forum.php?mod=viewthre ...