60应用程序升级到Visual.ppt_第1页
60应用程序升级到Visual.ppt_第2页
60应用程序升级到Visual.ppt_第3页
60应用程序升级到Visual.ppt_第4页
60应用程序升级到Visual.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DEV320: 将Visual Basic 6.0应用程序升级到Visual Basic .NET,张炜 Developer EvangelistMicrosoft China,日程,为什么升级? 为升级做好准备 大问题和小问题,Visual Basic .NET 不仅仅是Visual Basic 6+1,基于一个全新的平台-.NET 更好的 Windows, COM+ 应用 一流的 .NET 语言 与 Visual Basic 6.0 并不是 100% 兼容 升级向导转换 95% 另外 5% 需要您的努力 打开一个新世界!,更加强大!,更好的开发体验 实现了 OO 设计 更强壮的类型检查 任

2、务列表 后台编译 跨语言 编写更好的 Windows 程序 控件锚定(anchoring) 容易部署 编写 web 应用的最快方式 扩展现有的应用 Web 应用和XML Web 服务的RAD开发,VB 程序员的英明选择,只有VB才具有的语言特性: 可读性非常高的语言 大小写不敏感 可选的参数 支持晚绑定 某些类型之间自动转换 大家熟悉的 BASIC 函数 (Left$, On Error GoTo) VB才有的 RAD 体验: 自动格式化 编写代码时,后台自动编译 可升级现有的应用,升级演练,demo,多层应用的升级 项目组 增值支持Web,升级概述,在 Visual Basic .NET中打

3、开项目 运行升级向导 项目没法编译运行 为什么?,Upgrade,VB6 Project,?,升级向导,Form Layout,ActiveX Controls,ADO Data Binding,Code,Syntax Changes,COM Libraries,RES files,Behavior warnings,升级概述,为Visual Basic 6.0 应用升级做准备 检查 解决问题 小问题 大问题 添加新功能,升级后的 项目,添加功能,解决问题,Visual Basic .NET,升级,Visual Basic 6.0,为升级做准备,部分升级 在 VB.NET中编写新的客户/组件

4、省及部分代码到 VB.NET 使用 COM interop 完全升级 取决于你!,准备升级,学习原理 为 VB 6.0 应用升级做准备 从小的和简单的开始 方法 重复进行 在 VB .NET 中重新构造 增值, 添加新功能,小问题,小问题,demo,晚绑定变量,Variant 升级到 Object Variants VB6 中的缺省类型 VB .NET中没有缺省属性 没有IsMissing, IsEmpty Variant 和 Object IsObject 有新的方式,代码规范的变量,Visual Basic 6.0 代码 升级后 结果: 完全正常工作,Dim myTextBox As Te

5、xtBox myTextBox = Hey There,Dim myTextBox As System.Windows.Forms.TextBox myTextBox.Text = Hey There,Visual Basic 6.0 代码 升级后 结果: 运行时错误,Dim myTextBox myTextBox = Hey There,Dim myTextBox As Object UPGRADE_WARNING: Couldnt resolve default property of object myTextBox. myTextBox = Hey There,代码不规范的变量,解决办

6、法的选择,解决办法 1: 在 Visual Basic 6.0中准备 解决办法 2: 升级后修改,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 结果: 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的情况 调用 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 声明部分 调用 SendMessage (in Form_Click) 结果: 显示“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,解决方法: 重载声明部分 结果: 正常显示,标题为空,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,大问题,事务处理,demo,EnterpriseServices 命名空间 ServicedComponent 类 Transaction attributes,升级事务,升级 MiddleTier 删除 UpgradeSupport.vb 添加 System.EnterpriseServices 引用 从 ServicedComponent 类继承 为类添加 transaction attributes 对项目添加keyfile

13、attribute 将 GetObjectContext 更改为 ContextUtil 用Regsvcs.exe注册,简单的增值方法,支持Web 将 ActiveX 控件更改为 Windows Forms 控件 将 ADO 代替为 ADO.NET 多线程 新的图形功能 移动客户端的支持,增值,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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论