版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年医师资格考试外科学专业综合测试卷
- 2026新学期家长合理膳食与体重管理课件:体重管理与慢性病防控
- 小学五年级班会教学设计-火场逃生与自救能力的情境化构建
- 七年级心理健康《生气也没关系》教学设计
- 高中政治统编版必修一“原始社会的解体到阶级社会的演进”教学设计
- 广西桂林市2026年化学中考二模考试卷附答案
- 高中地理高一下学期人口迁移区域联系视域教学设计
- 2027届高三生物一轮复习教学设计:人类遗传病与系谱图解析
- 高中三年级英语语法专题复习教学设计-沪外版2025学年综合运用能力提升策略
- 高三化学二轮复习教案:生物大分子与合成高分子的结构辨析与应用突破
- 2026年员工网络安全意识培训考核题库及答案
- 2026年助理医师考核试题和答案
- 2026年秋季秋冬传染病预防衔接课
- 2025-2026学年人教版三年级美术上册全册教案
- 2026年村长助理笔试题库(含答案)
- 2026年患者投诉处理与沟通技巧课件(高清可编辑课件)
- 2026南开大学校友工作办公室招聘劳务派遣人员1人笔试参考题库及答案详解
- 1.2小学科学苏教版(新教材)六年级上册第一单元第2课《燃烧与空气》课件(含AI赋能)
- 养老院老人自备药品管理制度
- 《老年防烫伤专科护理|安全防护 + 全套护理措施》
- 2026年起重安全培训测试题及答案
评论
0/150
提交评论