【转】asp.net中的WebApplication(web应用程序)和WebSite(网站)
【轉】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工作原理相同,基本不需要太多的操作。 | 需要使用升級向導,并且需要其他的一些額外操作。 |
轉載于:https://www.cnblogs.com/aaa6818162/archive/2009/05/09/1453141.html
總結
以上是生活随笔為你收集整理的【转】asp.net中的WebApplication(web应用程序)和WebSite(网站)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深圳重疾险如何理赔
- 下一篇: 什么是税收 税收是指什么