电竞比分网-中国电竞赛事及体育赛事平台

分享

IOC/AOP隨筆目錄

 nikybook 2015-09-08

       在當(dāng)前軟件開發(fā)OO設(shè)計(jì)中,面對(duì)軟件需求的各種潛在變化,我們可能會(huì)采用領(lǐng)域驅(qū)動(dòng)開發(fā),把我們的各個(gè)業(yè)務(wù)邏輯分層次隔離解除耦合,這就出現(xiàn)了N層架構(gòu)(這面值得是邏輯上的分層,當(dāng)然我們的邏輯分層層次需要比物理架構(gòu)層次多),這樣將會(huì)使得我們的軟件能夠適應(yīng)更多的需求變化。關(guān)于領(lǐng)域驅(qū)動(dòng)開發(fā)的實(shí)例網(wǎng)上都很多,不得不推薦的是微軟開源實(shí)例項(xiàng)目的NLayerApp:http://microsoftnlayerapp./

      然而在于我們的邏輯分層的每一層次之間的耦合度解耦也是一個(gè)常見的問題.這樣在層次的變化中我們需要實(shí)現(xiàn)不變更服務(wù)層次,這是我們的設(shè)計(jì)必須依賴于不變接口(抽象)。對(duì)于分層的接口對(duì)象創(chuàng)建我們當(dāng)前流程的解決方案是IOC框架,負(fù)責(zé)不變對(duì)象的創(chuàng)建組合,當(dāng)下流行的IOC框架有:Autofac,Castle Windsor,UnitySpring.NET,StructureMap,Ninject,當(dāng)然這么多IOC框架供我們選擇。我本人只了解 Castle Windsor,Unity,更喜歡Unity這套微軟自身的輕量級(jí)ioc框架。關(guān)于IOC框架的測(cè)試園友Leepy有測(cè)試各大主流.Net的IOC框架性能測(cè)試比較。

      另外我還想說的是我們的業(yè)務(wù)處理中有很多共性,并非業(yè)務(wù)本身的,比如權(quán)限,日志,緩存等功能模塊,如果我們每次都重復(fù)將是一個(gè)巨大的工作量和難以維護(hù)的成本。應(yīng)運(yùn)而生的AOP框架,就是一種從業(yè)務(wù)縱向切入,對(duì)目標(biāo)實(shí)現(xiàn)權(quán)限,日志等。對(duì)于AOP的實(shí)現(xiàn)主流框架主要有透明代理和靜態(tài)植入兩大類。Castle和EL中的PIAB就是一種透明代理的實(shí)現(xiàn)方式,PostSharp則是編譯時(shí)靜態(tài)注入框架。其他框架還有SetPoint,NAopNKalore。

      今天整理一下本博客匯總關(guān)于IOC,AOP的隨筆,忘大家不辭吝嗇多多指教,共同進(jìn)步。

一:IOC目錄:

  1. IOC應(yīng)用篇:
    1. 利用Attribute簡(jiǎn)化Unity框架IOC注入
    2. AOP之PostSharp7-解決IOC 不能直接new問題,簡(jiǎn)化IOC開發(fā)和IOC對(duì)象LazyLoad
    3. WCF利用企業(yè)庫(kù)Unity框架的IOC層次解耦

二:AOP目錄:

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

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多