﻿# ASP.NET 4 為何能將預設的 Web.config 變的如此乾淨

從 ASP.NET 2.0 到 ASP.NET 3.5 就一直有新功能加入到 ASP.NET 框架中，例如 ASP.NET AJAX , ASP.NET Dynamic Data , ASP.NET Routing , ASP.NET Chart Control 等等，越來越多的功能導致 Web 專案預設的 Web.config 設定越來越肥，到了 ASP.NET 4 終於將一些常用的設定值全都放進 ASP.NET 4 的核心，現在 Web.config 只剩下 6 行就可以運作，這到底是怎麼辦到的呢？預設的設定檔又加入了哪些東西？

以下是 ASP.NET 4 最小化過後的版本，透過這個最小化過的設定檔就可以執行大部分 ASP.NET 提供的功能，非常的簡潔：

![ASP.NET 4: Web.config](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/e48d4160ca917aafca7d-image.png "ASP.NET 4: Web.config")

我之前的【[如何快速查詢 web.config 中各項設定參數的預設值](/post/2009/06/19/check-webconfig-default-settings-and-options-with-ease)】文章有說明透過 web.config.comments 這個預設帶註解的設定檔可以快速查詢所有 Web.config 的預設值，由於 ASP.NET 4 的來臨，我們可以利用 [WinMerge](http://winmerge.org/) 工具分析這兩個版本之間到底變了哪些東西，這樣你就會知道為何在 ASP.NET 4 中的 Web.config 可以如此精簡，因為 ASP.NET 4 已經把所有最常用的設定都變成 web.config 預設值了。

開啟 WinMerge 比對視窗

![WinMerge](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/1b385071c53f27cb7386-image.png "WinMerge")

並在選取檔案或資料夾的**左邊**與**右邊**分別輸入以下檔案路徑：

-   C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\CONFIG\\web.config.comments
-   C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Config\\web.config.comments

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3a08493f48b5ec2d7e9d-image.png)

按下確定後就可以開始分析 Web.config 預設檔的所有變更以及預設值的改變。如下圖示 (點圖可放大)：

[![分析 Web.config 預設檔的所有變更以及預設值的改變](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/db7e410827adc82b0563-image_thumb.png "分析 Web.config 預設檔的所有變更以及預設值的改變")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/432ccab80f6568e8395f-image.png)

如果遇到看到不懂的地方也不用擔心，只要開啟 [ASP.NET Configuration File Syntax](http://msdn.microsoft.com/en-us/library/zeshe0eb.aspx) (目前只有英文版) 網頁即可查詢相關設定的意義，透過這個方式學習與瞭解 Web.config 是最完整且最不會失誤的方式。

**相關連結**

-   [\[VS2010\] ASP.NET 4.0 新功能：Web.config Minification 與 Transformation](https://dotblogs.com.tw/regionbbs/2010/01/15/asp_net_4_0_new_feature_web_config_minification_and_transformation)
-   [Clean Web.Config Files (VS 2010 and .NET 4.0 Series)](https://weblogs.asp.net/scottgu/clean-web-config-files-vs-2010-and-net-4-0-series)
-   [ASP.NET 4 and Visual Studio 2010 Web Development Overview](http://www.asp.net/learn/whitepapers/aspnet4/) \[ [PDF Download](http://download.microsoft.com/download/7/1/A/71A105A9-89D6-4201-9CC5-AD6A3B7E2F22/ASP_NET_4_and_Visual_Studio_2010_Web_Development_Overview.pdf) \]
