应用程序升级Visual Basic 6.0到Visual Basic.NET

应用程序升级Visual Basic 6.0到Visual Basic.NET
作 者: Ed Robinson Michael Bond Robert Ian Oliver 张莉 江楠
出版社: 清华大学出版社
丛编项: 微软 NET程序员系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: VB
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Ed Bobinson微软Visual Basic.NET开发小组项目经理,负责设计升级技术和帮助客户将应用程序导入.NET框架。常在行业会议上发表演讲,已出版多部白皮书,曾协助开发Visual Studio.NET培训教材。

内容简介

本书是《微软.NET程序员系列》从书之一,主要介绍将应用程序从VisualBasic6.0升级到VisualBasic.NET所涉及的各个方面的知识,是一本全面的代码升级参考书。本书分5大部分,共21章以及两个附录。第I部分概要介绍了升级前需要做的准备工作;第II部分讲述如何升级应用程序、如何使用COMInterop对VisualBasic6与VisualBasic.NET进行互操作等;第III部分讲述升级后如何处理各种具体问题,以使应用程序正常运行;第IV部分着重介绍升级后如何继续开发应用程序;最后一部分附录则完整列出了两种版本之间的对象和函数映射关系。本书适合可熟练使用VisualBasic、而且正在考虑将应用程序代码升级到VisualBasic.MET的广大程序员使用。同时也是相关技术人员的必备读物。样章免费下载:目录第1章第3章

图书目录

升级到Visual Basic .NET xi

前言 xiii

第Ⅰ部分 升级导论

第1章 比Visual Basic 6更强大的Visual Basic .NET 3

1.1 打破兼容性的原因 5

1.1.1 添加新特性 5

1.1.2 语言修复 6

1.1.3 语言更新 7

1.2 仍然是Visual Basic语言 7

1.2.1 细微差异 7

1.2.2 95%自动升级规划 8

1.3 为什么要升级 8

1.3.1 新的语言特性 9

1.3.2 Windows窗体 11

1.3.3 Web开发新特性 12

1.3.4 更好的开发环境 13

1.3.5 Visual Basic仍是Visual Basic开发人员的最佳选择 13

1.4 本章小结 15

第2章 Visual Basic 6.0与Visual Basic .NET的差异 16

2.1 .NET框架与ActiveX 16

2.1.1 .NET框架 17

2.1.2 内存管理 18

2.1.3 类型标识 20

2.2 开发环境的差异 23

2.2.1 菜单编辑器 24

2.2.2 工具箱 24

2.2.3 属性浏览器 25

2.2.4 Tab键布局编辑器 26

2.3 窗体包 27

2.3.1 Windows窗体单一标准 27

2.3.2 以同样的价格获得两个窗体包 28

2.4 语言差异 28

2.4.1 子例程调用必须使用圆括号 29

2.4.2 必须使用ByVal或ByRef 30

2.4.3 事件关联 30

2.4.4 数组必须具有0下限 31

2.4.5 不支持固定长度的字符串 32

2.4.6 删除了Variant数据类型 32

2.4.7 变量可见性 33

2.5 调试器中的变化 33

2.5.1 中断编辑和继续 33

2.5.2 出现错误后无法继续 34

2.5.3 在中断模式中禁止重绘 34

2.6 本章小结 34

第3章 升级方案 35

3.1 选择升级 35

3.2 升级向导的作用 37

3.3 测试 38

3.4 从Visual Basic的早期版本升级 38

3.5 选择要升级的项目 39

3.5.1 评估升级益处 39

3.5.2 评估需要做的工作 43

3.6 制订升级规划 45

3.7 本章小结 45

第4章 项目升级准备工作 47

4.1 为什么要作出更改 47

4.2 清除旧式代码 47

4.2.1 VarPtr. Defint以及其他 48

4.2.2 DAO和RDO数据绑定 48

4.3 良好的Visual Basic 6编码惯例 49

4.3.1 Variant和Variable 49

4.3.2 抽象 50

4.3.3 提防Null和Empty 56

4.3.4 隐式对象实例化 57

4.4 本章小结 59

第Ⅱ部分 升级应用程序

第5章 首次升级 63

5.1 升级预演 63

5.1.1 出现异常 67

5.1.2 语言变化 70

5.1.3 项目中的其他文件 73

5.2 升级项目组 74

5.3 使用VB Snippet Upgrade外接程序 77

5.4 使用命令行升级 79

5.5 本章小结 80

第6章 Visual Basic .NET中的常见任务 81

6.1 Visual Basic .NET使用指导 81

6.1.1 创建Visual Basic .NET项目 81

6.1.2 了解Visual Studio .NET IDE 83

6.1.3 运行项目 85

6.1.4 调试简介 85

6.2 其他 87

6.2.1 处理生成错误 87

6.2.2 使用任务列表 87

6.2.3 使用断点 88

6.3 问题解决技巧 89

6.3.1 使用System.Diagnostics库 90

6.3.2 使用CorDbg 90

6.3.3 简化复杂的表达式 91

6.4 本章小结 91

第7章 升级向导 92

7.1 升级的原则 92

7.1.1 尽量保留代码 92

7.1.2 能够运行 93

7.2 兼容库 93

7.3 升级向导的功能和局限 93

7.4 向导方法 94

7.4.1 项目升级 95

7.4.2 窗体与内部控件 100

7.4.3 ActiveX控件和ActiveX引用 107

7.4.4 Visual Basic代码 109

7.4.5 全局对象 114

7.4.6 类模块和用户控件 114

7.4.7 用于访问数据的对象 115

7.4.8 设计器 116

7.5 本章小结 116

第8章 错误. 警告和问题 117

8.1 不同类型的EWI 119

8.2 了解升级报告 121

8.3 使用EWI 124

8.4 不同的EWI 125

8.4.1 升级问题 125

8.4.2 升级ToDo 127

8.4.3 升级警告 127

8.4.4 设计错误 129

8.4.5 全局警告 131

8.4.6 升级注释 132

8.5 哪些问题未检测 133

8.6 本章小结 134

第9章 同时使用Visual Basic 6和Visual Basic .NET:COM Interop 135

9.1 COM interop开始起作用的位置 136

9.1.1 ActiveX控件 136

9.1.2 在.NET客户端和COM服务器组件之间通信 136

9.1.3 在COM客户端和.NET服务器组件之间通信 136

9.2 升级Visual Basic 6客户端/服务器应用程序 137

9.2.1 创建与COM服务器会话的.NET客户端 139

9.2.2 在Visual Basic .NET客户端和Visual Basic 6服务器之间调试 140

9.2.3 公开将由Visual Basic 6客户端调用的Visual Basic .NET组件 141

9.2.4 在Visual Basic 6客户端和.NET服务器之间调试 144

9.2.5 连接在一起 145

9.3 用.NET替换COM:二进制兼容 145

9.3.1 间接替代模型 146

9.3.2 在Visual Basic .NET类中启用二进制兼容 146

9.4 本章小结 150

第Ⅲ部分 运行项目

第10章 10个常见升级问题 153

10.1 默认属性 153

10.2 在COM对象中使用AddItem和ToString 155

10.3 确定性结束和垃圾回收 156

10.4 一般对象(控件/窗体/屏幕) 158

10.5 Dim…As New 159

10.6 Sub Main(或默认窗体) 160

10.7 字体不同 160

10.8 错误常量 162

10.9 拖放操作 163

10.9.1 Visual Basic 6中的拖放操作 163

10.9.2 Visual Basic .NET中的拖放操作 164

10.10 集合类 168

10.11 本章小结 171

第11章 解决语言问题 172

11.1 语言元素 172

11.1.1 #If…#End If预编译语句 173

11.1.2 常量和常量表达式 173

11.1.3 控件流 175

11.1.4 文件函数 179

11.2 类型与类型操作 184

11.2.1 Object取代Variant 184

11.2.2 数组 188

11.2.3 结构体 191

11.3 使代码具有线程安全 193

11.4 Windows API 196

11.4.1 类型变化 196

11.4.2 不再支持 As Any 197

11.4.3 AddressOf变化 198

11.4.4 向API函数传递用户定义类型 201

11.4.5 不再支持ObjPtr和StrPtr 203

11.5 本章小结 204

第12章 解决窗体问题 206

12.1 窗体结构上的共同之处 206

12.2 一般问题 207

12.2.1 属性. 方法和事件方面的差异 207

12.2.2 技术差异 209

12.3 涉及窗体的问题 213

12.3.1 事件引发差异 213

12.3.2 默认窗体:DefInstance 215

12.3.3 应用程序生存期和窗体 216

12.3.4 MDI窗体 219

12.4 本章小结 220

第13章 升级ActiveX控件与组件 221

13.1 仍然支持ActiveX控件的.NET 221

13.2 ActiveX控件宿主的限制 222

13.2.1 容器控件 222

13.2.2 无窗口控件 223

13.2.3 基于DAO的数据绑定控件 223

13.2.4 使用Visual Basic 6内部接口的控件 223

13.2.5 与Visual Basic 6扩展性模型挂钩的组件 224

13.2.6 ActiveX设计器 224

13.3 ActiveX .NET控件 224

13.3.1 ActiveX与Ax包装互用:Windows Forms Wrapper 224

13.3.2 属性和参数类型映射 225

13.3.3 不能映射Variant和Object类型 226

13.4 标准组件包装和ActiveX控件子对象 227

13.5 名称冲突 230

13.6 在.NET中使用ActiveX组件 231

13.7 本章小结 236

第14章 解决数据存取问题 237

14.1 Visual Basic中的数据存取 237

14.1.1 代码 237

14.1.2 数据绑定 238

14.1.3 ADO数据环境 239

14.1.4 不可升级的组件 239

14.2 ADO.NET是未来的发展方向 240

14.3 数据存取代码的一般性问题 241

14.3.1 DAO和RDO的模块方法 241

14.3.2 ADO 2.7 242

14.3.3 事件中的错误 242

14.3.4 RDO连接 244

14.3.5 Null. vbNullString以及vbNullChar 245

14.4 ADO数据环境 246

14.4.1 调用Dispose方法 246

14.4.2 Initialize事件 247

14.4.3 Microsoft Access数据库中的光标位置 247

14.5 ADO数据绑定 247

14.5.1 ADO数据控件的控件数组 248

14.5.2 在运行时设置数据绑定属性 249

14.6 本章小结 251

第15章 需要重新设计的问题 252

15.1 替换OLE容器控件 252

15.2 替换绘图函数 256

15.3 重写剪贴板代码 258

15.4 使用控件集合 259

15.5 使用窗体集合 261

15.6 升级PrintForm代码 263

15.7 取代属性页 264

15.8 删除ObjPtr. VarPtr和StrPtr 266

15.9 本章小结 268

第16章 升级COM+组件 269

16.1 COM+应用程序类型 269

16.2 在Visual Basic .NET中使用COM+ 270

16.2.1 Visual Basic .NET中的COM+要求 272

16.2.2 继承Serviced Component类 272

16.2.3 使用属性 273

16.2.4 为程序集创建强名称 277

16.2.5 注册COM+应用程序 278

16.3 升级COM+组件 280

16.4 使.NET和COM组件协同工作 283

16.5 本章小结 283

第17章 升级VB应用程序向导创建的项目 284

17.1 App.Revision 285

17.2 frmAbout窗体 287

17.3 frmLogin窗体 287

17.4 frmMain窗体 288

17.4.1 API Declare语句 288

17.4.2 mnuHelpAbout_Click事件过程 289

17.4.3 App.HelpFile 289

17.4.4 MDI项目中的ActiveMdiChild 290

17.4.5 frmMain_Closed中的窗体集合 292

17.4.6 MDI项目中的剪贴板 292

17.5 frmSplash窗体 294

17.6 frmBrowser窗体 295

17.7 数据窗体 296

17.8 Module1模块 296

17.9 本章小结 298

第Ⅳ部分 使应用程序增值的技术

第18章 使应用程序增值 301

18.1 示例程序概述 301

18.2 新的文件函数 302

18.2.1 读取目录内容 302

18.2.2 在一个DLL中查找所有窗体 303

18.2.3 动态加载窗体 304

18.2.4 读写文件 304

18.2.5 使用动态属性 305

18.3 Windows的新功能 307

18.3.1 访问注册表 307

18.3.2 控件锚定 308

18.3.3 图形特性 309

18.3.4 Windows XP样式的控件 312

18.4 XCopy部署 314

18.5 本章小结 314

第19章 用Windows窗体控件替代ActiveX控件 316

19.1 升级控件的好处 316

19.2 替换控件的过程 318

19.3 Visual Basic 6 ActiveX控件映射 323

19.4 本章小结 326

第20章 从ADO迁移到ADO.NET 327

20.1 为ADO程序员设计的ADO.NET 327

20.1.1 ADO.NET 概况 327

20.1.2 数据集 328

20.2 将ADO代码集成到Visual Basic .NET应用程序中 330

20.2.1 将ADO记录集绑定到.NET控件上 330

20.2.2 使用XML Web服务和ADO 331

20.3 将ADO对象映射到ADO.NET 333

20.3.1 Connection和Command对象 334

20.3.2 记录集 335

20.4 使用 DataView 337

20.5 数据绑定 338

20.6 关于性能方面的问题 339

20.7 本章小结 341

第21章 升级分布式应用程序 342

21.1 分布式应用程序的重要概念 342

21.1.1 松耦合与紧耦合 应用程序 343

21.1.2 方法调用的开销 343

21.1.3 组件化和逻辑组织 345

21.2 .NET中的分布式技术 346

21.3 XML Web服务 346

21.3.1 创建简单的XML Web 服务 347

21.3.2 在现有应用程序中支持 Web服务 351

21.4 远程处理 355

21.4.1 远程处理示例 357

21.4.2 远程处理的体系结构 359

21.5 分布式COM+程序 364

21.5.1 COM+和远程处理技术 364

21.5.2 使用SOAP服务 365

21.5.3 .NET中的COM+应用 程序代理 366

21.6 本章小结 366

第Ⅴ部分 附录

附录A 对象映射参考 371

附录B 函数映射参考