顯示具有 DI/IoC 標籤的文章。 顯示所有文章
顯示具有 DI/IoC 標籤的文章。 顯示所有文章

2013年9月12日 星期四

使用 Unity.MVC4 (Enterprsie Library Unity 2.1) 的進階註冊類別方式

之前曾經有位大家說過使用 Unity bootstrapper for ASP.NET MVC 的進階註冊類別方式:
Unity bootstrapper for ASP.NET MVC 進階註冊類別方式

但因為是使用 Unity 3 的關係才能夠使用那樣的方式,而且還必須是建置在 .NET Framework 4.5 的 ASP.NET MVC 專案才能夠使用,而使用非官方的 Unity + ASP.NET MVC 整合套件「Unity.MVC4」就沒辦法啦!

這一篇將會為各位說明如何在使用 Unity 2.1 的情況下也能做到自動註冊類別的方法。

 


2013年9月9日 星期一

Unity bootstrapper for ASP.NET MVC 進階註冊類別方式

在「ASP.NET MVC 使用 Autofac」這篇文章裡介紹了另一套 IoC Container 「autofac」於 ASP.NET MVC 的使用方式,而且 autofac 以及一些 IoC Container 都有提供進階的註冊類別方式,可以讓我們在註冊類別的時候可以有比較方便的作法,例如:

image

而 Unity 3.0 也有提供類似這樣的註冊類別的方式,接下來就說明如何使用。

 


2013年9月7日 星期六

ASP.NET MVC 使用 Autofac

在這之前有關 IoC Container 已經為各位說明了 Enterprise Library Unity, Simple Injector 這兩種,其中 Enterprise Library 是介紹了第三方所製作的 ASP.NET MVC 與 Unity 整合套件「Unity.MVC」,以及 Enterprise Library 於 6.0 版 Release 時所推出的「Unity bootstrapper for ASP.NET MVC」,除了前面所說的兩種 IoC Container 之外,其實還有很多 IoC Container 也是有許多開發者在使用,各種 IoC Container 都有其優缺點,但也沒有辦法說那一種IoC Container 比較好或比較壞,只有適合不適合的 IoC Container,因為專案與開發者或團隊的因素佔絕大部分。

Autofac 是我第一個接觸的 IoC Container,也應該是比較多人知道或是使用的 IoC Container,Autofac 使用上有很多的優點,再加上官網以及網路上的相關文章、討論也相當多,所以就變成很多人第一個學習或是專案優先採用的 IoC Container,這篇內容一樣是拿「分層架構」的範例程式來做說明,IoC Container 改使用 Autofac,不過 IoC 的概念與內容再其他文章裡有講過,所以就不會講太多理論的內容,直接切入實作。

 


2013年8月15日 星期四

錯誤更正:有關 ASP.NET MVC 分層架構使用 Unity 的 DbContext 處理

2014-12-02 補充說明:
這一系列的文章並不適合初階及中階的開發人員,如果你是程式開發的初學者或是 ASP.NET MVC 初學者,甚至是開發經驗少於兩年的開發人員,請馬上離開此篇文章。

有網友在「ASP.NET MVC 專案分層架構 Part.6 - DI/IoC 使用 Unity.MVC」這篇文章提出了一個問題:

image

一開始我還以為是我的 DbContext 是不是有做了什麼特殊設定還是忘了做什麼設定才會出現這樣的情況,然後我把範例程式給找出來,按照網友所提出的情境做操作,結果還真的如他所說的,當我在執行的網頁上做新刪修查時都不會有問題,資料也會同步,但如果直接對資料做修改後,網頁上面的資料並不會跟著改變,在仔細看過原本的程式之後才恍然大悟,我犯了一個嚴重的低級錯誤才會導致這種資料不一致的狀況,這一篇就是來說明要如何改正這個問題。

有關這個錯誤的文章如下:

ASP.NET MVC 專案分層架構 Part.6 - DI/IoC 使用 Unity.MVC」「ASP.NET MVC 4 使用 Unity bootstrapper for ASP.NET MVC

可以按照此篇文章的作法來修正錯誤。

 


2013年5月19日 星期日

ASP.NET MVC 與 ASP.NET WebForm 使用 Simple Injector 切換選擇不同 Repository 原始碼下載

將前面幾篇有關 Repository 分層以及使用 Simple Injector 的文章作為操作示範的 Solution 給做了整理,將一些程式內容做了點修改,然後為了可以讓下載的人可以開啟 Solution 後就可以執行,所以兩個 Web 專案加入了 LocalDB 的使用,姑且不論程式內容是不是寫得完整,主要是要讓大家了解其實資料存取的分層並不是只有限於 ASP.NET MVC 而已,而且同樣做好的 Repository 也是可以直接給 ASP.NET WebForm 來使用,並沒有所謂 ASP.NET MVC 與 ASP.NET WebForm 的 Repository 必須要分開寫的說法。

有關原始碼下載之後的使用與進階處理,就看文章內容的詳細說明。


2013年5月18日 星期六

ASP.NET WebForm 使用 Simple Injector 選擇不同的 Repository

這一篇也是延續文,主要是延續上一篇「ASP.NET WebForm 使用分層的 Repository 類別庫專案」,而架構一樣沿用之前 ASP.NET MVC - Model 系列文章的 Repository 分層架構,如下:

ASP.NET MVC 的 Model 使用 ADO.NET

ASP.NET MVC 的 Model 使用 Enterprise Library 6 Data Access Application Block

ASP.NET MVC - 使用 Simple Injector 讓 Model 三選一

既然 ASP.NET MVC 可以使用 Simple Injector 選擇不同的資料存取方式,而前面文章也討論過可以將 ASP.NET MVC 所使用的分層讓 ASP.NET WebForm 網站來使用,所以同樣地也可以讓 ASP.NET WebForm 網站透過 Simple Injector 來選擇不同的資料存取方式,而不用去大幅更改到原本的網站程式。

這一篇不打算廢話太多(我哪一篇文章的廢話有少過咧),就請各位仔細看清楚文章的程式內容。

 


2013年5月12日 星期日

ASP.NET MVC - 使用 Simple Injector 讓 Model 三選一

前面兩篇有關 ASP.NET MVC Model 的文章向大家說明使用 ADO.NET 來處理 Model 的資料存取操作,還有如何使用 Enterprise Library 6 Data Access Application Block 來輔助並強化傳統 ADO.NET 資料存取的操作,

ASP.NET MVC 的 Model 使用 ADO.NET

ASP.NET MVC 的 Model 使用 Enterprise Library 6 Data Access Application Block

這一篇的內容在文章標題就說得很清楚了,在這篇文章裡要向各位說明如何使用 Simple Injector 這個 DI/IoC Container 來讓 ASP.NET MVC 網站可以抽換不同的資料存取方式,這篇文章會再加上大家比較常見的 ADO.NET Entity Framework,藉由使用 Simple Injector 來達到網站選用三種不同資料存取方式的需求。

 


2013年4月27日 星期六

ASP.NET MVC 4 使用 Unity bootstrapper for ASP.NET MVC

上上一篇分層架構系列文章「ASP.NET MVC 專案分層架構 Part.6 - DI/IoC 使用 Unity.MVC」 介紹了如何在一個 ASP.NET MVC 4 的分層架構專案中使用 Unity.MVC4 實作 DI/IoC,不管是 Unity.MVC3 or Unity.MVC4 都是使用了 Enterprise Library Unity Application Block 2.1 版 ( Unity.MVC3 為 2.1.505.0, Unity.MVC4 為 2.1.505.2 ),然而就在 2013-04-26 的時候 Enterprise Library 6.0 正式 Release 了,而 Unity Application Block 也進展到 3.0 版。

此次 EntLib 6.0 增加了兩個 Application Block,而既有的 Application Block 也有很多的更新功能,而其中一點就是 Unity Application Block 加強了對 ASP.NET MVC 與 ASP.NET Web API 的技術整合,另外也推出了自家官方的 ASP.NET MVC, ASP.NET Web API 整合組件,在 NuGet 就可以取得、安裝,這一篇就用之前分層架構的程式來介紹如何在 ASP.NET MVC 4 網站裡使用 Unity bootstrapper for ASP.NET MVC

 


2013年4月14日 星期日

ASP.NET MVC 專案分層架構 Part.6 - DI/IoC 使用 Unity.MVC

2014-12-02 補充說明:
這一系列的文章並不適合初階及中階的開發人員,如果你是程式開發的初學者或是 ASP.NET MVC 初學者,甚至是開發經驗少於兩年的開發人員,請馬上離開此篇文章。

隔了好長一段時間沒有接續這個系列的文章,現在直接從 DI/IoC  來繼續專案分層架構的主題,有關在專案裡實作 DI/IoC 的 Framework 有相當多,例如:Autofac, Castle Windsor, StructureMap, Ninject, Simple Injector, Enterprise Library Unity Application Block 等,其實還有很多的 Framework 可以使用,但這邊並不是探討哪一種 Framework 的優劣,這些 DI/IoC Framework 都相當不錯而且也有很多人使用,在網路上也可以找到豐富的文件以及參考文章,而這篇文章則是使用「Unity.MVC4」。

DI:Dependency Injection 依賴注入.
IoC:Inversion of Control 控制反轉.

P.S.
其他 DI/IoC Framework 的使用則會另開文章來做介紹,就不是隸屬於「分層架構」的分類中。

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。