我的IOC/AOP隨筆目錄

 

     在當前軟件開發OO設計中,面對軟件需求的各種潛在變化,我們可能會採用領域驅動開發,把我們的各個業務邏輯分層次隔離解除耦合,這就出現了N層架構(這面值得是邏輯上的分層,當然我們的邏輯分層層次需要比物理架構層次多),這樣將會使得我們的軟件能夠適應更多的需求變化。關於領域驅動開發的實例網上都很多,不得不推薦的是微軟開源實例項目的NLayerApp:http://microsoftnlayerapp.codeplex.com/

      然而在於我們的邏輯分層的每一層次之間的耦合度解耦也是一個常見的問題.這樣在層次的變化中我們需要實現不變更服務層次,這是我們的設計必須依賴於不變接口(抽象)。對於分層的接口對象創建我們當前流程的解決方案是IOC框架,負責不變對象的創建組合,當下流行的IOC框架有:AutofacCastle WindsorUnitySpring.NETStructureMapNinject,當然這麼多IOC框架供我們選擇。我本人只瞭解 Castle WindsorUnity,更喜歡Unity這套微軟自身的輕量級ioc框架。關於IOC框架的測試園友Leepy有測試各大主流.Net的IOC框架性能測試比較

      另外我還想說的是我們的業務處理中有很多共性,並非業務本身的,比如權限,日誌,緩存等功能模塊,如果我們每次都重複將是一個巨大的工作量和難以維護的成本。應運而生的AOP框架,就是一種從業務縱向切入,對目標實現權限,日誌等。對於AOP的實現主流框架主要有透明代理和靜態植入兩大類。Castle和EL中的PIAB就是一種透明代理的實現方式,PostSharp則是編譯時靜態注入框架。其他框架還有SetPointNAopNKalore

      今天整理一下本博客彙總關於IOC,AOP的隨筆,忘大家不辭吝嗇多多指教,共同進步。

一:IOC目錄:

  1. IOC應用篇:
    1. 利用Attribute簡化Unity框架IOC注入
    2. AOP之PostSharp7-解決IOC 不能直接new問題,簡化IOC開發和IOC對象LazyLoad
    3. WCF利用企業庫Unity框架的IOC層次解耦

二:AOP目錄:

  1. AOP靜態植入原理:
    1. 淺談.NET編譯時注入(C#—>IL)
    2. 淺談VS編譯自定義編譯任務—MSBuild Task(csproject)
    3. 編譯時MSIL注入--實踐Mono Cecil(1)
    4. MSBuild + MSILInect實現編譯時AOP之預覽
    5. MSBuild + MSILInect實現編譯時AOP-改變前後對比
  2. PostSharp AOP:
    1. AOP之PostSharp初見-OnExceptionAspect
    2. AOP之PostSharp2-OnMethodBoundaryAspect
    3. AOP之PostSharp3-MethodInterceptionAspect
    4. AOP之PostSharp4-實現類INotifyPropertyChanged植入
    5. AOP之PostSharp5-LocationInterceptionAspect
    6. AOP之PostSharp6-EventInterceptionAspect(事件異步調用)
    7. AOP之PostSharp7-解決IOC 不能直接new問題,簡化IOC開發和IOC對象LazyLoad
    8. PostSharp - Thread Dispatching(GUI多線程)

    本系列中的隨筆還有繼續,我會不斷更新。忘大家不辭吝嗇多多指教,共同進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章