新版本平臺的推出總是伴隨著許多壓力,以及人們對期待已久功能的興奮之情。開發(fā)者喜歡利用新技術(shù)建立應(yīng)用程序,不過,在將現(xiàn)有的可靠應(yīng)用程序由舊版本平臺移植到最新最完善版本的過程中,總會遇到一些困難。
本周,我來討論將在asp.net 1.1中建立的網(wǎng)絡(luò)應(yīng)用程序移植到2.0版本過程中可能出現(xiàn)的一些問題。
asp.net 2.0
新版的asp.net 2.0不只是一次升級——它是一次重大的技術(shù)更新,因為它改變了asp.net應(yīng)用程序的設(shè)計、編譯及配置方式。微軟意識到,現(xiàn)在還存在大量的 asp.net 1.1程序,因此2.0旨在讓舊版應(yīng)用程序無故障地運行。另一方面,技術(shù)升級也產(chǎn)生了將現(xiàn)有應(yīng)用程序轉(zhuǎn)換到2.0平臺的需要。考慮到上述問題,我們來討論一下這兩個版本之間的區(qū)別,以及在轉(zhuǎn)換過程中可能會遇到的問題。
版本變化
雖然asp.net 2.0針對1.1進行了許多改變,但某些變化對于項目轉(zhuǎn)換有著重大的影響。下面的列表簡單概括了一些主要改變:
·代碼隱藏模式:asp.net 2.0引入了部分類的概念,而一個類能夠跨越多個類文件。這是visual studio 2005應(yīng)用的一項主要功能,它將系統(tǒng)生成的代碼與用戶代碼分離開來。這避免了你在閱讀源代碼時遇到系統(tǒng)生成代碼的情況。部分類方法降低了無意編輯系統(tǒng)代碼并導(dǎo)致更小的代碼隱藏文件的風(fēng)險。
·目錄:asp.net 2.0增加了許多特殊的目錄,而1.1僅有一個必要的bin目錄。這些新目錄大都以app_為前綴,如app_code、app_date、app_ globeresources和app_localresources,bin目錄依然與一個主題目錄一同存在。新增目錄是2.0取消項目文件的主要手段。
·刪除項目文件:asp.net與visual studio 2005使用項目文件的日子一去不復(fù)返了。項目現(xiàn)在變成了完整的網(wǎng)絡(luò)項目目錄,這與1.1有了很大的不同,并可能引起后面提到的移植問題。
·編譯模式:在1.1中,所有的代碼被編譯到bin目錄中的一個集合中。在2.0中,這個集合被分割成幾個集合。這些集合可以在空閑時建立,或預(yù)先編譯。每個asp.net目錄,如app_code和app_data,以及web forms、user controls等都有各自的集合。這是應(yīng)用程序結(jié)構(gòu)方面的重大變化,它為向用戶交付應(yīng)用程序提供更多配置選項。
·應(yīng)用程序配置:1.1版應(yīng)用程序的配置相當(dāng)簡單,你只要移動內(nèi)容文件以及必要的集合文件,再復(fù)制并粘貼就可完成,并沒有多少選擇的余地。2.0為應(yīng)用程序配置提供各種選擇。例如,你可以選擇預(yù)先編譯代碼再配置它;或不預(yù)先編譯而使用其它方法。另外,你還可以鎖定已配置的內(nèi)容文件,防止在配置后再進行修改(這與1.1有很大不同)。
上表詳細(xì)說明了asp.net 1.1與2.0的主要差異,以及它們對應(yīng)用程序移植可能造成的影響。現(xiàn)在我們再進一步討論可能出現(xiàn)的問題。
應(yīng)用程序轉(zhuǎn)換
上一部分說明的新舊版本間的主要差異為轉(zhuǎn)換應(yīng)用程序時可能遇到的問題提供了一些線索。下表著重強調(diào)在將一個應(yīng)用程序移植到新的asp.net 2.0平臺時需要注意的問題:
·在轉(zhuǎn)換前,你必須確定應(yīng)用程序在1.1中能夠正常運行。在一個多功能項目中,在轉(zhuǎn)換前應(yīng)進行備份。
·2.0中刪除了項目文件,這與1.1有很大不同。在2.0中,所有的引用被轉(zhuǎn)移到它們自己的目錄中。另外,網(wǎng)絡(luò)項目文件夾現(xiàn)在變成項目。因此,在2.0中,需要將舊版1.1中有多個地址的項目劃分成單獨的項目。在轉(zhuǎn)換前必須劃分這些項目。
·2.0的新目錄結(jié)構(gòu)需要1.1中用到的資源和其它組件,你需要將它們轉(zhuǎn)移到新目錄中。
· .net framework已由1.1升級到2.0,因此2.0可能不再支持1.1中的一些功能(如類或它們的方法和/或?qū)傩裕?
轉(zhuǎn)換向?qū)?/strong>
微軟同時考慮到項目轉(zhuǎn)換問題。visual studio 2005中包含一個轉(zhuǎn)換向?qū)В瑤椭氵M行項目轉(zhuǎn)換。
在轉(zhuǎn)換前,visual studio轉(zhuǎn)換向?qū)紫纫竽銓ΜF(xiàn)有應(yīng)用程序進行備份(這是個非常不錯的主意)。接下來,它執(zhí)行轉(zhuǎn)換,并在完成轉(zhuǎn)換后顯示一個轉(zhuǎn)換日志。在新版本號中被替代或取消的.net framework功能是轉(zhuǎn)換過程中可能出現(xiàn)的常見問題。
列表a中的信息指出,一項功能已被新版本中的另一功能代替,因此我必須手工修改代碼。不同的應(yīng)用程序在轉(zhuǎn)換過程中可能出現(xiàn)各種問題。你需要單獨解決每一個問題,做出必要的改變,才能充分利用2.0平臺。
逐步轉(zhuǎn)換
不管哪種轉(zhuǎn)換,最好是逐步、有條理地進行。沒有必要進行快速轉(zhuǎn)換。asp.net 2.0中增加了大量新功能,可以方便地建立強大的解決方案,但當(dāng)你將舊版asp.net 1.1應(yīng)用程序轉(zhuǎn)換到新平臺時,必須考慮到這些改變。記住本文所討論的這些變化,利用轉(zhuǎn)換向?qū)В徊讲降剞D(zhuǎn)換到新平臺。
新聞熱點
疑難解答
圖片精選