VS2008 Web Application和Web Site的区别_转载
生活随笔
收集整理的這篇文章主要介紹了
VS2008 Web Application和Web Site的区别_转载
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MSDN 原文(英文)地址:http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx
以下是主要內(nèi)容的中文翻譯:?
Visual Studio 2008 中 Web Application [ 'Asp.net web應(yīng)用程序' 項(xiàng)目 ] 和 Web Site Projects [ '網(wǎng)站'項(xiàng)目 ]?? 的區(qū)別
| Scenario | Web Application Project | Web Site Project |
| Project definition | 跟 Visual Studio .NET 2003 類似,由于項(xiàng)目文件的存在,只有被項(xiàng)目文件所引用的文件才會(huì)在Solution Explorer中出現(xiàn)。而且只有這些文件才會(huì)被編譯。可以很容易的把一個(gè)ASP.NET應(yīng)用拆分成多個(gè)Visual Studio項(xiàng)目。可以很容易的從項(xiàng)目中和源代碼管理中排除一個(gè)文件。 | 一個(gè)目錄結(jié)構(gòu)就是一個(gè)WEB項(xiàng)目。沒(méi)有項(xiàng)目文件存在。這個(gè)目錄下的所有文件,都被作為項(xiàng)目的一部分而存在。 我們實(shí)際部署的一個(gè)網(wǎng)站,部署上當(dāng)然不會(huì)有任何項(xiàng)目文件存在,如果你想對(duì)這個(gè)網(wǎng)站進(jìn)行修改,用這種編程模型就非常適合。我們根本不用在乎這個(gè)WEB站點(diǎn)中,那些文件屬于哪個(gè)項(xiàng)目。 |
| 編譯和生成 | 跟Visual Studio .NET 2003的Web應(yīng)用項(xiàng)目編譯模式幾乎一樣。 項(xiàng)目中的所有的code-behind 類文件和獨(dú)立類文件都被編譯成一個(gè)獨(dú)立應(yīng)用程序集。這個(gè)應(yīng)用程序集被放在Bin目錄下。因?yàn)槭且粋€(gè)獨(dú)立的應(yīng)用程序集,你能夠指定應(yīng)用程序集的名字、版本、輸出位置等信息。 例如:Model-View-Controller (MVC) 模式就可以在這里很好的被使用。因?yàn)樗试S在WEB頁(yè)面和WEB用戶控件中引用一個(gè)獨(dú)立的類51aspx.com。 | 編譯(Build)命令僅僅是測(cè)試這個(gè)WEB站點(diǎn)是否編譯正確,調(diào)試一個(gè)WEB站點(diǎn)項(xiàng)目的時(shí)候,是通過(guò)依賴你的源代碼文件,ASP.net進(jìn)行動(dòng)態(tài)編譯頁(yè)面和類來(lái)實(shí)現(xiàn)的。 預(yù)編譯站點(diǎn)和動(dòng)態(tài)編譯站點(diǎn)用的是同一個(gè) compilation semantics ,你可以通過(guò)預(yù)編譯來(lái)提高站點(diǎn)的性能。 ASP.net 動(dòng)態(tài)編譯系統(tǒng)提供了兩種模型:默認(rèn)的batch 編譯模型和fixed-names 編譯模型。 batch 編譯模型中,被編譯成多個(gè)應(yīng)用程序集(典型的是每一個(gè)目錄被編譯成一個(gè))。這時(shí)候你看應(yīng)用程序集,很難對(duì)應(yīng)上是哪個(gè)目錄51aspx.com。 fixed-names 編譯模型中,網(wǎng)站的每個(gè)頁(yè)面或者每個(gè)用戶控件被編譯成一個(gè)應(yīng)用程序集。 |
| Iterative development | 調(diào)試或者運(yùn)行Web頁(yè)面的時(shí)候,你必須全部編譯整個(gè)WEB項(xiàng)目。 編譯整個(gè)WEB項(xiàng)目通常比較快,因?yàn)?/span>Visual Studio使用了增量編譯模式,僅僅只有文件被修改后,這部分才會(huì)被增量編譯進(jìn)去。51aspx.com | 你可以配置Visual Studio 2005的編譯屬性:編譯整個(gè)站點(diǎn)、編譯一個(gè)指定頁(yè)面、或者什么都不作。在最后一種情況下,當(dāng)你運(yùn)行一個(gè)WEB站點(diǎn)的時(shí)候,Visual Studio 僅打開(kāi)一個(gè)瀏覽器51aspx.com,并訪問(wèn)當(dāng)前或者起始頁(yè),當(dāng)這個(gè)請(qǐng)求被發(fā)送后,ASP.net 才開(kāi)始動(dòng)態(tài)編譯。 這種模式下,頁(yè)面被動(dòng)態(tài)編譯或者被編譯成不同應(yīng)用程序集,所以如果你調(diào)試或者運(yùn)行一個(gè)頁(yè)面的時(shí)候,不需要整個(gè)項(xiàng)目被編譯通過(guò)。有錯(cuò)誤的部分跟你使用的部分可以互不干擾。 默認(rèn)情況下,當(dāng)你運(yùn)行或調(diào)試任何WEB頁(yè)的時(shí)候,Visual Studio完全編譯Web Site項(xiàng)目。 這么做可以看到編譯時(shí)的所有錯(cuò)誤。但是,在開(kāi)發(fā)進(jìn)程中,完全編譯整個(gè)站點(diǎn)會(huì)是相當(dāng)慢的。所以推薦你在開(kāi)發(fā)調(diào)試中,只編譯當(dāng)前頁(yè)。 |
| 部署 | 因?yàn)樗械念愇募痪幾g成一個(gè)應(yīng)用程序集,當(dāng)你部署的時(shí)候,只需要把這個(gè)應(yīng)用程序集和 .aspx文件、.ascx文件以及其它靜態(tài)內(nèi)容文件一起部署。 這種模型下,.aspx 文件將不被編譯,當(dāng)瀏覽器訪問(wèn)這個(gè)頁(yè)面的時(shí)候,才會(huì)被動(dòng)態(tài)編譯。 不過(guò),如果你使用Web Deployment Projects (一個(gè)Visual Studio 2005的插件,沒(méi)有被默認(rèn)包含到VS2005中),你就可以把 .aspx 文件也編譯進(jìn)入一個(gè)應(yīng)用程序集中。 如果你只修改了小小的一行代碼,你也需要把整個(gè)項(xiàng)目的所有代碼都編譯,并且發(fā)布包含所有代碼的這個(gè)應(yīng)用程序集。 | 使用Visual Studio 的 Publish Website 命令,你可以把.aspx 文件和 code-behind 文件編譯成應(yīng)用程序集,所以你看到的編譯后的 .aspx 文件頭發(fā)生了變化。(注意:Build 命令并不會(huì)給你可部署的應(yīng)用程序集) 最新版本的 Publish 將支持僅編譯 code-behind 文件,這樣部署的時(shí)候,將不改變 .aspx 文件。 默認(rèn)是在Bin目錄下預(yù)編譯成幾個(gè)應(yīng)用程序集,典型的是一個(gè)目錄對(duì)應(yīng)一個(gè)應(yīng)用程序集。 fixed-names 部署選項(xiàng)可以讓每一個(gè)WEB頁(yè)面或者每個(gè)WEB用戶控件創(chuàng)建一個(gè)應(yīng)用程序集,這樣每個(gè)頁(yè)面都有一個(gè)可部署的應(yīng)用程序集。但是,fixed-names 部署選項(xiàng)會(huì)增多應(yīng)用程序集的個(gè)數(shù),而且實(shí)際內(nèi)存使用也會(huì)增大。 |
| 從Visual Studio .NET 2003升級(jí) | 因?yàn)楦?/span>VS2003采用了一樣的WEB項(xiàng)目開(kāi)發(fā)模型,升級(jí)是非常非常簡(jiǎn)單的。51aspx.com | Web site 項(xiàng)目的編譯選項(xiàng)不同導(dǎo)致了它跟Visual Studio .NET 2003WEB項(xiàng)目的極大不同。 雖然微軟提供了一個(gè)轉(zhuǎn)換向?qū)?#xff0c;但是如果你的項(xiàng)目如果是一個(gè)復(fù)雜的VS2003項(xiàng)目,使用這個(gè)轉(zhuǎn)換向?qū)Ш?#xff0c;你還需要對(duì)照轉(zhuǎn)換手冊(cè),做很多工作。 如果你要從VS2003升級(jí),建議不要用這種WEB站點(diǎn)開(kāi)發(fā)模版。而是使用Web application 項(xiàng)目。 |
| Option or Task | Web Application Projects | Web Site Projects |
| 你有一個(gè)大型的Visual Studio .NET 2003 Web應(yīng)用需要遷移到VS2005。 | √ | |
| 喜歡使用 single-page code 模型來(lái)開(kāi)發(fā)網(wǎng)站頁(yè)面。而不是使用code-behind 模型來(lái)編寫(xiě)網(wǎng)站頁(yè)面 | √ | |
| 喜歡采用下面的方式編寫(xiě)網(wǎng)站: | √ | |
| 在編寫(xiě)頁(yè)面時(shí)候,為了可以快速的看到編寫(xiě)效果,動(dòng)態(tài)編譯該頁(yè)面,馬上可以看到效果,不用編譯整個(gè)站點(diǎn)。 | ||
| (就是說(shuō),只需要保存文件,然后在瀏覽器中刷新一下,就可以看到自己剛剛做的效果) | ||
| 需要控制編譯后應(yīng)用程序集的名字 | √ | |
| 需要每個(gè)頁(yè)面產(chǎn)生一個(gè)應(yīng)用程序集 | √ | |
| WEB頁(yè)面或者WEB用戶控件中需要使用到單獨(dú)的類。 | √ | |
| 需要使用多個(gè)Project來(lái)構(gòu)建一個(gè)Web應(yīng)用。 | √ | |
| 需要處理pre-build 和 post-build 事件(編譯前后需要有自己額外的處理) | √ | |
| 希望把一個(gè)目錄當(dāng)作一個(gè)WEB應(yīng)用來(lái)處理,而不需要新建一個(gè)Project 文件。 | √ ? |
Notice:Web site project Convet Web Application Project ,reference http://weblogs.asp.net/meligy/archive/2008/08/03/converting-vs-2008-website-to-web-application.aspx
來(lái)自:http://www.cnblogs.com/bowen80/archive/2009/03/18/1415432.html
轉(zhuǎn)載于:https://www.cnblogs.com/ZhangHuaning/archive/2011/01/11/1932633.html
總結(jié)
以上是生活随笔為你收集整理的VS2008 Web Application和Web Site的区别_转载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 系统边界的定义
- 下一篇: C# 读取保存App.config配置文