VS 2010和.NET 4第一步:Web.config文件
微軟.NET平臺(tái)現(xiàn)任負(fù)責(zé)人Scott Gu日前在博客上宣布要撰寫一個(gè)系列的文章介紹Visual Studio 2010和.NET 4,下面是這個(gè)系列的第一篇:
這是我針對(duì)即將發(fā)布的VS 2010 和 .NET 4所撰寫的貼子系列的第一篇。
無(wú)可否認(rèn),今天的貼子所涉及的東西在ASP.NET 4.0中是個(gè)非常小的(但我還是認(rèn)為是個(gè)非常棒的)變動(dòng):干凈,簡(jiǎn)潔的web.config文件。
第一次在Visual Studio 2010中使用 文件->新項(xiàng)目 創(chuàng)建空白的ASP.NET 4.0 Web應(yīng)用時(shí)你就會(huì)看到這個(gè)改進(jìn),所以我覺(jué)得把這個(gè)東西做為我的系列的第一篇是非常恰當(dāng)?shù)摹?/P>
.NET 3.0 和 3.5中的Web.config文件
在最近幾個(gè)版本中,新ASP.NET項(xiàng)目中的web.config文件的大小一直在穩(wěn)步增長(zhǎng)。例如,Visual Studio 2008 SP1中加到新的web項(xiàng)目中的默認(rèn)web.config文件已有126行,所含的東西包羅萬(wàn)象,從標(biāo)識(shí)的定義到用于ASP.NET HTTP管道中的處理器和模塊的定義等等。
這個(gè)文件大小的增加是因?yàn)?NET 3.0 和 .NET 3.5用的是跟.NET 2.0一樣的CLR和machine.config配置文件,只不過(guò)是在安裝時(shí)加了或更新了框架中的程序集而已。為避免意外地覆蓋機(jī)器上原有的2.0 machine.config中定制設(shè)置的風(fēng)險(xiǎn),我們沒(méi)有在其中注冊(cè)隨.NET 3.0 和 .NET 3.5版本而來(lái)的新的ASP.NET功能帶來(lái)的標(biāo)識(shí)定義和處理器和模塊,而是選擇讓新的項(xiàng)目在應(yīng)用的局部web.config中注冊(cè)這些設(shè)置。這個(gè)做法比較安全,但也導(dǎo)致了web.config文件大小的增加,而且變到愈加復(fù)雜,讀起來(lái)也更困難。
.NET 4中的Web.config文件
.NET 4 包括了一個(gè)新的CLR版本,以及特定于.NET 4的新的machine.config文件(是與.NET 2, .NET 3 和 .NET 3.5中所用的machine.config文件并列安裝的)。
新的.NET 4 machine.config文件現(xiàn)在自動(dòng)注冊(cè)我們幾年來(lái)添加的所有的ASP.NET 標(biāo)識(shí)部分(section), 處理器和模塊,包括了對(duì)應(yīng)于下列功能的設(shè)置:
◆ASP.NET AJAX
◆ASP.NET 動(dòng)態(tài)數(shù)據(jù)
◆ASP.NET 路徑選擇或?qū)?現(xiàn)在可為ASP.NET WebForms和ASP.NET MVC兩者兼用)
◆ASP.NET 圖表控件(現(xiàn)在內(nèi)置于ASP.NET V4中了)
這意味著,在VS 2010中創(chuàng)建新的空白ASP.NET應(yīng)用項(xiàng)目時(shí),你會(huì)發(fā)現(xiàn)新的應(yīng)用級(jí)默認(rèn)web.config文件既干凈又簡(jiǎn)潔:
上面的第一個(gè)配置部分告訴ASP.NET默認(rèn)允許應(yīng)用調(diào)試,并向Visual Studio指定在提供intellisense時(shí)該定向的.NET版本(VS 2010支持多定向,IDE中的intellisense會(huì)根據(jù)你當(dāng)前針對(duì)的框架版本自動(dòng)改變)。
第二個(gè)配置部分表示在IIS7中運(yùn)行ASP.NET應(yīng)用時(shí)是否使用“integrated(集成)”模式,該模式控制了是否對(duì)應(yīng)用中的所有請(qǐng)求或者只是針對(duì)特定于ASP.NET的URL才運(yùn)行ASP.NET HttpModules模塊。我們?cè)谛聭?yīng)用的應(yīng)用級(jí)web.config文件默認(rèn)啟用這個(gè)模式,因?yàn)?,為兼容的原因,注?cè)在機(jī)器級(jí)的默認(rèn)IIS7設(shè)置是只對(duì)特定于ASP.NET的URL才運(yùn)行模塊,并不是對(duì)所有的請(qǐng)求。
結(jié)束語(yǔ)
.NET 4中簡(jiǎn)化了的web.config文件,其變動(dòng)貌似細(xì)小,但我還是認(rèn)為非常之棒,在你創(chuàng)建新的ASP.NET應(yīng)用時(shí)將使得其默認(rèn)體驗(yàn)更加干凈,也更為容易理解。
在以后的貼子里,我將深入探討ASP.NET 4中許多更加實(shí)質(zhì)性的改進(jìn)(以及若干個(gè)“細(xì)小但很棒”的調(diào)整)。
希望本文對(duì)你有所幫助,
Scott
【編輯推薦】