ASP.NET/Web Application Projects 對比 Web Site Projects

使用Visual Studio開發Asp.Net項目有兩種項目選擇:

  • Web Application Projects:為首選。支持調試時的 Edit and Continue。支持頁面類中的單元測試。引用到頁面類與單獨類中的用戶控件。 支持依賴於多個web項目的項目。編譯器為整個site生成單個assembly(不含 .aspx與.ascx文件) 。控制生成的assembly的名字與版本號。支持用MSBuild或Team Build管理項目的編譯。避免在生產伺服器上部署原始碼。
  • Web Site Projects:沒有項目文件(.csproj or .vbproj),文件夾下所有文件都被包括在項目中。支持一個web項目同時包含C#與Visual Basic代碼。可以通過FTP,用VS直接open生產site並修改它。不需要編譯即可以部署。如果做預編譯,可以為每個頁面或用戶控件、文件夾創建單獨的assembly。在伺服器上對所有新文件或修改過的文件在第一次訪問時自動編譯為assembly。生產中修改單個文件並複製到生產伺服器上生效;或直接在生產伺服器上編輯單個文件。編譯單個文件而不需要重新編譯整個site。在生產伺服器上保留原始碼起到備份效果。

應該在創建項目時就選好採用那種類型。從一種類型轉換到另一種類型是耗時的、困難的、易錯的。