掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

ASP.NET1.0升級ASP.NET2.0的(de)問題小(xiǎo)結

2019/3/5 11:48:38

ASP.NET1.0升級ASP.NET2.0的(de)問題小(xiǎo)結

1.Global.asax文(wén)件(jiàn)的(de)處理(lǐ)形式不一樣,轉化後将出現錯誤

在vs2003中Global.asax具有(yǒu)代碼後置文(wén)件(jiàn),2.0下, 将代碼分(fēn)離(lí)文(wén)件(jiàn)移到(dào) App_Code 目錄下,以便使其自動變爲可(kě)通過應用(yòng)程序中的(de)任意 ASP.NET 頁面訪問。“Code-behind”屬性将從 ASAX 文(wén)件(jiàn)的(de)指令中删除。vs2005則直接把代碼寫在Global.asax。所以需要删除轉化過來的(de)文(wén)件(jiàn)重新加入,并把相(xiàng)應的(de)代碼copy過來。

2.2.0沒有(yǒu)了項目文(wén)件(jiàn)

在 1.1 應用(yòng)程序中,項目文(wén)件(jiàn)包含生成設置、對外部程序集的(de)引用(yòng)以及項目中的(de)文(wén)件(jiàn)列表。而在 2.0 應用(yòng)程序中,不再需要版本設置和(hé)文(wén)件(jiàn)列表,因爲 Web 項目目錄下的(de)所有(yǒu)文(wén)件(jiàn)都(dōu)被視爲 Web 項目的(de)一部分(fēn)。

3.代碼分(fēn)離(lí)模式

在 ASP.NET 1.1 中,代碼分(fēn)離(lí)模式使内容(例如(rú) test.aspx)與代碼(例如(rú) test.aspx.cs)分(fēn)離(lí)。内容頁面從代碼分(fēn)離(lí)頁面繼承而來,代碼分(fēn)離(lí)頁面包含用(yòng)戶和(hé)設計(jì)器(qì)生成的(de)代碼。

ASP.NET 2.0 通過使用(yòng)局部類來增強代碼分(fēn)離(lí)模式,使用(yòng) partial 關鍵字可(kě)以将單個(gè)類的(de)代碼分(fēn)隔到(dào)兩個(gè)獨立的(de)文(wén)件(jiàn)中。它允許一個(gè)類跨越多個(gè)文(wén)件(jiàn)。在新的(de)代碼分(fēn)離(lí)模式中,内容頁面從編譯的(de)類繼承而來,它由相(xiàng)應的(de)代碼分(fēn)離(lí)頁面以及自動生成的(de)存根文(wén)件(jiàn)組成,存根文(wén)件(jiàn)用(yòng)于爲内容頁面中使用(yòng)的(de)控件(jiàn)定義字段聲明(míng)。此項更改使自動生成的(de)代碼與用(yòng)戶的(de)代碼分(fēn)離(lí),并且使代碼分(fēn)離(lí)頁面顯著變小(xiǎo)且更加簡潔。局部類結構還降低了由于編輯設計(jì)器(qì)生成的(de)代碼而不小(xiǎo)心破壞頁面的(de)風險。

如(rú)果出錯請檢查是否有(yǒu)partial 關鍵字,否則添加 partial 關鍵字。

4.語法檢查

asp.net1.1程序,編譯時不會(huì)檢查aspx、aspcx等文(wén)件(jiàn)中的(de)語法錯誤,而vs2005編譯時會(huì)檢查項目中所有(yǒu)的(de)aspx、aspcx等文(wén)件(jiàn)中的(de)語法,所以如(rú)果有(yǒu)語法錯誤,會(huì)導緻編譯無法通過。

5.控件(jiàn)聲明(míng)

如(rú)果在 .aspx 頁面上(shàng)聲明(míng)了所有(yǒu)控件(jiàn),則從代碼分(fēn)離(lí)文(wén)件(jiàn)中删除所有(yǒu)控件(jiàn)聲明(míng),否則報錯:重複定義。

6.(僅限于 C#)将事件(jiàn)挂鈎代碼從代碼分(fēn)離(lí)文(wén)件(jiàn)的(de) InitialzeComponent 函數移到(dào) .aspx 頁面中

請注意,此操作不适用(yòng)于自動調用(yòng)的(de)事件(jiàn),包括 Page_Init、Page_Load、Page_DataBind、Page_PreRender、Page_Unload、Page_Error、Page_AbortTransaction 和(hé) Page_CommitTransaction。

7.部署方式(預編譯、完整編譯、可(kě)更新站點等)。

在 1.x 中,Web 應用(yòng)程序是作爲一個(gè)大(dà)型程序集而預編譯和(hé)部署的(de)。内容頁面(*.aspx)不在服務器(qì)上(shàng)編譯,但(dàn)可(kě)以在服務器(qì)上(shàng)編輯。借助新的(de)頁面編譯模式和(hé)目錄結構,您就可(kě)以使用(yòng)多種不同的(de)配置來部署 ASP.NET 2.0 應用(yòng)程序。一種情況,您可(kě)以預編譯所有(yǒu)的(de) ASPX 頁面并部署由完全編譯好的(de)程序集組成的(de) Web 應用(yòng)程序。在這種模式下,您不能(néng)在服務器(qì)上(shàng)輕松地(dì)更改該應用(yòng)程序。另一種情況,您可(kě)以在不預編譯任何代碼的(de)情況下部署應用(yòng)程序。在這種配置下,您可(kě)以直接在服務器(qì)上(shàng)更改該應用(yòng)程序中的(de) .aspx 頁面、代碼分(fēn)離(lí)文(wén)件(jiàn)或其他(tā)任何代碼。當用(yòng)戶請求服務器(qì)上(shàng)的(de)頁面時,頁面将被動态編譯。

8.将 .aspx 頁面中的(de)所有(yǒu) CodeBehind 屬性更改爲 CodeFile 屬性,CodeBehind: 指定包含與頁關聯的(de)類的(de)已編譯文(wén)件(jiàn)的(de)名稱。該屬性不能(néng)在運行(xíng)時使用(yòng)。

提供此屬性是爲了與以前版本的(de) ASP.NET 的(de)兼容,以實現代碼隐藏功能(néng)。在 ASP.NET 2.0 版中,應改用(yòng) CodeFile 屬性指定該源文(wén)件(jiàn)的(de)名稱,同時使用(yòng) Inherits 屬性指定該類的(de)完全限定名稱。

CodeFile 指定指向頁引用(yòng)的(de)代碼隐藏文(wén)件(jiàn)的(de)路(lù)徑。此屬性與 Inherits 屬性一起使用(yòng)可(kě)以将代碼隐藏源文(wén)件(jiàn)與網頁相(xiàng)關聯。此屬性僅對編譯的(de)頁有(yǒu)效。

9.将所有(yǒu)獨立的(de)代碼文(wén)件(jiàn)和(hé)AssemblyInfo.cs都(dōu)被移到(dào) App_Code 目錄下

但(dàn)運行(xíng)轉換向導之後,您可(kě)能(néng)會(huì)發現某些代碼分(fēn)離(lí)文(wén)件(jiàn)(例如(rú),*.aspx.cs 或 *.ascx.vb)被移到(dào) App_Code 目錄下。這表明(míng)代碼分(fēn)離(lí)文(wén)件(jiàn)的(de)内容頁面含有(yǒu)格式不正确的(de) Codebehind 指令,并且沒有(yǒu)進行(xíng)正确設置。也(yě)就是說,轉換向導不能(néng)确定該代碼分(fēn)離(lí)文(wén)件(jiàn)是否實際綁定到(dào)某個(gè)特定的(de) .aspx 頁面。

10.Web 服務

在 ASP.NET 1.x 中,Web 服務 (.asmx) 自動拆分(fēn)到(dào)空白标題頁面 (.asmx) 和(hé)包含實際方法的(de)代碼分(fēn)離(lí)文(wén)件(jiàn)中。

Asp.net2.0下:

•将代碼分(fēn)離(lí)類移到(dào) App_Code 目錄下,以便使其自動變爲可(kě)通過應用(yòng)程序中的(de)任意 ASP.NET 頁面訪問。

•更改 .asmx 文(wén)件(jiàn)中的(de) CodeBehind 屬性,以便指向新位置。(請注意,代碼分(fēn)離(lí)文(wén)件(jiàn)不使用(yòng)局部類,因此繼續使用(yòng) CodeBehind 屬性。)

•将所有(yǒu)的(de)默認


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号