ABP Source Code Analysis II: Registration and initialization of configuration in ABP
ABP Source Code Analysis three: ABP Module
1.AUTOFAC Unified Event Handling method
It's all about registering events for each type, but if we want to register an event for all types, what's the way to implement it?
(First of all, the Onrelease incident did not find a unified registration method)
We can use RegisterCallback for unified event registration before the builder registration type, see the code:
var builder = new Containerbuilder (); builder. RegisterCallback (CR =>{ //registered event of the following equivalent type onregistered event Cr. Registered + = (sender, EventArgs) = { //onpreparing event eventArgs.ComponentRegistration.Preparing + = ( O, Preparingeventargs) = { }; Onactivating Event eventArgs.ComponentRegistration.Activating + = (o, Activatingeventargs) = { }; Onactivated Event eventArgs.ComponentRegistration.Activated + = (o, Activatedeventargs) = { }; };}) ;//Builder. registertype<...>...//...
AUTOFAC Comprehensive Analysis Series (version: 3.5) –[(recommended): 5. Life cycle Events]
2.AUTOFAC Aop
ASP-based hot-swappable modular Development Framework (ORCHARDNOCMS)--AOP programming
The AOP of the IOC
Castle Dynamic Proxy-2.2
ABP Source Analysis Four: Configuration
ABP Source Analysis Five: ABP initialization of the whole process
ABP Source Code Analysis VI: implementation of Dependency Injection
ABP Source Code Analysis VII: Setting and Mail
ABP Source Code Analysis eight: Logger integration
The attribute injection function in AUTOFAC uses
Orchard Analysis: Logging
ABP Source Analysis IX: Background work tasks
ABP Source Code Analysis Ten: Unit of work
ABP Source Code Analysis 11: Timing
ABP Source Code Analysis 12: Localization
ABP Source Code Analysis 13: Caching Cache implementation
ABP Source Code Analysis 14: The design of entity
ABP Source Code Analysis 15: A practical extension method in ABP
ABP Source Code Analysis 16: Design of DTOs
ABP Source Code Analysis 17: Implementation of DTO automatic check
ABP Source Code Analysis 18: UI Inputs
ABP Source Code Analysis 19: Auditing
ABP Source Code Analysis 20: Applicationservice
ABP Source Code Analysis 21: Feature
ABP Source Code Analysis 22: Navigation
ABP Source Code Analysis 23: Authorization
ABP Source Code Analysis 24: Notification
ABP Source Code Analysis 25: Eventbus
ABP Source Code Analysis 26: Some other features in the core framework
ABP Source Code Analysis 27: Abp.entity Framework
I'll use the Fluent API experience to say that the fluent API is better than the data annotations.
1. Let's take a look at the above code, is not feeling a bit impure, originally a clean class, make a mess. It feels a little disgusting.
2. This may take me to post the code, share the source code to understand, but the use of the EntityFramework Fluent API should be able to understand that configuration and class separation, the responsibility is more single.
3. Configuration and class separation, extensibility, flexibility will be better, you know, entityframework not only support SQL Server, support Oracle,mysql,sqlite and other popular databases, each product configuration may have a slight difference, if the DataAnnotations way to do, then I do not want to re-add the model, the same table design, why add it? Only the configuration is different to add Ah!
4. Do technical architecture, this way package is also better
ABP Source Code Analysis 28: Abp.memorydb
ABP Source Code Analysis 29: Abp.mongodb
ABP Source Code Analysis 30: Abp.rediscache
ABP Source Code Analysis 31: Abp.automapper
ABP Source Code Analysis 32: ABP.SIGNALR
ABP Source Code Analysis 33: Abp.web
ABP Source Code Analysis 34: ABP.WEB.MVC
ABP Source Code Analysis 35: Principle Analysis of dynamic WEBAPI in ABP
ABP Source Code Analysis 36: ABP.WEB.API
ABP Source Code Analysis 37: ABP.Web.Api Script Proxy Api
ABP Source Code Analysis 38: ABP. Web.Api.OData
ABP Source Code Analysis 39: Abp.hangfire
40 immutable
Http://www.cnblogs.com/xuanhun/archive/2013/04/26/3045448.html
41 ABP Theory Learning multi-tenancy
Http://www.cnblogs.com/farb/p/ABPMultiTenancy.html
Entityframework.dynamicfilters
42 Asynchronous lock
Implementing an asynchronous lock using Nito.asyncex
43 CallContext
How to implement the unified management of context data [provide source code download]
CallContext and multithreading
Take a simple look at the source code of ThreadPool and the other way to see the threads Pass value
Overview of frame design knowledge points (notes)