60應(yīng)用程序升級(jí)到Visual.ppt_第1頁
60應(yīng)用程序升級(jí)到Visual.ppt_第2頁
60應(yīng)用程序升級(jí)到Visual.ppt_第3頁
60應(yīng)用程序升級(jí)到Visual.ppt_第4頁
60應(yīng)用程序升級(jí)到Visual.ppt_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、DEV320: 將Visual Basic 6.0應(yīng)用程序升級(jí)到Visual Basic .NET,張煒 Developer EvangelistMicrosoft China,日程,為什么升級(jí)? 為升級(jí)做好準(zhǔn)備 大問題和小問題,Visual Basic .NET 不僅僅是Visual Basic 6+1,基于一個(gè)全新的平臺(tái)-.NET 更好的 Windows, COM+ 應(yīng)用 一流的 .NET 語言 與 Visual Basic 6.0 并不是 100% 兼容 升級(jí)向?qū)мD(zhuǎn)換 95% 另外 5% 需要您的努力 打開一個(gè)新世界!,更加強(qiáng)大!,更好的開發(fā)體驗(yàn) 實(shí)現(xiàn)了 OO 設(shè)計(jì) 更強(qiáng)壯的類型檢查 任

2、務(wù)列表 后臺(tái)編譯 跨語言 編寫更好的 Windows 程序 控件錨定(anchoring) 容易部署 編寫 web 應(yīng)用的最快方式 擴(kuò)展現(xiàn)有的應(yīng)用 Web 應(yīng)用和XML Web 服務(wù)的RAD開發(fā),VB 程序員的英明選擇,只有VB才具有的語言特性: 可讀性非常高的語言 大小寫不敏感 可選的參數(shù) 支持晚綁定 某些類型之間自動(dòng)轉(zhuǎn)換 大家熟悉的 BASIC 函數(shù) (Left$, On Error GoTo) VB才有的 RAD 體驗(yàn): 自動(dòng)格式化 編寫代碼時(shí),后臺(tái)自動(dòng)編譯 可升級(jí)現(xiàn)有的應(yīng)用,升級(jí)演練,demo,多層應(yīng)用的升級(jí) 項(xiàng)目組 增值支持Web,升級(jí)概述,在 Visual Basic .NET中打

3、開項(xiàng)目 運(yùn)行升級(jí)向?qū)?項(xiàng)目沒法編譯運(yùn)行 為什么?,Upgrade,VB6 Project,?,升級(jí)向?qū)?Form Layout,ActiveX Controls,ADO Data Binding,Code,Syntax Changes,COM Libraries,RES files,Behavior warnings,升級(jí)概述,為Visual Basic 6.0 應(yīng)用升級(jí)做準(zhǔn)備 檢查 解決問題 小問題 大問題 添加新功能,升級(jí)后的 項(xiàng)目,添加功能,解決問題,Visual Basic .NET,升級(jí),Visual Basic 6.0,為升級(jí)做準(zhǔn)備,部分升級(jí) 在 VB.NET中編寫新的客戶/組件

4、省及部分代碼到 VB.NET 使用 COM interop 完全升級(jí) 取決于你!,準(zhǔn)備升級(jí),學(xué)習(xí)原理 為 VB 6.0 應(yīng)用升級(jí)做準(zhǔn)備 從小的和簡單的開始 方法 重復(fù)進(jìn)行 在 VB .NET 中重新構(gòu)造 增值, 添加新功能,小問題,小問題,demo,晚綁定變量,Variant 升級(jí)到 Object Variants VB6 中的缺省類型 VB .NET中沒有缺省屬性 沒有IsMissing, IsEmpty Variant 和 Object IsObject 有新的方式,代碼規(guī)范的變量,Visual Basic 6.0 代碼 升級(jí)后 結(jié)果: 完全正常工作,Dim myTextBox As Te

5、xtBox myTextBox = Hey There,Dim myTextBox As System.Windows.Forms.TextBox myTextBox.Text = Hey There,Visual Basic 6.0 代碼 升級(jí)后 結(jié)果: 運(yùn)行時(shí)錯(cuò)誤,Dim myTextBox myTextBox = Hey There,Dim myTextBox As Object UPGRADE_WARNING: Couldnt resolve default property of object myTextBox. myTextBox = Hey There,代碼不規(guī)范的變量,解決辦

6、法的選擇,解決辦法 1: 在 Visual Basic 6.0中準(zhǔn)備 解決辦法 2: 升級(jí)后修改,Dim myTextBox myTextBox = Hey There,Dim myTextBox As Object UPGRADE_WARNING: Couldnt resolve default property of object myTextBox. myTextBox.Text = Hey There,As TextBox,.Text,ByRef 屬性,Get CustId takes ByRef param 如果傳遞 Text1.Text 結(jié)果: In VB6, Text1.Text

7、 = “Mike” In VB.NET, Text1.Text = “Mike.NET”,Private Property Get CustId(CustName As String) As String CustName = CustName & “.NET” CustId = CustName End Property,Text1.Text = “Mike” strCustId = CustId(Text1.Text),“Mike.NET”,ByRef 解決方法,解決方法: 用 ByVal,Private Property Get CustId(ByVal CustName As Stri

8、ng) As String CustName &= “.NET” CustId = CustName End Property,ByVal,&=,APIs 以及 As Any,SendMessage的情況 調(diào)用 SendMessage,Private Declare Function SendMessage _ Lib USER32 Alias SendMessageA (_ ByVal hwnd As Long, ByVal msg As Long, _ ByVal wParam As Long, ByVal lParam As Any ) _ As Long,As Any,Passing

9、string SendMessage Me.hwnd, WM_SETTEXT, 0, This is my text“ Passing NULL SendMessage Me.hwnd, WM_SETTEXT, 0, 0,“This is my text”,0,APIs 以及 As Any,VB.NET 聲明部分 調(diào)用 SendMessage (in Form_Click) 結(jié)果: 顯示“0”,Private Declare Auto Function SendMessage Lib USER32“ _ (ByVal hwnd As System.IntPtr , ByVal msg As I

10、nteger , _ ByVal wParam As Integer, ByVal lParam As String ) _ As Integer,As String,SendMessage Me.hwnd, WM_SETTEXT, 0, This is my text“ SendMessage Me.hwnd, WM_SETTEXT, 0, 0,“This is my text”,0,Auto,System.IntPtr,As Integer,As Integer,APIs 以及 As Any,解決方法: 重載聲明部分 結(jié)果: 正常顯示,標(biāo)題為空,Private Overloads Decl

11、are Auto Function SendMessage _ Lib USER32“ (ByVal hwnd As System.IntPtr, _ ByVal msg As Integer, ByVal wParam As Integer, _ ByVal lParam As String ) As Integer,As String,Private Overloads Declare Auto Function SendMessage _ Lib USER32“ (ByVal hwnd As System.IntPtr, ByVal msg As Integer, ByVal wPara

12、m As Integer, ByVal lParam As Integer ) As Integer,As Integer,Overloads,Overloads,大問題,事務(wù)處理,demo,EnterpriseServices 命名空間 ServicedComponent 類 Transaction attributes,升級(jí)事務(wù),升級(jí) MiddleTier 刪除 UpgradeSupport.vb 添加 System.EnterpriseServices 引用 從 ServicedComponent 類繼承 為類添加 transaction attributes 對(duì)項(xiàng)目添加keyfile

13、attribute 將 GetObjectContext 更改為 ContextUtil 用Regsvcs.exe注冊(cè),簡單的增值方法,支持Web 將 ActiveX 控件更改為 Windows Forms 控件 將 ADO 代替為 ADO.NET 多線程 新的圖形功能 移動(dòng)客戶端的支持,增值,demo,圖形功能,資源,書 “Upgrading VB6 to VB.NET” MS Press “Coding techniques for Visual Basic .NET” MS Press “Moving to VB .NET” APress “Programming VB.NET: A Guide For Experienced Programmers” APress Visual Basi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論