公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2011年3月22日 星期二

ASP.NET升級白皮書

[2010.03.28 更新] 感謝王寧疆老師分享了透過Visual Studio 2010開發工具直接升級ASP.NET 1.x專案的經驗,因此將白皮書的內容做了一些調整。

前言

雖然目前ASP.NET已經進入到4.0版,但是相信在企業之中,仍然有些既有的ASP.NET 1.x版的網站仍然穩定的執行中。然而隨著企業需求的變化以及IT環境的調整,這些ASP.NET 1.x的網站通常也面臨到必須升級到新的版本,才能繼續提供更好的服務的時刻。在這一份白皮書中,將為各位介紹使用Visual Studio開發工具,從ASP.NET 1.x版升級到ASP.NET 4.0版所需要的步驟。

 

將ASP.NET 1.x 專案升級到ASP.NET 4.0的步驟

ASP.NET的技術架構從2.0版開始,無論是前端網站與後端功能方面,都做了大幅度的擴充與改變,因此在新版的Visual Studio 2010開發工具當中,提供了轉換的精靈,可以幫助你將現有的ASP.NET 1.x專案升級到ASP.NET 4.0的版本。

 

使用Visual Studio 2010轉換精靈升級ASP.NET 1.x專案

為了簡化從ASP.NET 1.x升級到ASP.NET 4.0所需要的步驟,微軟在ASP.NET 4.0的開發工具—Visual Studio 2010當中,提供了轉換精靈,協助你將現有的ASP.NET 1.x的專案升級成為ASP.NET 4.0的專案。各位可以透過Visual Studio 2010開發工具參考下面的步驟進行升級:

1. 備份專案

在升級現有的ASP.NET 1.x專案之前,請記得要先備份現有的ASP.NET 1.x應用程式專案。

2. 使用Visual Studio 2010開發工具開啟ASP.NET 1.x專案

當使用Visual Studio 2010開發工具開啟ASP.NET 1.x版的專案檔時,Visual Studio 2010開發工具就會啟動如圖1的轉換精靈:

pic01

1Visual Studio 2010轉換精靈

按下「下一步」按鈕之後,會出現圖2的對話方塊,詢問你需不需要建立現有的解決方案檔的備份:

pic02

2:「是否建立專案檔備份」對話方塊

若是你在步驟1已經將ASP.NET 1.x版的專案備份完成了,這裡就只需要按下「下一步」按鈕,就會出現如圖3的視窗:

pic03

3:「可以開始轉換」對話方塊

接著按下「完成」按鈕,Visual Studio 2010的轉換精靈就會開始將ASP.NET 1.x版的專案升級成為ASP.NET 4.0版的專案。接著你會看到圖4的提示對話方塊,提醒你在完成專案升級之後,還需要手動將原本的ASP.NET 1.x專案轉換成為Web應用程式專案:

pic04

圖4:完成轉換的對話方塊

按下「確定」按鈕之後,會出現圖5的「轉換完成」對話方塊,按下「關閉」按鈕專案就轉換完成了!!

pic05

5:「轉換完成」對話方塊

同時,若是在專案轉換的過程當中,有任何的錯誤或是需要注意的地方,Visual Studio 2010也會自動地顯示在轉換報告當中,如圖6所示:

pic06

6:轉換報告

3. 驗證新的ASP.NET 4.0專案

因為ASP.NET 4.0的專案與ASP.NET 1.x的專案有許多不同的地方,因此在透過Visual Studio 2010轉換精靈升級完成你的專案之後,除了要參考轉換報告解決升級時所遇到的問題之外,也必須要進行功能上的驗證,才能確定原有的專案是否成功的升級了。

4. 將ASP.NET 4.0專案轉換為Web應用程式

在Visual Studio 2010開發工具當中,為了方便維護在ASP.NET 4.0表單中的使用者自訂程式碼,特別將設計工具所建立的程式碼,獨立放置在附檔名為「.designer.cs」的程式碼後置檔案當中。當你驗證轉換完成的ASP.NET 4.0專案之後,可以在方案總管當中,按下滑鼠右鍵然後選取「轉換成Web應用程式」項目,如圖7所示:

pic07

圖7轉換成Web應用程式項目

此時會出現如圖8的對話方塊,按下「」按鈕之後就可以開始將專案轉換成為Web應用程式:

pic08

圖8:轉換成為Web應用程式對話方塊,

圖9的右邊是轉換後的ASP.NET 4.0專案,如果和左邊轉換前的專案比較,你會發現無論是ASP.NET網頁或是ASP.NET使用者控制項,都會多出一個「.designer.cs」的程式碼後置檔案,這就是Visual Studio 2010用來維護設計工具所建立的程式碼的程式碼後置檔:

pic09

圖9:轉換完成之後的ASP.NET 4.0專案目錄結構

 

ASP.NET 4.0專案與ASP.NET 1.x專案的相異處

升級完成之後,你也會發現在Visual Studio 2010開發工具中的ASP.NET 4.0專案與ASP.NET 1.x專案有下面幾個不一樣的地方:

1. 多目標Framework支援:預設Visual Studio 2010的轉換精靈會將ASP.NET 1.x專案升級成為ASP.NET 4.0專案,但若是有需要的話,你還是可以在專案的屬性頁當中,將專案設定為ASP.NET 2.0以後的任一個版本[1],如圖10所示:

pic10

圖10:設定ASP.NET專案的.NET Framework版本

2. 特殊目錄:ASP.NET 4.0當中規範了一些特別用途的目錄,像是App_Data是用來暫存專案中所使用的資料庫檔;而原本ASP.NET 1.x專案當中所建立自訂的類別定義檔,則會統一放在App_Code目錄底下,如圖11所示:

pic11

11ASP.NET 4.0專案當中的App_Code目錄

ASP.NET 4.0的特殊目錄整理如下:

目錄名稱

說明

App_Browsers

存放ASP.NET 4.0網頁在不同瀏覽器中,所需要調整的定義檔。

App_Code

存放ASP.NET 4.0專案中自訂的類別定義檔。

App_Data

存放ASP.NET 4.0專案所需要的mdf資料庫檔或是xml檔案。

App_GlobalResources

存放ASP.NET 4.0專案中的RESX或是Resources資源檔,這些資源檔定義會被編譯到組件中供專案全域使用。

App_LocalResources

存放ASP.NET 4.0專案中的RESX或是Resources資源檔,這些資源檔只會使用在特定的ASPX表單或是使用這控制項中。。

App_Themes

存放ASP.NET 4.0專案中的Skin或是Css樣式檔。

App_WebReferences

存放ASP.NET 4.0專案所參考的網路服務的WSDL文件。

Bin

存放ASP.NET 4.0專案建置時,所編譯完成的組件。

3. 程式碼後置模型的改變:ASP.NET 1.x的程式碼後置模型,是把網頁的樣式定義在ASPX的檔案中(例如Default.aspx);而使用者自訂與開發工具所建立的程式碼,則是統一放在另一個程式碼中(例如Default.aspx.cs)。而因為.NET Framework 2.0開始,就加入了對於部分類別(Partial class)的支援,因此在ASP.NET 4.0當中,可以更進一步的使用部分類別的語法,將使用者自訂的程式碼與開發工具自動建立的程式碼再分開成不同的檔案維護。如此一來,ASPX網頁後置的程式碼檔案就會更加的精簡,也將更容易維護。

此外,原本在ASP.NET 1.x網頁當中,@Page指示詞的CodeBehind屬性,在ASP.NET 2.0開始的網頁當中,也換成了CodeFile屬性,並且只需要設定到儲存使用者自訂程式碼的檔案就可以了。

4. 多組件編譯:Visual Studio 2010開發工具預設會將專案中的每個表單與使用這控制項編譯成各自獨立的組件,方便專案的更新與部署。

5. 發行選項:Visual Studio 2010針對ASP.NET 4.0的網站提供了多種部署的發行方式(如圖12)。你可以透過Visual Studio 2010所提供的「發行」功能,選擇ASP.NET 4.0專案開發完成之後,根據開發或是測試的需要,所要部署的不同位置:

pic12

12Visual Studio 2010的「發行」功能

更詳細的部署選項,可以從專案屬性頁的「封裝/發行Web」中設定:

pic13

13:設定「封裝/發行Web」功能

 

結語

在最新的ASP.NET 4.0當中,提供了許多現代大型網際網路應用程式所需要的功能,像是平行運算、MVC、AJAX… 等等;透過這些新功能的支援,ASP.NET的網站就可以發揮更多的應用。而對於ASP.NET 1.x的網站來說,必須將網站升級之後,才可以繼續使用Visual Studio 2010最新的功能。雖然透過Visual Studio 2010升級是件相當容易,也相當快速的事情,然而因為ASP.NET 4.0 在功能上做了很多改變,因此在使用轉換精靈升級現有的ASP.NET 1.x專案之後,必須要記得配合這些改變做必要的檢查與測試,將來才可以開發功能更強大的ASP.NET應用程式!!


[1] 若是你已經在專案中使用了某些.NET Framework 4.0所提供的新功能的話,這一個動作可能會導致這些新功能無法在舊版的.NET Framework中被正常的執行,必須要特別注意 !

 

 

將ASP.NET 2.0與ASP.NET 3.x應用程式升級為ASP.NET4.0

ASP.NET開發技術目前已被廣泛的使用在網際網路與企業當中,隨著網際網路應用需求的日新月異,為了滿足開發人員在應用方面的需求,ASP.NET所支援的功能也隨之增加,像是AJAX、Dynamic Data與MVC等等,都是ASP.NET 4.0當中所內建的新功能。換言之,開發人員不需要另外再外掛任何的函式庫,就可以直接的應用在ASP.NET的專案當中。

隨著ASP.NET版本的更新,許多開發人員也會想要把這些新的功能,應用在現有的專案當中,因此就需要將現有的ASP.NET 2.0或是ASP.NET 3.x應用程式升級到最新的ASP.NET 4.0版本。ASP.NET應用程式的升級可以分成兩個部分來談:

    • 升級ASP.NET應用程式專案
    • 升級ASP.NET執行環境
 
升級為ASP.NET 4.0應用程式專案

當使用Visual Studio 2010開發工具開啟ASP.NET 2.0、ASP.NET 3.0或是ASP.NET 3.5所開發的網際網路應用程式專案時,就可以透過Visual Studio 2010開發工具直接將網際網路應用程式專案直接升級成ASP.NET 4.0版 – 這也是最建議的一種方式[1]。使用Visual Studio 2010開發工具升級ASP.NET專案時,Visual Studio 2010開發工具會自動協助你修改Web.Config檔案,並且將專案關連到.NET Framework 4.0執行環境。

使用Visual Studio 2010開發工具升級ASP.NET應用程式的步驟相當的簡單。首先使用Visual Studio 2010開發工具開啟任何一個現有的ASP.NET網站或是應用程式專案,此時會出現如圖8「Visual Studio轉換精靈」的歡迎視窗:

pic01

圖8:「Visual Studio轉換精靈」

 

接著按下「下一步」按鈕,會出現Visual Studio轉換精靈的備份對話方塊,如圖9所示:

pic02

圖9:「選擇是否要建立備份」對話方塊

 

如果需要保留現有版本的專案或是解決方案複本,可以選擇「是,轉換前建立備份」的項目。轉換完成之後,Visual Studio 2010開發工具會自動將現有的專案或是解決解決方案檔升級成Visual Studio 2010開發工具的格式。接著按下「下一步」按鈕,會出現「可以開始轉換」的對話方塊,如圖10所示:

pic03

圖10:「可以開始轉換」對話方塊

 

按下「完成」按鈕之後,Visual Studio 2010開發工具就會開始轉換專案或是解決方案。轉換完成之後會出現「轉換完成」的對話方塊(如圖11):

pic04

圖11:「轉換完成」對話方塊

 

若是專案轉換不成功,你可以在關閉「轉換完成」對話方塊前,選取「關閉精靈時顯示轉換紀錄檔」,就可以檢視轉換失敗的原因。以ASP.NET網站來說,常見轉換失敗原因是因為目標網站的位置與解決方案檔中紀錄的位置不同,此時只需要在轉換完畢之後,重新將ASP.NET網站加入到解決方案檔中即可重新啟動轉換精靈,此時會看到如圖12的對話方塊,提醒你這一個ASP.NET網站即將升級成ASP.NET 4.0的網站:

pic05

圖12:升級ASP.NET網站的對話方塊

 

若是要讓Visual Studio 2010開發工具自動幫你升級網站,就按下「」按鈕。因為Visual Studio 2010開發工具支援多目標版本的ASP.NET網站編輯,因此若你只是要使用Visual Studio 2010開發工具繼續在原來的ASP.NET版本中維護網站,或是稍後才要手動升級ASP.NET網站的話,就按下「」按鈕。

另外需要注意的就是,若是在你要升級的ASP.NET網站中有其他的ASP.NET應用程式需要繼續使用舊版的執行環境的話,可能也不適合使用自動升級。這是因為ASP.NET的組態設定檔會自動繼承到網站的子目錄中,某些ASP.NET 4.0新版本的設定沒辦法在舊的版本中使用,升級後可能會導致這些還沒升級的網站執行發生錯誤。

 

升級ASP.NET執行環境

使用Visual Studio 2010開發工具可以幫助你輕鬆快速地將ASP.NET網站或是應用程式升級成ASP.NET 4.0版本,接著也必須要升級在IIS的ASP.NET執行環境,以確保ASP.NET 4.0應用程式部署之後可以正確地執行。現有的IIS環境只需要下載並安裝.NET Framework 4.0之後,在應用程式集區中就會自動建立ASP.NET 4.0的應用程式集區(圖13)。

pic06

圖13:ASP.NET應用程式集區

 

而既有的ASP.NET應用程式集區,也可以透過手動的方式升級。只需要在IIS管理員當中開啟ASP.NET應用程式集區的進階設定之後,就可以透過修改.NET Framework版本的方式,將既有的ASP.NET應用程式集區升級成為ASP.NET 4.0的執行環境:

pic07

圖14:設定ASP.NET 4.0應用程式集區

 
結語

ASP.NET 4.0提供了許多開發新一代網際網路應用程式所需要的新功能,而透過Visual Studio 2010開發工具,不但可以將現有的ASP.NET應用程式快速升級到ASP.NET 4.0版開始使用這些新功能,如果有必要的話,也可以在同一個解決方案當中維護不同版本的ASP.NET應用程式,對於開發人員來說相當的方便,對企業來說,也可以減少升級ASP.NET程式所需要的維護成本。


[1] 因為Visual Studio 2010支援多目標版本(Multu-Target),因此若是不想升級ASP.NET應用程式專案,還是可以使用Visual Studio 2010開發工具編輯與除錯現有的ASP.NET 2.0、ASP.NET 3.0與ASP.NET 3.5網際網路應用程式專案。

1 則留言:

Time研究室 提到...

您好,我姓陳,是博碩出版社的人員,目前負責一些書籍,目標是幫助開發程式設計人員與MIS人員解決常見問題。因為找不到您的聯絡資訊,因此在這邊留言,若您有興趣,是否可與我聯繫呢?我的Email如下
jhchen@drmaster.com.tw

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)