2011/4/21

[入門][ASP.NET] 在 VS2010 中建立 New Web Site 與 New Web Application 的差異

差不多每隔一段時間, 就會看到有人又重覆的詢問這個問題, 或者雖然沒有問到這個問題, 卻不停的懷疑為什麼在某些網站可以做的事情, 在另一個網站上面卻不行。其實這些問題通通必須回歸到一個最基本的問題, 那就是請你恢復一下記憶, 你在一開始是用什麼方式建立你的網站的?

從 Visual Studio 有兩種方式可以建立新網站, 一種是選擇「檔案」、「新增」、「網站」, 另一種則是「檔案」、「新增」、「專案」, 再選擇 "Web" (請見以下二圖)。由於二者都是建立新網站的方法, 很多人把專案建立好了之後, 就忘記當初是怎麼建立它的。但是隨著建立 Web 專案的方式不同, 在某些部份, 從 Visual Studio 中進行操作的方式也會略有不同。如果你不瞭解這一點, 你就可能會產生許多奇怪的疑問。


↑ 圖一. 「檔案」、「新增」、「網站」
↑ 圖二. 「檔案」、「新增」、「專案」, 再選擇 "Web"

從以上兩個圖中, 我們可以看到光是範本就已經有所不同了。而且如果採用第一種方法, 你甚至沒辦法建立一個 MVC 專案。

不過不僅如此, 如果你採用第二種方式 (專案) 建立網站, 以下這些事情是有差異的, 例如:

  1. 你將無法在專案中混用 VB 和 C# (我想這就是很多人遇到的問題: 為什麼有時候可以混用, 有時候又不行 -- 因為你選用了不同的專案範本)
  2. 在除錯階段中, 你將無法編輯程式碼 (這也是很多人的疑問之一)
  3. 你可以編輯額外的專案屬性, 例如修改組件名稱、版本、指定開發伺服器的通訊埠等等
  4. .sln 與 .suo 這兩個專案檔會同時儲存在專案目錄裡面。相對的, 若採用第一種方式 (網站) 建立的網站, 這些專案檔會被另外儲存在 Documents\Visual Studio 2010\Projects\ 之下的對應專案資資夾內
  5. 採用第一種方式 (網站) 建立的網站資料夾裡面並沒有專案檔 (.csproj 或 .vbproj), 而採用第二種方式 (專案) 建立的網站資料夾中則有專案檔; 二者的專案資料夾結構也略有差異

基本上, 如果你只是想在自己的機器上架設一個網站玩玩, 你可以採用第一種做法; 如果你的網站是架設來供多人同時編輯的, 那麼你可以採用第二種做法 -- 但是如果你的網站程式人員同時撰寫 C# 及 VB, 你可能又應該採用第一種做法來建立網站 (不過我個人建議你的網站最好不要這麼做)。

此外, 如果你採用第一種做法 ( 「檔案」、「新增」、「網站」) 建立網站, 而且你未來打算佈署的伺服器使用 IIS 7.5 的話, 請注意一點, 根據 "Web Applications Development with .NET Framework 4" 一書所述, 由於 IIS 7.5 (Windows 7 與 Windows Server 2008 R2 內建) 已經不再支援 Front Page Extensions (它採用 WebDAV), 所以你不能以 HTTP 方式建立網站, 只能採用 File System 或 FTP 方式。不過根據我個人實測的結果, 你仍然可以在本機的 IIS 7.5 上面以 HTTP 方式建立網站, 只不過你必須從「開啟與關閉 Windows 功能」選單中把 「IIS Metabase 及 IIS 6 設定相容性」這個項目打勾, 如下圖:

之後, 你還是可以使用 HTTP 方式建立新網站的。不過, 因為我目前並沒有其它機器可以配合測試, 所以我暫時不確定能否以同樣方式在其它機器上建立 IIS 網站。

沒有留言:

張貼留言