天天看點

Unity學習系列一簡介

一、簡介

Unity的目标是為了提升"依賴注入"的思想,去建立更加松耦合的系統.patterns & practices 小組在那個時候實作DI的方式和我們現在認為的DI有所不同,DI不是單一的可重複使用的容器,而是應該專門用于正在使用它的系統.

我們使用一個叫做ObjectBuilder的類庫(一個用于建立DI容器的架構),是以,理論上我們可以為我們的每一個項目建立一個容器,這正是我們想要做的.理想很美好,但是它工作的并不是很好,ObjectBuilder是一個高度解耦、抽象的,使用它必須手動組裝它,再加上缺乏文檔,花了很多時間了解需要去哪裡,以及如何将其整合到有用的東西中去,而這些時間花在了編寫、調試和優化DI容器上,而不是在實際的項目需求上工作上。有趣的是當有人想要引用CAB(它使用了一個基于一個版本的DI容器ObjectBuilder)和企業圖書館(基于不同版本的ObjectBuilder)在同一個項目中。內建将會變得非常困難。光光在同一個項目中處理兩個不同的版本ObjectBuilder,也是一個不小的挑戰。還有一次性的容器導緻了一次性的可擴充性和內建接口:在企業庫中沒有用的在CAB中也沒有用。

當我們在Web用戶端軟體工廠項目的末尾又花了一個星期的時間修複了CWAB中的一堆bug:(這些bug和在CAB中的非常相似),是以為什麼不用一個容器實作,代替重複的實作一個又一個的容器。

由此産生的挫折感使人們團結起來。EnterpriseLibrary 4.0團隊将依賴注入應用程式塊(最初稱為Unity)放在産品待辦事項上。,我們對于Unity這個項目的目标很簡單,。首先,向我們的社群引入并推廣依賴注入的概念,不受許多低級别實作細節的限制。第二,有一個具有易于使用API的核心容器,我們、Microsoft的其他團隊或任何組織不願意使用可用的開源項目的人(無論出于什麼原因)都可以使用這些API。第三,有多種擴充機制,這樣任何人都可以添加新功能,而不必打開核心代碼。

在我看來,Unity在所有這些目标上都取得了成功。我對我們如何影響.NET開發人員社群感到特别自豪。Unity很快成為.NET生态系統中最常用的DI容器之一.更重要的是,DI不再是"專家技術",而是主流的一部分,甚至是微軟自家的架構(ASP. NET MVC and WebAPI)均來自DI的支援.你得知道,一個概念(依賴注入)變成一個核心觀點,Unity發揮了很大的作用.

二、使用Unity的條件

1、支援的架構:x86和x64.·

2、作業系統:Windows 8、Windows 7、Windows Server 2008 R2、Windows Server 2012。·

3、支援的.NET架構:Microsoft.NET Framework 4.5、.NET for Windows Store應用程式(以前稱為WinRT)。·

4、支援的開發環境:MicrosoftVisualStudio 2012、專業版、終極版或速成版。

可以使用VisualStudio中的NuGet包管理器在項目中安裝統一程式集。

繼續閱讀