您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)在VS中新建網(wǎng)站和新建WEB項(xiàng)目有哪些區(qū)別的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
●網(wǎng)站編譯速度快,使用了增量編譯模式,僅僅只有文件被修改后,這部分才會(huì)被增量編譯進(jìn)去。
●生成的程序集
WebSite:生成隨機(jī)的程序集名,需要通過(guò)插件WebDeployment才可以生成單一程序集
WebApplication:可以指定網(wǎng)站項(xiàng)目生成單一程序集,因?yàn)槭仟?dú)立的程序集,所以和其他項(xiàng)目一樣可以指定應(yīng)用程序集的名字、版本、輸出位置等信息
●可以將網(wǎng)站拆分成多個(gè)項(xiàng)目以方便管理
●可以從項(xiàng)目中和源代碼管理中排除一個(gè)文件
●方便的支持VSTS的Team Build方便每日構(gòu)建
●更強(qiáng)大的代碼檢查功能,并且檢查策略受源代碼控制
●可以對(duì)編譯前后進(jìn)行自己規(guī)定的處理
●對(duì)App_GlobalResources 的Resource強(qiáng)類支持(網(wǎng)上說(shuō)的,還沒(méi)有了解過(guò))
●直接升級(jí)使用VS2003構(gòu)建的大型系統(tǒng)
●動(dòng)態(tài)編譯該頁(yè)面,馬上可以看到效果,不用編譯整個(gè)站點(diǎn)(主要優(yōu)勢(shì))
●同上,可以使錯(cuò)誤的部分和使用的部分不相干擾(可以要求只有編譯通過(guò)才能簽入)
●可以每個(gè)頁(yè)面生成一個(gè)程序集(一般不會(huì)采用這種方式)
●可以把一個(gè)目錄當(dāng)做一個(gè)Web應(yīng)用來(lái)處理,直接復(fù)制文件就可以發(fā)布,不需要項(xiàng)目文件(適合小站點(diǎn))
●可以把頁(yè)面也編譯到程序集中(應(yīng)該用不到,而且WebApplication也可以通過(guò)WebDeployment插件來(lái)實(shí)現(xiàn))
VS2005 SP1內(nèi)置了轉(zhuǎn)換程序,可以非常方便的從WebSite轉(zhuǎn)換到WebApplication
只需要復(fù)制文件,右鍵執(zhí)行“轉(zhuǎn)換為Web應(yīng)用程序”即可。
未查到有專門的反向轉(zhuǎn)換工具,但比較后發(fā)現(xiàn)如果轉(zhuǎn)換也非常簡(jiǎn)單。
刪除所有*.designer.cs
將*.aspx、*.ascx、*.master頁(yè)面文件中的 Codebehind="******.aspx.cs" 批量替換成 CodeFile="******.aspx.cs"
這樣就可以轉(zhuǎn)換回來(lái)了
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)目的一部分而存在。 |
編譯和生成 |
跟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ú)立的類。 |
編譯(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è)目錄。 fixed-names 編譯模型中,網(wǎng)站的每個(gè)頁(yè)面或者每個(gè)用戶控件被編譯成一個(gè)應(yīng)用程序集。
|
Iterative |
調(diào)試或者運(yùn)行Web頁(yè)面的時(shí)候,你必須全部編譯整個(gè)WEB項(xiàng)目。 編譯整個(gè)WEB項(xiàng)目通常比較快,因?yàn)?/span>Visual Studio使用了增量編譯模式,僅僅只有文件被修改后,這部分才會(huì)被增量編譯進(jìn)去。 |
你可以配置Visual Studio 2005的編譯屬性:編譯整個(gè)站點(diǎn)、編譯一個(gè)指定頁(yè)面、或者什么都不作。在最后一種情況下,當(dāng)你運(yùn)行一個(gè)WEB站點(diǎn)的時(shí)候,Visual Studio 僅打開一個(gè)瀏覽器,并訪問(wèn)當(dāng)前或者起始頁(yè),當(dāng)這個(gè)請(qǐng)求被發(fā)送后,ASP.net 才開始動(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ò)誤。但是,在開發(fā)進(jìn)程中,完全編譯整個(gè)站點(diǎn)會(huì)是相當(dāng)慢的。所以推薦你在開發(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)目開發(fā)模型,升級(jí)是非常非常簡(jiǎn)單的。 |
Web site 項(xiàng)目的編譯選項(xiàng)不同導(dǎo)致了它跟Visual Studio .NET 2003WEB項(xiàng)目的極大不同。 雖然微軟提供了一個(gè)轉(zhuǎn)換向?qū)В侨绻愕捻?xiàng)目如果是一個(gè)復(fù)雜的VS2003項(xiàng)目,使用這個(gè)轉(zhuǎn)換向?qū)Ш?,你還需要對(duì)照轉(zhuǎn)換手冊(cè),做很多工作。 如果你要從VS2003升級(jí),建議不要用這種WEB站點(diǎn)開發(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)開發(fā)網(wǎng)站頁(yè)面。而不是使用code-behind 模型來(lái)編寫網(wǎng)站頁(yè)面 |
|
√ |
喜歡采用下面的方式編寫網(wǎng)站: |
|
√ |
在編寫頁(yè)面時(shí)候,為了可以快速的看到編寫效果,動(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 文件。 |
|
√ |
感謝各位的閱讀!關(guān)于在VS中新建網(wǎng)站和新建WEB項(xiàng)目有哪些區(qū)別就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。