The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET MVC 開發心得分享 (2):與原始碼共舞

各位應該都知道 ASP.NET MVC 已經在 2009/1/27 發佈 RC 版,各位可以從這裡下載,而 RC 版的 Release Note 也可以從這裡下載,這次的改版有許多重大更新,因此建議各位詳細閱讀 Release Note。

我們在練習開發 ASP.NET MVC 的過程中時常會遇到瓶頸,由於目前缺乏許多正式且完整的文件,且網路上的資訊散落各地、版本不一,從 Alpha, Preview 1, ..., Preview 5, Beta, 一直到 RC 大約發展了約兩年時間,可想見網路上的資訊之混亂。

所以要瞭解 ASP.NET MVC 最好的方式就是直接讓 ASP.NET MVC 原始碼跟開發中的專案放在一起,若遇到任何疑問就可以立即查詢原始碼 ( 快速鍵: F12 , Go To Definition ) 進行瞭解,我個人就是透過這種方式瞭解不少 ASP.NET MVC 內部運作的細節。

今天我就來講解如何讓 ASP.NET MVC 專案與 MVC 原始碼共舞,雖然加入專案是件簡單的事,但加入 ASP.NET MVC 原始碼專案到你的專案裡還是有些必須特別注意的事項:

  1. 下載 ASP.NET MVC RC 1 Source Code
  2. 解壓縮後將 MVC\src\SystemWebMvc 目錄複製到你的方案目錄下
    解壓縮後將 MVC\src\SystemWebMvc 目錄複製到你的方案目錄下
  3. 在 Visual Studio 方案中加入現有專案:System.Web.Mvc.csproj
    Add Existing Project from Visual Studio
    Add Existing Project
  4. 移除現有 MVC 專案的 System.Web.Mvc 組件參考
    移除現有 MVC 專案的 System.Web.Mvc 組件參考
  5. 在現有 MVC 專案的 References 中將 System.Web.Mvc 專案加入參考
    將 System.Web.Mvc 專案加入參考
  6. 開啟專案根目錄下的 web.config 設定檔,並找到 <system.web> –> <compilation> –> <assemblies> 將 System.Web.Mvc 組件那一行註解起來。
    開啟專案根目錄下的 web.config 設定檔,並找到 <system.web> –> <compilation> –> <assemblies> 將 System.Web.Mvc 組件那一行註解起來 
  7. 開啟專案 View 目錄下的 web.config 設定檔,將 <system.web> –> <pages> 的 pageParserFilterType 屬性修改成:
    System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc,
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    開啟專案 View 目錄下的 web.config 設定檔,將 <system.web> –> <pages> 的 pageParserFilterType 屬性修改成 System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    如果不這樣改,若要在 View 裡面使用強型別的 Model 物件就會編譯錯誤。
    註:在 View 裡面使用 Model 強型別這特色是從 RC 版才開始有的。

---

上述步驟就屬第 7 步驟花我最多時間研究,但最後終於找出成功與原始碼共舞的方法了,請享用!

---

這種與原始碼一起運作的方式僅建議用在開發研究時使用,若未來要將專案部署到正式機時,記得將步驟還原後重新建置一次,否則你就必須要將自行建置的 System.Web.Mvc.dll 組件一併部署到正式機,不過我不建議用這種作法,除非你有修改 System.Web.Mvc 專案的原始碼 (當然也不建議這麼做)。

相關連結