asp.net中的WebApplication(web應用程式)和WebSite(網站)

來源:互聯網
上載者:User
【轉】asp.net中的WebApplication(web應用程式)和WebSite(網站)

web application是MS在發布VS2005之後追加的SP1擴充包裡的一種新的Web模式,WebApplication編譯時間忽略了頁面中代碼的檢查,不需要做分析,將這些任務交給了運行時。WebSite的優勢在於可以單個頁面獨自編譯,這對大項目而言是一個相當大的優勢,二者的直觀區別在於,對每一個aspx分頁檔,WebApplication在有對應cs檔案的同時還擁有designer.cs檔案,baidu了一下。

WebApplication編程模型的優點:
●網站編譯速度快,使用了增量編譯模式,僅僅只有檔案被修改後,這部分才會被增量編譯進去。
●產生的程式集
WebSite:產生隨機的程式集名,需要通過外掛程式WebDeployment才可以產生單一程式集
WebApplication:可以指定網站項目產生單一程式集,因為是獨立的程式集,所以和其他項目一樣可以指定應用程式集的名字、版本、輸出位置等資訊
●可以將網站拆分成多重專案以方便管理
●可以從項目中和原始程式碼控制中排除一個檔案
●支援VSTS的Team Build方便每日構建
●更強大的代碼檢查功能,並且檢查策略受原始碼控制
●可以對編譯前後進行自己規定的處理
●對App_GlobalResources 的Resource強類支援
●直接升級使用VS2003構建的大型系統

WebSite編程模型的優點:
●動態編譯該頁面,馬上可以看到效果,不用編譯整個網站(主要優勢)
●同上,可以使錯誤的部分和使用的部分不相干擾
●可以每個頁面產生一個程式集
●可以把一個目錄當做一個Web應用來處理,直接複製檔案就發行就緒,不需要專案檔
●可以把頁面也編譯到程式集中

兩種編程模型的互相轉換:

VS2005 SP1內建了轉換程式,可以非常方便的從WebSite轉換到WebApplication只需要複製檔案,右鍵執行“轉換為Web應用程式”即可。
總之,大網站比較適合用WebApplication項目,小網站比較適合用WebSite項目

 

下面的表格列出了Web Application 和 Web Site 的重要區別。

 

情況

Web Application Project

Web Site Project

工程定義

 

只有在 Web Application的解決方案中引用的檔案才是項目的一部分。這些檔案也顯示在方案總管中,並在產生期間進行編譯。由於存在專案檔,因此有些方案更加容易實現。例如,可以將一個 ASP.NET 應用程式細分為多個 Visual Studio 項目。還可以輕鬆地從項目和原始碼中排除檔案。

Web site 使用文檔結構管理專案檔。他不包括專案檔,檔案夾中的所有檔案都是項目的一部分

適用於現存不包含項檔案的網站目錄。

 

編譯和產生輸出

項目中所有的程式碼檔案,和獨立的檔案都被編譯成為一個程式集,儲存在bin檔案夾中,可以指定程式集的名字、版本、輸出位置等資訊

在Web Site 項目中使用產生命令時,並不會產生程式集 ,而只是對Web Site進行驗證 。在運行Web Site的時候,由asp.net的動態編譯部署的頁面,類源檔案。

同時也可以對網站進行先行編譯以提高效能,在先行編譯中使用的是和動態編譯同樣的技術。

Asp.net先行編譯有2中模式. batch mode (the default) and fixed-names mode. batch mode 中產生一個程式集。fixed mode 每個頁面,使用者控制項都產生獨立的程式集。

開發

 

在需要運行和偵錯工具之前需要進行編譯整個項目,但是通常Web Application編譯速度很快,因為使用了增量編譯模式,僅僅只有檔案被修改後,這部分才會被增量編譯進去。

由於使用了動態編譯機制,並且編譯到不同的程式集,所以訪問或者調試特定頁面時,不需要編譯整個項目編譯成功。

產生命令會對整個項目進行驗證,但是速度較慢,所以建議在開發和調試的過程中,僅使用編譯當前頁面。

部署

由於所以代碼檔案都產生為一個程式集,所以只需要把程式集和.aspx等分頁檔部署到伺服器上。

.aspx檔案只有在被瀏覽器訪問到的時候才進行編譯。

每次更新程式集的時候,相當於替換了所有的頁面代碼.

使用發布命令可以把.aspx檔案和後台代碼檔案都編譯到程式集中,如果選擇了updateable publish option 時,只是對後台代碼進行編譯 。

預設模式會針對每個檔案夾產生一個程式集.固定名稱模式,會針對每個頁面,控制項產生一個程式集 ,不過可能造成儲存空間的額外負擔。

從Visual Studio .NET 2003 升級

由於和.net 2003工作原理相同,基本不需要太多的操作。

需要使用升級嚮導,並且需要其他的一些額外操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.