天天看點

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

Unity 2.x依賴注入(控制反轉)IOC,對于沒有大項目經驗的童鞋來說,這些都是陌生的名詞,甚至有些同學還停留在拉控件的階段。

我們采用的是構造函數注入,運作時注入。

這塊的概念可以算算是本系統最模糊的,大家應該好好了解下,部落格園一位大蝦的 

這裡我不再詳說了。

貼出代碼,告訴大家怎麼做就好了。

在App.Admin建立Library放進去,以後我們要用到的類庫都放到這裡來,除非說明,引用的類庫都是開源的。

App.Core引用Microsoft.Practices.Unity.dll , System.Web.Mvc, System.Web,3個類庫和4.BLL,App.IBLL,App.DAL,App.IDAL 4個類庫

添加以下2個類

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

UnityDependencyResolver.cs

在系統開始運作時候我們就把構造函數注入。是以我們要在Global檔案寫入代碼

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

Global.asax.cs

好了,我們已經把

注入到系統了

由于EF生成的實體模型是擁有事務狀态的,我們一直希望把開銷減少到最低,我們要重新構造SysSample的類

在App.Models建立檔案夾Sys,如非特别說明,Sys代表系統,一個Areas區域對應一個檔案,區域我們以後會用到

App.Models要引用System.ComponentModel.DataAnnotations類庫

為什麼我們要這麼做?不是已經有SysSample了,我們為什麼還要SysSampleModel

我們應該照顧到将來的系統的分布式,BLL層的分發的web服務

我們不應該還在controller還在操作底層,應該轉為

以後的講解中,我們會體會到好處。這裡帶過即可

接下來我們重新寫過IBLL,BLL,controller代碼,DAL,IDAL的代碼是沒問題的,很專注底層

BLL引用Microsoft.Practices.Unity類庫

 修改後的代碼

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

ISysSampleBLL.cs

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

SysSampleBLL.cs

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

SysSampleController.cs

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

View視圖

因為SysSample在BLL層已經被釋放掉了,大家要注意一下是以視圖我們要改下

大家把代碼下載下傳下來,跟我們第5講糟糕的代碼對比一下。我們的代碼優化了,清晰了,構造器能自動釋放記憶體了,無需要執行個體化了。

當然預覽的效果是一樣的

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(6)-Unity 2.x依賴注入by運作時注入[附源碼]

這樣我們的系統實作了注入,我們需要好好了解這一講,後面我們要示範AOP面向方面,對系統日志和異常的處理。

我們有4層異常捕獲,你還怕你的系統在運作中出現不明的錯誤嗎????不過再次之前我們要将我們的系統變得更加有趣先。

下一講,傳回json格式與DataGrid結合,實作分頁。