logo资料库

ABP开发指南(中文版V1.0).pdf

第1页 / 共200页
第2页 / 共200页
第3页 / 共200页
第4页 / 共200页
第5页 / 共200页
第6页 / 共200页
第7页 / 共200页
第8页 / 共200页
资料共200页,剩余部分请下载后查看
ABP Framework入门开发指南
目 录
1 ABP总体介绍
1.1 入门介绍
1.1.1 ABP采用了以下技术
1.1.2 ABP框架已实现了以下特性
1.1.3 ABP适用的场景
1.2 多层架构体系
1.2.1 前言
1.2.2 ABP的体系结构
1.2.3 领域层
1.2.4 应用层
1.2.5 基础设施层
1.2.6 WEB与展现层
1.2.7 其它
1.3 模块系统
1.3.1 ABP模块系统简介
1.3.2 生命期事件
1.3.3 模块依赖
1.3.4 自定义的模块方法
1.4 启动配置
1.4.1 配置ABP
1.4.2 配置模块
1.4.3 为一个模块创建配置
2 ABP公共结构
2.1 ABP依赖注入
2.1.1 传统方式的问题
2.1.2 解决方案
2.1.3 依赖注入框架
2.1.4 ABP依赖注入的基础结构
2.1.5 附件
2.2 ABP会话管理
2.2.1 简介
2.2.2 注入会话
2.2.3 使用会话属性
2.3 ABP日志管理
2.3.1 服务器端
2.3.2 客户端
2.4 ABP设置管理
2.4.1 介绍
2.4.2 定义设置
2.4.3 设置范围
2.4.4 获取设置值
2.4.5 更改设置
2.4.6 关于缓存
3 ABP领域层
3.1 ABP领域层—实体
3.1.1 实体类
3.1.2 接口约定
3.1.3 IEntity接口
3.2 ABP领域层—仓储
3.2.1 IRepository接口
3.2.2 仓储的实现
3.2.3 管理数据库连接
3.2.4 仓储的生命周期
3.2.5 仓储的最佳实践
3.3 ABP领域层—工作单元
3.3.1 通用连接和事务管理方法
3.3.2 ABP的连接和事务管理
3.3.3 工作单元
3.3.4 选项
3.3.5 方法
3.3.6 事件
3.4 ABP领域层—数据过滤器
3.4.1 介绍
3.4.2 预定义过滤器
3.4.3 禁用过滤器
3.4.4 启用过滤器
3.4.5 设定过滤器参数
3.4.6 自定义过滤器
3.4.7 其它对象关系映射工具
3.5 ABP领域层—领域事件
3.5.1 事件总线
3.5.2 定义事件
3.5.3 触发事件
3.5.4 事件处理
3.5.5 注册处理器
3.5.6 取消注册事件
4 ABP应用层
4.1 ABP应用层—应用服务
4.1.1 IApplicationService接口
4.1.2 应用服务类型
4.1.3 工作单元
4.1.4 应用服务的生命周期
4.2 ABP应用层—数据传输对象
4.2.1 数据传输对象的作用
4.2.2 DTO 约定 & 验证
4.2.3 DTO和实体间的自动映射
4.2.4 辅助接口和类型
4.3 ABP应用层—DTO有效性验证
4.3.1 使用数据注解
4.3.2 自定义检验
4.3.3 设置缺省值
4.4 ABP应用层—权限认证
4.4.1 定义权限
4.4.2 检查权限
4.5 ABP应用层—审计日志
4.5.1 配置
4.5.2 通过属性来启用和禁用审计日志
4.5.3 说明
5 ABP表现层
5.1 ABP展现层—动态WebApi层
5.1.1 建立动态web api 控制器
5.1.2 使用动态js代理
5.2 ABP展现层—本地化
5.2.1 程序语言
5.2.2 本地化源文件
5.2.3 获得一个本地化配置文件
5.2.4 总结
5.3 ABP展现层—Javascript函数库
5.3.1 AJAX
5.3.2 通知
5.3.3 消息
5.3.4 用户界面的繁忙提示
5.3.5 Js日志接口
5.3.6 Javascript公共方法
5.4 ABP展现层—导航栏
5.4.1 创建菜单
5.4.2 显示菜单
5.5 ABP展现层—异常处理
5.5.1 开启错误处理
5.5.2 非Ajax请求
5.5.3 AJAX请求
5.5.4 异常事件
5.6 ABP展现层—嵌入资源文件
6 ABP基础设施层
6.1 ABP基础设施层—集成Entity Framework
6.1.1 Nuget包
6.1.2 创建DbContext
6.1.3 仓储
6.2 ABP基础设施层—集成NHibernate
6.2.1 Nuget包
6.2.2 配置
6.2.3 仓储实现
7 ABP实例一:ASP.NET Boilerplate
7.1 引言
7.2 什么是ASP.Net Boilerplate?
7.3 ABP不适用于那些场合?
7.4 开始
7.5 使用模板创建空的网站应用程序
7.6 领域层
7.6.1 实体-Entities
7.6.2 仓储-Repository
7.6.3 关于命名空间
7.7 基础设施层
7.7.1 数据库迁移
7.7.2 实体映射
7.7.3 仓储实现
7.8 应用层
7.8.1 应用服务及数据传输对象
7.8.2 DTO验证
7.8.3 动态Web API控制器
7.9 表现层
7.9.1 单页应用
7.9.2 视图和视图模型
7.9.3 本地化
7.9.4 JavaScript API
7.10 更多
7.10.1 模块系统
7.10.2 依赖注入和约定
7.11 结论
8 ABP实例二:单页面网站应用程序
8.1 简介
8.2 基于Abp创建应用程序
8.3 创建实体
8.4 创建DbContext
8.5 创建Database Migrations
8.6 定义仓储
8.7 实现仓储
8.8 构建应用程序服务
8.9 验证
8.10 异常处理
8.11 构建Web API 服务
8.12 开发单页面应用(SPA)
8.13 本地化
ABP Framework 入门开发指南 领域驱动设计(DDD)红宝书 修订版本号:1.0.0.0 ABP 框架中国小组(ABPFrameWorkGroup)@版权所有 2015-06-11
ABP Framework 入门开发指南 序 言 天道 该开发指南基于 ABP Framework 官方文档,由 ABP 框架中国小组(ABPFrameWorkGroup) 翻译。ABP 框架中国小组在 Github 的地址为:https://github.com/ABPFrameWorkGroup, 大家可以在该地址下载最新的翻译文档并加入讨论。 以后,最新的 ABPFrameWork 档,ABPFrameWork 实例教程,以及代码都通过 Github 的 ABP 框架中国小组(ABPFrameWorkGroup)发布,请大家关注。 ABP 官方文档翻译征集启动以来,得到了大家的热烈响应,先后共有 10 多名群友参与了 翻译,目前翻译工作已经安排完毕,再次感谢广大群友的热烈支持。毫无疑问,该开发指南的发 布是一次团体智慧和协作的结晶,是”ABP 框架中国小组”共同努力的成果。我们应当感谢他们 的默默付出,感谢他们在这个酷热的夏天依旧能够挥洒着汗水辛苦的工作。 此次的翻译工作完全是个人自主行为,旨在帮助那些学习.NET 架构和研究领域驱动设计 (DDD)的开发者们。我们有理由相信,通过学习官方文档并结合 ABP 的源码,大家的.NET 水平 必定有所提高。 该文档不仅是 ABP 的开发指南,也是.NET 架构设计的一个优秀参考范本,指南中提及的 各种封装和技术实现,也可以很方便的集成到自己的项目中去。因此,这里推荐大家在研究源码 的时候,遇到问题可以首先参考一下这本指南。  关于此次翻译的标准如下: (1) 保留了原文的大部分关键词,这样方便大家以后学习这些常见词汇。 (2) 翻译的人称有第一人称和第二人称,由于时间关系,来不及统一。我个人倾向于第一人 称,因此对部分群友的翻译做了调整。 (3) 对部分翻译的语法做了调整,并且更加符合中国人的习惯。 (4) 翻译总体上保留了原文的风格,大家可以对比一下原文,这不失为一个学习英语的最佳 实践。 (5) 对于常见词汇,翻译统一了标准:如,derived 翻译为派生,be used to 翻译为“调用” 而不是“被用来”,implement 翻译为实现,等等。这里不在叙述。 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0
ABP Framework 入门开发指南  关于 ABP 快速开发框架及实战: (1) 接下来 ABP 群会推出实例演示视频以及在线培训等。 (2)此外会根据大家的使用情况推出集成权限、用户、角色的基本开发框架。 (3)针对企业的开发者,我们将会推出高级版开发框架。 欢迎大家关注群主(上海 -阳铭)的博客:http://www.cnblogs.com/mienreal ABP 架构设计交流群:134710707 ABP 框架中国小组(ABPFrameWorkGroup)成员如下(排名不分先后,随机排列):  山东-李伟 303283209  台灣-小張 2987853943  厦门-浩歌 385650059  深圳-Carl 280141563  冰封 121087772  NoZero 3921342  南京-菜刀 252900664  深圳-Leo 254213048  成都-乐忧 68336713  上海-半冷 562758404  上海-阳铭 614573519  东莞-天道 1832339824 总排版:北京-北北 34665992 总审核:上海-阳铭 614573519 总编辑:东莞-天道 1832339824 由于个人技术水平和英文水平也是有限的,因此错误在所难免。希望大家多多指正。有错误 或其他疑问的,请联系天道:1832339824@qq.com 东莞-天道 于 2015 年 6 月 13 日星期六晚 20 点 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0
ABP Framework 入门开发指南 目 录 1 ABP 总体介绍 .............................................................................................. 1 1.1 入门介绍 ............................................................................................................................. 1 1.1.1 ABP 采用了以下技术 ............................................................................................... 2 1.1.2 ABP 框架已实现了以下特性 .................................................................................... 2 1.1.3 ABP 适用的场景 ...................................................................................................... 4 1.2 多层架构体系 ...................................................................................................................... 4 1.2.1 前言 ........................................................................................................................ 4 1.2.2 ABP 的体系结构 ...................................................................................................... 5 1.2.3 领域层 ..................................................................................................................... 5 1.2.4 应用层 ..................................................................................................................... 6 1.2.5 基础设施层 .............................................................................................................. 6 1.2.6 WEB 与展现层 ......................................................................................................... 6 1.2.7 其它 ........................................................................................................................ 7 1.3 模块系统 ............................................................................................................................. 7 1.3.1 ABP 模块系统简介 ................................................................................................... 7 1.3.2 生命期事件 .............................................................................................................. 8 1.3.3 模块依赖 ................................................................................................................. 9 1.3.4 自定义的模块方法 ................................................................................................. 10 1.4 启动配置 ........................................................................................................................... 11 1.4.1 配置 ABP .............................................................................................................. 11 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0 i
ABP Framework 入门开发指南 1.4.2 配置模块 ............................................................................................................... 13 1.4.3 为一个模块创建配置 ............................................................................................. 13 2 ABP 公共结构 ............................................................................................ 16 2.1 ABP 依赖注入 .................................................................................................................... 16 2.1.1 传统方式的问题 .................................................................................................... 16 2.1.2 解决方案 ............................................................................................................... 18 2.1.3 依赖注入框架 ........................................................................................................ 20 2.1.4 ABP 依赖注入的基础结构 ...................................................................................... 21 2.1.5 附件 ...................................................................................................................... 26 2.2 ABP 会话管理 .................................................................................................................... 26 2.2.1 简介 ...................................................................................................................... 26 2.2.2 注入会话 ............................................................................................................... 27 2.2.3 使用会话属性 ........................................................................................................ 27 2.3 ABP 日志管理 .................................................................................................................... 28 2.3.1 服务器端 ............................................................................................................... 28 2.3.2 客户端 ................................................................................................................... 32 2.4 ABP 设置管理 .................................................................................................................... 32 2.4.1 介绍 ...................................................................................................................... 32 2.4.2 定义设置 ............................................................................................................... 33 2.4.3 设置范围 ............................................................................................................... 34 2.4.4 获取设置值 ............................................................................................................ 35 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0 ii
ABP Framework 入门开发指南 2.4.5 更改设置 ............................................................................................................... 36 2.4.6 关于缓存 ............................................................................................................... 36 3 ABP 领域层................................................................................................ 37 3.1 ABP 领域层—实体 ............................................................................................................ 37 3.1.1 实体类 ................................................................................................................... 37 3.1.2 接口约定 ............................................................................................................... 38 3.1.3 IEntity 接口 ............................................................................................................ 41 3.2 ABP 领域层—仓储 ............................................................................................................ 42 3.2.1 IRepository 接口 .................................................................................................... 42 3.2.2 仓储的实现 ............................................................................................................ 47 3.2.3 管理数据库连接 .................................................................................................... 48 3.2.4 仓储的生命周期 .................................................................................................... 48 3.2.5 仓储的最佳实践 .................................................................................................... 48 3.3 ABP 领域层—工作单元 ..................................................................................................... 49 3.3.1 通用连接和事务管理方法 ...................................................................................... 49 3.3.2 ABP 的连接和事务管理 .......................................................................................... 50 3.3.3 工作单元 ............................................................................................................... 53 3.3.4 选项 ...................................................................................................................... 56 3.3.5 方法 ...................................................................................................................... 57 3.3.6 事件 ...................................................................................................................... 57 3.4 ABP 领域层—数据过滤器 ................................................................................................. 58 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0 iii
ABP Framework 入门开发指南 3.4.1 介绍 ...................................................................................................................... 58 3.4.2 预定义过滤器 ........................................................................................................ 58 3.4.3 禁用过滤器 ............................................................................................................ 60 3.4.4 启用过滤器 ............................................................................................................ 61 3.4.5 设定过滤器参数 .................................................................................................... 62 3.4.6 自定义过滤器 ........................................................................................................ 62 3.4.7 其它对象关系映射工具.......................................................................................... 64 3.5 ABP 领域层—领域事件 ..................................................................................................... 64 3.5.1 事件总线 ............................................................................................................... 64 3.5.2 定义事件 ............................................................................................................... 65 3.5.3 触发事件 ............................................................................................................... 65 3.5.4 事件处理 ............................................................................................................... 66 3.5.5 注册处理器 ............................................................................................................ 68 3.5.6 取消注册事件 ........................................................................................................ 69 4 ABP 应用层................................................................................................ 71 4.1 ABP 应用层—应用服务 ..................................................................................................... 71 4.1.1 IApplicationService 接口 ........................................................................................ 71 4.1.2 应用服务类型 ........................................................................................................ 73 4.1.3 工作单元 ............................................................................................................... 74 4.1.4 应用服务的生命周期 ............................................................................................. 76 4.2 ABP 应用层—数据传输对象 .............................................................................................. 76 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0 iv
ABP Framework 入门开发指南 4.2.1 数据传输对象的作用 ............................................................................................. 76 4.2.2 DTO 约定 & 验证 ................................................................................................. 78 4.2.3 DTO 和实体间的自动映射 ..................................................................................... 80 4.2.4 辅助接口和类型 .................................................................................................... 82 4.3 ABP 应用层—DTO 有效性验证 ......................................................................................... 82 4.3.1 使用数据注解 ........................................................................................................ 83 4.3.2 自定义检验 ............................................................................................................ 84 4.3.3 设置缺省值 ............................................................................................................ 85 4.4 ABP 应用层—权限认证 ..................................................................................................... 86 4.4.1 定义权限 ............................................................................................................... 86 4.4.2 检查权限 ............................................................................................................... 87 4.5 ABP 应用层—审计日志 ..................................................................................................... 90 4.5.1 配置 ...................................................................................................................... 91 4.5.2 通过属性来启用和禁用审计日志 ........................................................................... 92 4.5.3 说明 ...................................................................................................................... 93 5 ABP 表现层................................................................................................ 94 5.1 ABP 展现层—动态 WebApi 层 .......................................................................................... 94 5.1.1 建立动态 web api 控制器 ..................................................................................... 94 5.1.2 使用动态 js 代理 .................................................................................................... 95 5.2 ABP 展现层—本地化 ......................................................................................................... 97 5.2.1 程序语言 ............................................................................................................... 97 ABP 框架中国小组(ABPFrameWorkGroup) 版权所有 | 版本:1.0 v
分享到:
收藏