05 2017 档案

摘要:数据过滤器 介绍 预定义过滤器 ISoftDelete 何时使用? IMustHaveTenant 何时使用? IMayHaveTenant 何时使用 禁用过滤器 关于using语句 关于多租户 全局禁用过滤器 启用过滤器 设置过滤器参数 SetTenantId方法 ORM集成 Entity Fra 阅读全文
posted @ 2017-05-22 23:59 DeepX 阅读(753) 评论(0) 推荐(0)
摘要:领域事件(事件总线) 事件总线 注入IEventBus 获取默认实例 定义事件 预定义事件 处理异常 实体更改 触发事件 处理事件 处理基础事件 处理者异常 处理多个事件 注册处理者 自动 手动 取消注册 注入IEventBus 获取默认实例 预定义事件 处理异常 实体更改 处理异常 实体更改 处理 阅读全文
posted @ 2017-05-18 23:25 DeepX 阅读(1416) 评论(0) 推荐(0)
摘要:工作单元 介绍 ABP中的连接和事务管理 传统的工作单元方法 控制工作单元 UnitOfWork特性 IUnitOfWorkManager 工作单元详情 禁用工作单元 无事务工作单元 一个工作单元方法调用另一个 工作单元范围 自动保存更改 IRepository.GetAll()方法 工作单元特性限 阅读全文
posted @ 2017-05-17 22:42 DeepX 阅读(658) 评论(0) 推荐(0)
摘要:规约 介绍 示例 创建规范类 使用仓储规约 组合规约 讨论 什么时候使用? 什么时候不使用? 示例 什么时候使用? 什么时候不使用? 介绍 规约模式是一种特别的软件设计模式,通过使用布尔逻辑将业务规则链接起来重新调配业务规则。(维基百科)。 尤其是,它通常用来为实体或其他业务对象定义可复用的过滤器。 阅读全文
posted @ 2017-05-15 23:15 DeepX 阅读(585) 评论(0) 推荐(0)
摘要:领域服务 介绍 IDomainService接口和DomainService类 示例 创建接口 服务实现 使用应用服务 一些探讨 为什么只有应用服务? 如何强制使用领域服务? 创建接口 服务实现 使用应用服务 为什么只有应用服务? 如何强制使用领域服务? 介绍 领域服务(或者在DDD中单纯的服务)用 阅读全文
posted @ 2017-05-10 23:34 DeepX 阅读(617) 评论(0) 推荐(0)
摘要:仓储 默认仓储 自定义仓储 自定义仓储接口 自定义仓储实现 基础仓储方法管理数据库连接 查询 获取单个实体 获取实体列表 关于IQueryable 自定义返回值 插入 更新 删除 其他 关于异步方法 管理数据库连接 仓储生命周期 仓储最佳实践 自定义仓储接口 自定义仓储实现 查询 获取单个实体 获取 阅读全文
posted @ 2017-05-09 22:35 DeepX 阅读(693) 评论(0) 推荐(0)
摘要:值对象 介绍 值对象基类 最佳实践 介绍 "展现领域描述性层面且没有概念性身份的对象称之为值对象。"(Eric Evans)。 和实体相反,实体有身份标示(Id),值对象没有身份标示。如果两个实体的身份标示是不同的,那么就认为他们是不同的对象/实体,即使他们的所有属性都是一样的。考虑两个不同的人有相 阅读全文
posted @ 2017-05-06 22:46 DeepX 阅读(488) 评论(0) 推荐(0)
摘要:实体 实体类 聚合根类 领域事件 常规接口 审计 软删除 激活/失活实体 实体改变事件 IEntity接口 领域事件 审计 软删除 激活/失活实体 实体是DDD(领域驱动设计)的核心概念之一。Eric Evans描述它为"An object that is not fundamentally def 阅读全文
posted @ 2017-05-05 22:18 DeepX 阅读(2247) 评论(2) 推荐(1)
摘要:对象到对象的映射 介绍 IObjectMapper接口 AutoMapper集成 安装 创建映射 自动映射属性 自定义映射 MapTo扩展方法 单元测试 预定义映射 LocalizeableString->String 注入IMapper 安装 创建映射 自动映射属性 自定义映射 MapTo扩展方法 阅读全文
posted @ 2017-05-04 22:02 DeepX 阅读(767) 评论(0) 推荐(0)
摘要:定时 介绍 时钟 客户端 时区 客户端 Binders和Converters 客户端 客户端 介绍 一些应用只针对一个时区,而其他的一些已用则有许多不同的时区。为了满足这样的需求和集中的时间操作,Abp提供了时间操作的通用基础设施。 时钟 Clocks是用来操作DateTime值的主要方法。它定义了 阅读全文
posted @ 2017-05-03 21:56 DeepX 阅读(721) 评论(0) 推荐(0)
摘要:设置管理 介绍 关于 ISettingStore 定义设置 设置范围 重写设置定义 获取设置值 服务端 客户端 更改设置 关于缓存 关于 ISettingStore 设置范围 重写设置定义 服务端 客户端 介绍 每个应用都需要存储设置,并且在应用的某些地方需要使用这些设置。ABP提供了一个强大的在服 阅读全文
posted @ 2017-05-03 21:15 DeepX 阅读(425) 评论(0) 推荐(0)
摘要:OWIN集成 安装 使用 如果在应用程序里既使用ASP.NET MVC也使用ASP.NET Web API,需要在工程里安装Abp.Owin包。 安装 添加Abp.Owin包到主工程里(一般是web工程)。 Install-Package Abp.Owin 使用 使用 在OWIN的Startup文件 阅读全文
posted @ 2017-05-01 21:56 DeepX 阅读(681) 评论(0) 推荐(0)
摘要:多租户 什么是多租户? 数据库和部署架构 多部署-多数据库 单部署-多数据库 单部署-单数据库 单部署-混合数据库 多部署-单/多/混合数据库 ABP的多租户 启用多租户 租主和租户 会话 决定当前租户 租户仓库 数据过滤器 IMustHaveTenant Interface IMayHaveTen 阅读全文
posted @ 2017-05-01 21:54 DeepX 阅读(1211) 评论(0) 推荐(0)
摘要:启动配置 配置ABP 替换内置服务 配置模块 创建模块配置 替换内置服务 ABP提供了基础设施和模型在启动的时候对它及模块进行配置。 配置ABP 在模块的PreInitialize事件中配置ABP。示例配置如下: public class SimpleTaskSystemModule : AbpMo 阅读全文
posted @ 2017-05-01 21:53 DeepX 阅读(727) 评论(0) 推荐(0)
摘要:ABP模块系统 介绍 模块定义 生命周期方法 PreInitialize Initialize PostInitialize Shutdown 模块依赖 插件系统 ASP.NET Core ASP.NET MVC,Web API 插件中的控制器 附加程序集 自定义模块系统 模块配置 模块声明周期 P 阅读全文
posted @ 2017-05-01 21:52 DeepX 阅读(905) 评论(0) 推荐(0)
摘要:N层架构 介绍 ABP架构 其他(通用) 领域层 应用层 基础设施层 网络和展现层 其他 总结 领域层 应用层 基础设施层 网络和展现层 介绍 应用程序代码库的分层架构是被广泛认可的可以减少程序复杂度、提高代码复用率的技术。为了实现分层架构,ABP遵循领域驱动设计的原则。在领域驱动设计中有四个基本层 阅读全文
posted @ 2017-05-01 21:50 DeepX 阅读(1063) 评论(2) 推荐(1)
摘要:介绍 介绍 快速示例 其他 启动模板 如何使用 介绍 我们通常会根据不同的需求来创建不同的应用程序。但是对于一些通用相似的结构总是一遍又一遍的实现,至少在某种程度上是这样的。常见的通用模块如授权、验证、异常处理、日志、本地化、数据库连接管理、设置管理、审计日志。同时,我们也在使用如分层、模块化架构, 阅读全文
posted @ 2017-05-01 21:47 DeepX 阅读(1241) 评论(0) 推荐(0)