[Day14] 反轉起來~透過IOC解析來執行依賴反轉

前言

要建立客製化的解析器可以實現IDependencyResolver介面並使用DependencyResolver.SetResolver替換DefaultDependencyResolver預設解析器

DependencyResolver,ControllerControllerFactory關係如下圖

IOC_Asp.netMVC.png

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

...繼續閱讀 »

[Day13] Asp.net MVC如何實現IOC解析器

前言

IOC依賴反轉是oop重要程式設計思想。(Ioc—Inversion of Control 控制反轉)

詳細資訊可以查看小弟另一篇文章 IOC(控制反轉),DI(依賴注入) 深入淺出~~

有沒有人會很好奇說為什麼只需要透過DependencyResolver.SetResolver方法我就可以直接使用AutoFac或其他IOC容器?

今天跟大家分享Asp.net MVC利用什麼設計技巧,讓外部IOC容器可以很方便融入系統中.

...繼續閱讀 »

[Day12] 談談Controller幾個重要成員

前言

上篇得知MVC預設透過DefaultControllerFactory反射方式動態建立Controller物件

本篇會分享我們常用到Controller基礎類別和相關物件.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

此篇同步發布在筆者Blog [Day12] 談談Controller幾個重要成員

...繼續閱讀 »

[Day10] 透過MvcRouteHandler取得呼叫IHttphandler

前言

前一篇介紹路由封裝了Http請求路徑資訊可以讓我們找到相對應的ActionController並呼叫執行外,也可透過MapPageRoute來將請求教給.aspx實體檔案來處理請求.

Route甚至可以讓我們自己客製化處理HttpHandler 在Route中建立處理客製化HttpHandler可謂很有彈性

本篇介紹Route物件建立MvcRouteHandler物件且如何取到IHttpHandler.

 
...繼續閱讀 »

[Day07] Asp.Net重要物件HttpApplication(三) 取得執行的IHttpHandler

前言

前面和大家分享StepManager是如何建立管道和依序呼叫IHttpModule註冊事件

查看原始碼好站 Reference Source

此文的程式碼比較多我會在原始碼上邊上說明相對應編號方便大家觀看

今天跟大家分享HttpAppliaction是如何找到要執行的IHttpHandler物件.

此篇同步發布在筆者Blog [Day07] Asp.Net重要物件HttpApplication(三) 取得執行的IHttpHandler

...繼續閱讀 »

[Day05] Asp.Net重要物件HttpApplication(一) 初始化建立IHttpMoudule

前言:

上一篇文章分享HttpApplicationFactory.GetApplicationInstance方法返回一個HttpApplicationHttpRuntime來呼叫使用.

今天開始介紹HttpApplication這個很重要的類別,它可謂是我們Asp.net中很複雜但重要的類別

Global.cs是繼承HttpApplication類別,但為什麼需要繼承這個類別呢? 讓我們繼續看下去.

 
...繼續閱讀 »

[Day02] Asp.Net支柱 IHttpMoudle & IHttphandler

前言:

上一篇文章我們有說 Asp.net 有兩個核心組件 IHttpMoudle & IHttphandler

Asp.net 是一個pipeline的模型,理解這些管道除了可以讓我們節省許多不必要的資源浪費也可讓我們程式架構更加有條理.

就像我們在Asp.net MVC如果要寫權限驗證程式碼,雖然可以寫在ControllerAction

但更好做法是我可以寫一個類別繼承AuthorizeAttributeoverride OnAuthorization方法並掛上此標籤.

更了解這些原理可以讓我們寫程式事半功倍.

...繼續閱讀 »