Unity Application Block 與 ASP.NET MVC 學習資源整理

Inversion of control (IoC) 與 Dependency injection (DI) 是我接觸 ASP.NET MVC 之後才注意到的一門學問,對其概念十分著迷,但由於中文資訊非常少且概念也有點抽象,所以遲遲沒有上手。上個週末花了不少時間研讀相關資料,並著手寫 Code 練習套用在 ASP.NET MVC 專案中,也算小有心得,特別將一些我看過的文章、資料整理一下,方便有心學習的人。

Unity Application Block 是微軟 Enterprise Library 中多個 Application Block 中的一部份,專注於實做 Dependency injection 容器,並支援 constructor, property, and method call 注入,目前實做 DI 的函示庫很多,但由於微軟的文件資源較為豐富,所以我就以 Unity 為入門學習的套件。

由於 DI ( IoC ) 算是個設計樣式 (Design Pattern),所以如果日後想要切換不同的 DI Framework 的話其實也不會太困難,因為觀念都是相通的,只要能理解運作的基本觀念,並且至少熟悉一套 DI Framework 就不會有太大問題,本文最後面有 各家實做的 Dependency Injection 框架比較 供各位參考。

以下是我研讀過的資料,或許對想學習 Unity / DI / IoC 的人來說會有幫助:

觀念建立

 

入門教學

 

官方網站

 

相關下載

 

範例程式

 

相關文章

 

部落格

 

各家實做的 Dependency Injection 框架比較

  

此文章由 will 發表於 2009/9/28 上午 12:26:55

永久連結 | 評論 (6) | 此文章的RSSRSS comment feed |

分類: ASP.NET MVC

標籤: , , , ,

收藏:

相關文章

評論

九月 28. 2009 10:40

dan0605

前陣子看到DI,Ioc是StructureMap這套,JAVA的spring也是DI,在.net上的DI,Ioc的文件真的比較少,對岸的比較多一點,我是先看java的spring的說明,才稍稍知道那個概念.但在運用還在感受實際的好處.畢竟寫的東西好像要大延展的機會還真不多...@@

謝謝保哥分享這些資料!

dan0605

九月 28. 2009 15:23

ChrisTorng

請問一下 MEF (Managed Extensibility Framework http://www.codeplex.com/MEF ) 如何呢? 它跟 Unity 有重疊嗎? 還是相關但不同的東西? 我又找到一個 MEF Unity Integration ( mefcontrib.codeplex.com/.../View.aspx )。

ChrisTorng tw

九月 28. 2009 15:27

ChrisTorng

剛發現線上預覽時, mefcontrib.codeplex.com/.../View.aspx 中的 % 會中斷超連結,但發表出去後 % 處並不會中斷...一個小小的問題...

ChrisTorng tw

九月 28. 2009 16:10

Will 保哥

ChrisTorng: 原本發表出去後會中斷連結,是我另外修好的,剛才發現預覽也有問題。 ^_^

Will 保哥 tw

九月 28. 2009 16:15

Will 保哥

ChrisTorng: MEF 與 Unity 在概念上完全是不同的。

MEF 專注在應用程式的「延展性」,讓你可以方便的擴充原有應用程式的功能。例如你要讓你的應用程式可以隨時外掛 Add-ins 時,就可以利用 MEF 框架的特性。

Unity 專注於降低程式的「耦合性」,讓你降低物件之間的耦合性,避免「義大利麵」式的程式碼。

Will 保哥 tw

九月 30. 2009 00:08

91

ya...馬丁花真的是個經典的偉人啊....

每個他講出來的概念,感覺都經過千淬萬煉過的。
沒碰到那種地獄的需求,不會感受到它的好處...甚至覺得麻煩。

但對技術人員開眼的幫助真的很大,
那些概念要自己想,可能要想個一甲子才想的出來了。

最後還是謝謝保哥survey了這麼多資源,整理出來的知識讓我受用無窮啊!

91 tw

新增評論


(將顯示您的Gravatar圖示)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



線上預覽

三月 12. 2010 18:21