日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VS2005將支持的兩種WEB編程模型的比較

 龍蟄 2006-04-17
上篇Blog我介紹了Visual Studio 2005 Web Application Projects  項目,下面來比較一下它跟 Visual Studio 2005 Web Site Projects 使用的場景和區(qū)別。

內(nèi)容翻譯自:
http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnvs05/html/WAP.asp
如果你英文夠好,可以直接看哪里。

你該選擇哪種WEB編程模型
Option or Task Web Application Projects Web Site Projects
你有一個大型的Visual Studio .NET 2003 Web應(yīng)用需要遷移到VS2005。 X  
喜歡使用 single-page code 模型來開發(fā)網(wǎng)站頁面。而不是使用code-behind 模型來編寫網(wǎng)站頁面
  X
喜歡采用下面的方式編寫網(wǎng)站:
在編寫頁面時候,為了可以快速的看到編寫效果,動態(tài)編譯該頁面,馬上可以看到效果,不用編譯整個站點(diǎn)。
(就是說,只需要保存文件,然后在瀏覽器中刷新一下,就可以看到自己剛剛做的效果)
  X
需要控制編譯后應(yīng)用程序集的名字 X  
需要每個頁面產(chǎn)生一個應(yīng)用程序集   X
WEB頁面或者WEB用戶控件中需要使用到單獨(dú)的類。 X  
需要使用多個Project來構(gòu)建一個Web應(yīng)用。 X  
需要處理pre-build 和 post-build 事件(編譯前后需要有自己額外的處理) X  
希望把一個目錄當(dāng)作一個WEB應(yīng)用來處理,而不需要新建一個Project 文件。   X

這兩種WEB編程模型的不同點(diǎn):
Scenario Web Application Project Web Site Project
Project definition 跟 Visual Studio .NET 2003 類似,由于項目文件的存在,
只有被項目文件所引用的文件才會在Solution Explorer中出現(xiàn)。而且只有這些文件才會被編譯。
可以很容易的把一個ASP.NET應(yīng)用拆分成多個Visual Studio項目。
可以很容易的從項目中和源代碼管理中排除一個文件。
一個目錄結(jié)構(gòu)就是一個WEB項目。沒有項目文件存在。這個目錄下的所有文件,都被作為項目的一部分而存在。

我們實(shí)際部署的一個網(wǎng)站,部署上當(dāng)然不會有任何項目文件存在,如果你想對這個網(wǎng)站進(jìn)行修改,用這種編程模型就非常適合。我們根本不用在乎這個WEB站點(diǎn)中,那些文件屬于哪個項目。

編譯和生成 跟Visual Studio .NET 2003的Web應(yīng)用項目編譯模式幾乎一樣。

項目中的所有的code-behind 類文件和獨(dú)立類文件都被編譯成一個獨(dú)立應(yīng)用程序集。這個應(yīng)用程序集被放在Bin目錄下。因為是一個獨(dú)立的應(yīng)用程序集,你能夠指定應(yīng)用程序集的名字、版本、輸出位置等信息。

例如:Model-View-Controller (MVC) 模式就可以在這里很好的被使用。因為它允許在WEB頁面和WEB用戶控件中引用一個獨(dú)立的類。

編譯(Build)命令僅僅是測試這個WEB站點(diǎn)是否編譯正確,調(diào)試一個WEB站點(diǎn)項目的時候,是通過依賴你的源代碼文件,ASP.net進(jìn)行動態(tài)編譯頁面和類來實(shí)現(xiàn)的。

預(yù)編譯站點(diǎn)和動態(tài)編譯站點(diǎn)用的是同一個 compilation semantics ,你可以通過預(yù)編譯來提高站點(diǎn)的性能。

ASP.net 動態(tài)編譯系統(tǒng)提供了兩種模型:默認(rèn)的batch  編譯模型和fixed-names 編譯模型。

batch  編譯模型中,被編譯成多個應(yīng)用程序集(典型的是每一個目錄被編譯成一個)。這時候你看應(yīng)用程序集,很難對應(yīng)上是哪個目錄。
fixed-names 編譯模型中,網(wǎng)站的每個頁面或者每個用戶控件被編譯成一個應(yīng)用程序集。

Iterative development
調(diào)試或者運(yùn)行Web頁面的時候,你必須全部編譯整個WEB項目。

編譯整個WEB項目通常比較快,因為Visual Studio使用了增量編譯模式,僅僅只有文件被修改后,這部分才會被增量編譯進(jìn)去。
你可以配置Visual Studio 2005的編譯屬性:編譯整個站點(diǎn)、編譯一個指定頁面、或者什么都不作。在最后一種情況下,當(dāng)你運(yùn)行一個WEB站點(diǎn)的時候,Visual Studio 僅打開一個瀏覽器,并訪問當(dāng)前或者起始頁,當(dāng)這個請求被發(fā)送后,ASP.net 才開始動態(tài)編譯。

這種模式下,頁面被動態(tài)編譯或者被編譯成不同應(yīng)用程序集,所以如果你調(diào)試或者運(yùn)行一個頁面的時候,不需要整個項目被編譯通過。有錯誤的部分跟你使用的部分可以互不干擾。

默認(rèn)情況下,當(dāng)你運(yùn)行或調(diào)試任何WEB頁的時候,Visual Studio完全編譯Web Site項目。
這么做可以看到編譯時的所有錯誤。但是,在開發(fā)進(jìn)程中,完全編譯整個站點(diǎn)會是相當(dāng)慢的。所以推薦你在開發(fā)調(diào)試中,只編譯當(dāng)前頁。

部署 因為所有的類文件被編譯成一個應(yīng)用程序集,當(dāng)你部署的時候,只需要把這個應(yīng)用程序集和 .aspx文件、.ascx文件以及其它靜態(tài)內(nèi)容文件一起部署。

這種模型下,.aspx 文件將不被編譯,當(dāng)瀏覽器訪問這個頁面的時候,才會被動態(tài)編譯。
不過,如果你使用Web Deployment Projects (一個Visual Studio 2005的插件,沒有被默認(rèn)包含到VS2005中),你就可以把 .aspx 文件也編譯進(jìn)入一個應(yīng)用程序集中。 

如果你只修改了小小的一行代碼,你也需要把整個項目的所有代碼都編譯,并且發(fā)布包含所有代碼的這個應(yīng)用程序集。

使用Visual Studio 的 Publish Website 命令,你可以把.aspx 文件 和 code-behind 文件編譯成應(yīng)用程序集,所以你看到的編譯后的 .aspx 文件頭發(fā)生了變化。(注意:Build 命令并不會給你可部署的應(yīng)用程序集)

最新版本的 Publish 將支持僅編譯 code-behind 文件,這樣部署的時候,將不改變 .aspx 文件。

默認(rèn)是在Bin目錄下預(yù)編譯成幾個應(yīng)用程序集,典型的是一個目錄對應(yīng)一個應(yīng)用程序集。

fixed-names 部署選項可以讓每一個WEB頁面或者每個WEB用戶控件創(chuàng)建一個應(yīng)用程序集,這樣每個頁面都有一個可部署的應(yīng)用程序集。但是,fixed-names 部署選項會增多應(yīng)用程序集的個數(shù),而且實(shí)際內(nèi)存使用也會增大。

從Visual Studio .NET 2003升級 因為跟VS2003采用了一樣的WEB項目開發(fā)模型,升級是非常非常簡單的。 Web site 項目的編譯選項不同導(dǎo)致了它跟Visual Studio .NET 2003WEB項目的極大不同。

雖然微軟提供了一個轉(zhuǎn)換向?qū)?,但是如果你的項目如果是一個復(fù)雜的VS2003項目,使用這個轉(zhuǎn)換向?qū)Ш?,你還需要對照轉(zhuǎn)換手冊,做很多工作。
如果你要從VS2003升級,建議不要用這種WEB站點(diǎn)開發(fā)模版。而是使用Web application 項目。

反饋

# re: VS2005將支持的兩種WEB編程模型的比較

2006-4-17 14:11 by ghj1976
我個人的感覺
大型網(wǎng)站開發(fā)用
Visual Studio 2005 Web Application Projects 更好點(diǎn)

輕靈級網(wǎng)站用 Visual Studio 2005 Web Site Projects 更好點(diǎn)

增加評論

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多