本节目录 原理介绍 Abp源码分析 代码实现 原理介绍 事件总线大致原理: (1)       在事件总线内部维护着一个事件与事件处理程序相映射的字典. (2)       利用反射,事件总线会将实现了IEventHandler的处理程序与相应事件关联到一起,相当于实现了事件处理程序对事件的订阅. (3)       当发布事件时,事件总线会从字典中找出相应的事件处理程序,然后利用反射去调用事件处理程序中的方法. Abp源码分析 1.AbpKernelModule的Initialize方法 2.…
本节目录 介绍 分析Abp源码 实现UOW 介绍 UOW(全称UnitOfWork)是指工作单元. 在Abp中,工作单元对于仓储和应用服务方法默认开启.并在一次请求中,共享同一个工作单元. 同时在Abp中,不仅支持同一个数据库连接,还支持事务处理. 分析Abp源码 1.UnitOfWorkRegistrar 2.ComponentRegistered 3.IsConventionalUowClass 4.Intercept 5.PerformSyncUow 实现UOW 定义IUnitOfWork…
本节目录 介绍 DataAnnotations ICustomValidate IShouldNormalize 实现Abp Validation 介绍 Abp中在Application层集成了validation. 直接上代码吧. DataAnnotations 这是微软提供的一套验证框架,只用引用程序集System.ComponentModel.DataAnnotations. 自带的各种特性标签就不说了,默认在MVC中已集成此验证. 这里说下验证方法: static void Main(s…
本节目录 介绍 定义Filter 设置Filter 这是Abp中多租户.软删除.激活\禁用等如此方便的原因 Install-Package EntityFramework.DynamicFilters 定义数据 class DemoDb : DbContext { public DemoDb() : base("Default") { } public IDbSet<Blog> Blogs { get; set; } } interface ISoftDelete { bo…
本节目录 Abp介绍 Abp源码分析 代码实现 Abp介绍 学习了一段时间的Abp,领略了一下前辈的架构.总结还是SOLID,降低耦合性. 虽然从架构上说甚至不依赖于DI框架,但实际上在基础框架中还是有一定的必须依赖Castle Windsor. Abp依靠IOC和AOP实现了大量的自动化. 其中Module设计,是Abp的核心. Abp源码分析 Abp的入口:AbpBootstrapper.Initialize() 此方法中做了各种配置的注册及初始化. 最重要的是AbpModuleManage…
上一篇文章http://blog.csdn.net/crazy__chen/article/details/47425779 和大家一起模仿EventBus的实现机制.和大家一起写出了一个简易的EventBus. 通过这个项目,大家应该对EventBus的实现机理由大致的了解. 建议大家在看这篇文章之前.先读上一篇文章,有助于了解. 本篇文章希望通过对Github上EventBus的源代码.向大家讲些事实上现细节. 网上有非常多讲EventBus架构的文章.我看了以后都认为不大清晰,希望这篇文章…
ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念). ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上…
目录:andorid jar/库源码解析 EventBus: 作用: 用于不同Activity,Service等之间传递消息(数据). 栗子: A页面:onCreate定义   EventBus.getDefault().register(this); onDestroy定义 EventBus.getDefault().unregister(this); 添加public方法,一个Object参数(所有继承与Object的对象),用于接收消息通知. B页面:使用  EventBus.getDef…
本期blog作为EventBus(以下简称EB)学习的始动篇,主要记载了EB的功能.优点.使用方法,内容基于github上的README.md与HOWTO.md. 何为EventBus EB实现了Android上的一种事件分发/接收总线机制,其优点可以概括为以下三条: 简洁:将事件分发者与接收者解耦,代码简单清晰: 快速:使用了反射,而不是在Android上效率低下的注解方式进行实现 轻量级:jar <50k EventBus的使用方法 将EventBus引入到项目中(gradle) compi…
所有翻译文档,将上传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…