框架设计知识点纵览(笔记)

ABP源码分析二:ABP中配置的注册和初始化

ABP源码分析三:ABP Module

1.autofac 统一事件处理方式

上面说的都是为每个类型注册事件,但是如果我们希望为所有类型都注册某一事件,有什么方式来实现呢?

(首先申明,OnRelease事件暂时没找到统一注册的方式)

我们可以在builder注册类型前使用RegisterCallback进行统一事件注册,详见代码:

var builder = new ContainerBuilder();

builder.RegisterCallback(cr =>
{
    // 下面的Registered事件相当类型的OnRegistered事件
    cr.Registered += (sender, eventArgs) =>
    {
        // OnPreparing事件
        eventArgs.ComponentRegistration.Preparing += (o, preparingEventArgs) =>
        {

        };
        // OnActivating事件
        eventArgs.ComponentRegistration.Activating += (o, activatingEventArgs) =>
        {

        };
        // OnActivated事件
        eventArgs.ComponentRegistration.Activated += (o, activatedEventArgs) =>
        {

        };
    };
});

// builder.RegisterType<...>...
// ...

Autofac全面解析系列(版本:3.5) – [使用篇(推荐篇):5.生命周期事件]

 

2.Autofac Aop

基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--AOP编程

拦截器

 Ioc的AOP

Castle Dynamic Proxy - 2.2

 

ABP源码分析四:Configuration

ABP源码分析五:ABP初始化全过程

ABP源码分析六:依赖注入的实现

ABP源码分析七:Setting 以及 Mail

 

ABP源码分析八:Logger集成

Autofac中的属性注入功能使用

Orchard 刨析:Logging

 

ABP源码分析九:后台工作任务

ABP源码分析十:Unit Of Work

ABP源码分析十一:Timing

ABP源码分析十二:本地化

ABP源码分析十三:缓存Cache实现

ABP源码分析十四:Entity的设计

ABP源码分析十五:ABP中的实用扩展方法

ABP源码分析十六:DTO的设计

ABP源码分析十七:DTO 自动校验的实现

ABP源码分析十八:UI Inputs

ABP源码分析十九:Auditing

ABP源码分析二十:ApplicationService

ABP源码分析二十一:Feature

ABP源码分析二十二:Navigation

ABP源码分析二十三:Authorization

ABP 初探 之 权限设计 (前段js如何与后端权限结合)

 

ABP源码分析二十四:Notification

ABP源码分析二十五:EventBus

ABP源码分析二十六:核心框架中的一些其他功能

ABP源码分析二十七:ABP.Entity Framework

我就以我使用Fluent API 经验说说,Fluent API 比 数据注解好的地方。

    1. 大家再看一眼上面代码,是不是感觉有点不纯净了,本来一个干干净净的类,搞得乱乱的。感觉有点恶心。

    2. 这一点可能要后面我贴出代码,分享源代码才理解,不过使用过EntityFramework Fluent API 的应该能够理解到,配置和类分离,职责更加单一。

   3. 配置和类分离,扩展性,灵活性就会更好,大家多知道,EntityFramework 不仅支持Sql Server,支持Oracle,MySql,Sqlite 等这些流行数据库,每种产品配置也许都有细微差别,如果以 DataAnnotations 方式实作,那我岂不是要重新新增模型,一样的表设计,为什么要加呢? 只有配置不同才要加啊! 

  4. 做技术架构,这种方式封装也比较好

 

ABP源码分析二十八:ABP.MemoryDB

ABP源码分析二十九:ABP.MongoDb

ABP源码分析三十:ABP.RedisCache

ABP源码分析三十一:ABP.AutoMapper

ABP源码分析三十二:ABP.SignalR

ABP源码分析三十三:ABP.Web

ABP源码分析三十四:ABP.Web.Mvc

ABP源码分析三十五:ABP中动态WebAPI原理解析

ABP源码分析三十六:ABP.Web.Api

ABP源码分析三十七:ABP.Web.Api Script Proxy API

ABP源码分析三十八: ABP.Web.Api.OData

ABP源码分析三十九:ABP.Hangfire

四十 Immutable

http://www.cnblogs.com/xuanhun/archive/2013/04/26/3045448.html

 

四十一 ABP理论学习之多租户

http://www.cnblogs.com/farb/p/ABPMultiTenancy.html

EntityFramework.DynamicFilters

 

四十二 异步锁

使用Nito.AsyncEx实现异步锁 

ASP.NET 中的 Async/Await 简介

Async/Await异步编程中的最佳做法

 

四十三 CallContext

如何实现对上下文(Context)数据的统一管理 [提供源代码下载]

HttpContext.Current并非无处不在

CallContext和多线程

简单看看ThreadPool的源码以及从中看出线程间传值的另一种方法

posted @ 2016-06-08 17:14  海~~D  阅读(497)  评论(0编辑  收藏  举报