VS 2010 和 .NET 4.0 系列之《乾淨的Web.Config文件 》篇

  • 23033
  • 0
  • 2011-07-09

摘要:VS 2010 和 .NET 4.0 系列之《乾淨的Web.Config文件 》篇

【原文位址】Clean Web.Config Files (VS 2010 and .NET 4.0 Series)
【原文發表日期】Tuesday, August 25, 2009 10:50 PM

這是我針對即將發佈的VS 2010 和 .NET 4所撰寫的文章系列的第一篇。

無可否認,今天的文章所涉及的東西在ASP.NET 4.0中是個非常小的(但我還是認為是個非常棒的)變動:乾淨,簡潔的web.config檔案。

第一次在Visual Studio 2010中使用 檔案->新專案 建立空白的ASP.NET 4.0 Web應用時你就會看到這個改進,所以我覺得把這個東西做為我的系列的第一篇是非常恰當的。

.NET 3.0 和 3.5中的Web.config檔案

在最近幾個版本中,新ASP.NET專案中的web.config檔案的大小一直在穩定成長。例如,Visual Studio 2008 SP1中加到新的web專案中的預設web.config檔案已有126行,所含的東西包羅萬象,從標籤的定義到用於ASP.NET HTTP管道中的處理器和模組的定義等等。

這個檔案大小的增加是因為.NET 3.0 和 .NET 3.5用的是跟.NET 2.0一樣的CLR和machine.config配置檔案,只不過是在安裝時加了或更新了框架中的程式集而已。為避免意外地覆蓋機器上原有的2.0 machine.config中定制設置的風險,我們沒有在其中註冊隨.NET 3.0 和 .NET 3.5版本而來的新的ASP.NET功能帶來的標籤定義和處理器和模組,而是選擇讓新的專案在應用的局部web.config中註冊這些設置。這個做法比較安全,但也導致了web.config檔案大小的增加,而且變到愈加複雜,讀起來也更困難。

.NET 4中的Web.config檔案

.NET 4 包括了一個新的CLR版本,以及特定於.NET 4的新的machine.config檔案(是與.NET 2, .NET 3 和 .NET 3.5中所用的machine.config檔案並列安裝的)。

新的.NET 4 machine.config檔案現在自動註冊我們幾年來添加的所有的ASP.NET 標籤部分(section), 處理器和模組,包括了對應於下列功能的設置:

  • ASP.NET AJAX
  • ASP.NET 動態資料 (Dynamic Data)
  • ASP.NET 路徑選擇或導向(現在可為ASP.NET WebForms和ASP.NET MVC兩者並用)
  • ASP.NET 圖表控制項(現在內建於ASP.NET V4中了)

這意味著,在VS 2010中建立新的空白ASP.NET應用專案時,你會發現新的應用程式層的預設web.config檔案既乾淨又簡潔:

上面的第一個配置部分告訴ASP.NET預設允許應用偵錯,並向Visual Studio指定在提供intellisense時該定向的.NET版本(VS 2010支援多目標 .NET Framework 版本,IDE中的intellisense會根據你當前針對的框架版本自動改變)。

第二個配置部分表示在IIS7中運行ASP.NET應用時是否使用「integrated(整合)」模式,該模式控制了是否對應用中的所有請求或者只是針對特定於ASP.NET的URL才執行ASP.NET HttpModules模組。我們在新應用的應用程式層web.config檔案預設啟用這個模式,為保持相容性,註冊在機器層級的預設IIS7設定是只對特定於ASP.NET的URL才執行模組,並不是對所有的請求。

結語

.NET 4中簡化了的web.config檔案,其變動貌似細小,但我還是認為非常之棒,在你建立新的ASP.NET應用時將使得其預設體驗更加乾淨,也更為容易理解。

在以後的文章裡,我將深入探討ASP.NET 4中許多更加實質性的改進(以及若干個「細小但很棒」的調整)。

希望本文對你有所幫助,

Scott