以下內容轉自http://book.51cto.com/art/201010/231255.htm
建立Web網站與建立Web應用程式的區別
在Visual Studio 2010中,除了可以使用建立Web應用程式的方式來構建自己的Web項目之外,還可以通過建立Web網站的方式來構建Web項目。
其中,Web網站的建立方法:開啟Visual Studio 2010主表單,在工具列裡選擇“New”|“Web Site”命令,在彈出的New Web Site表單裡可以通過“ASP.NET Web Site”和“Empty Web Site”這兩種模板來建立自己的Web網站。
其實,微軟早在Visual Studio 2005的時候就提供了建立Web網站的功能,它是完全面向Web開發的。與Web應用程式相比,它們存在如下不同之處:
1. 從整體結構來看
Web應用程式和一般的Winform程式沒有什麼區別,它們都是按項目進行管理的,只有被專案檔所引用的檔案才會在Solution Explorer中出現,而且只有這些檔案才會被編譯。可以很容易地把一個ASP.NET應用拆分成多個Visual Studio項目,也可以很容易地從項目和原始程式碼控制中排除一個檔案。而項目的檔案都是按照命名空間來管理的,Web應用程式可以非常方便地引用其他的類庫,並且自己本身也可以作為類庫被引用,非常適合於項目分模板進行開發。因此,有人認為Web應用程式可能是微軟為了讓程式員很好地從Winform過渡到Web開發而保留了。
與Web應用程式相比,Web網站採用了全新的開發結構,一個目錄結構就是一個Web項目,這個目錄下的所有檔案,都作為項目的一部分而存在。它拋棄了命名空間的概念,並且Web網站不可以作為類庫被引用。
2. 從編譯部署看
調試或者運行Web應用程式頁面的時候,必須全部編譯整個Web項目。編譯整個Web項目通常比較快,因為Visual Studio使用了增量編譯模式,僅僅只有檔案被修改後,這部分才會被增量編譯進去。因為所有的類檔案被編譯成一個應用程式集,當你部署的時候,只需要把這個應用程式集和 .aspx檔案、.ascx檔案、設定檔以及其他靜態內容檔案一起部署。這種模型下,.aspx 檔案將不被編譯,當瀏覽器訪問這個頁面的時候,才會被動態編譯。
而在Web網站項目中的所有的Code-Behind 類檔案和獨立類檔案都被編譯成一個獨立的應用程式集,這個應用程式集被放在Bin目錄下。因為是一個獨立的應用程式集,你能夠指定應用程式集的名字、版本、輸出位置等資訊。在預設情況下,當你運行或調試任何Web頁的時候,Visual Studio會完全編譯Web網站項目,這麼做可以讓你看到編譯時間的所有錯誤。但是,在開發進程中,完全編譯整個網站會是相當慢的。所以推薦你在開發調試中只編譯當前頁。
根據上面的闡述,可以自行決定選擇建立Web項目的方式。如果在開發上有如下需求,建議使用建立Web應用程式的方式來構建自己的Web項目:
希望採用項目的管理方式,需要使用多重專案來構建一個Web應用,即把一個大的ASP.NET項目拆分成多個小項目。
在開發上Web頁面或者Web使用者控制項中需要使用到單獨的類,並且希望使用命名空間來進行管理,編譯後要控制應用程式集的名字。
如果在開發上有下列需求,建議使用建立Web網站的方式來構建自己的Web項目:
喜歡使用 Single-Page Code 模型來開發網站頁面,而不是使用Code-Behind 模型來編寫網站頁面。
在編寫頁面時,為了可以快速地看到編寫效果,動態編譯該頁面,馬上可以看到效果,不用編譯整個網站。
需要每個頁面產生一個應用程式集。
希望把一個目錄當做一個Web應用來處理,而不需要建立一個專案檔。