第Ⅰ部分 语言结构和环境 3
第1章 Visual Studio 2012 3
1.1 Visual Studio 2012 4
1.2 Visual Basic的关键字和语法 5
1.2.1 控制台应用程序 8
1.2.2 从项目模板创建项目 9
1.2.3 Solution Explorer窗口 11
1.2.4 项目属性 13
1.2.5 Assembly Information屏幕 14
1.2.6 编译器设置 15
1.2.7 调试属性 18
1.2.8 引用 19
1.2.9 资源 20
1.2.10 设置 22
1.2.11 其他项目属性选项卡 23
1.3 PrOVB_VS2012项目 23
1.4 增强示例应用程序的功能 26
1.4.1 自定义代码 28
1.4.2 生成应用程序 37
1.4.3 重用第一个Windows窗体 43
1.5 Visual Studio 2012中的有用功能 43
1.5.1 任务列表 44
1.5.2 Server Explorer 44
1.5.3 类图 45
1.6 小结 46
第2章 公共语言运行库 47
2.1 框架配置文件和平台 48
2.1.1 客户端和完整框架配置文件 48
2.1.2 针对Metro的框架 49
2.1.3 Silverlight、Windows Phone以及其他应用程序 49
2.1.4 .NET 4.5可移植类库 49
2.2 .NET应用程序的组成元素 50
2.2.1 类型 50
2.2.2 模块 51
2.2.3 程序集 52
2.3 跨语言集成 53
2.3.1 通用类型系统 53
2.3.2 元数据 54
2.4 IL反汇编程序 57
2.5 内存管理 59
2.5.1 传统的垃圾回收机制 59
2.5.2 更快地为对象分配内存 64
2.5.3 垃圾回收器的优化 65
2.6 名称空间 66
2.6.1 什么是名称空间 67
2.6.2 名称空间与引用 69
2.6.3 常用的名称空间 70
2.6.4 导入名称空间并指定别名 71
2.6.5 为名称空间指定别名 73
2.6.6 在ASP.NET中引用名称空间 73
2.7 创建自己的名称空间 74
2.8 My关键字 76
2.8.1 My.Application名称空间 77
2.8.2 My.Computer名称空间 80
2.8.3 My.Resources名称空间 81
2.8.4 My.User名称空间 81
2.8.5 My.WebServices名称空间 82
2.9 扩展My名称空间 82
2.10 小结 84
第3章 对象和Vialial Basic 85
3.1 面向对象的术语 86
3.1.1 对象、类和实例 87
3.1.2 对象的组成 87
3.1.3 System.Object 89
3.2 使用Visual Basic类型 90
3.2.1 值类型和引用类型 91
3.2.2 基本类型 93
3.3 命令:条件语句 94
3.3.1 IfThen 94
3.3.2 比较运算符 95
3.3.3 Seloct Case 96
3.4 值类型(结构) 97
3.4.1 布尔类型 97
3.4.2 整数类型 98
3.4.3 无符号类型 99
3.4.4 小数类型 100
3.4.5 Char和Byte类型 102
3.4.6 DateTime类型 103
3.5 引用类型(类) 103
3.5.1 Object类 104
3.5.2 String类 104
3.5.3 DBNull类和IsDBNull()函数 108
3.6 参数传递 109
3.6.1 ParamArray 109
3.6.2 变量的作用域 110
3.7 使用对象 111
3.7.1 对象的声明和实例化 111
3.7.2 对象引用 112
3.7.3 前期绑定与后期绑定 113
3.7.4 数据类型转换 114
3.7.5 执行显式转换 115
3.8 创建类 119
3.8.1 基本类 119
3.8.2 处理事件 128
3.8.3 处理多个事件 128
3.8.4 WithEvents关键字 129
3.8.5 触发事件 129
3.8.6 声明和触发自定义事件 130
3.8.7 用WithEvents关键字接收事件 131
3.8.8 用AddHandler接收事件 132
3.8.9 构造函数方法 134
3.9 面向对象概念 135
3.9.1 重载方法 135
3.9.2 重载构造函数方法 137
3.9.3 共享方法、变量和事件 138
3.9.4 运算符重载 142
3.9.5 委托 145
3.10 小结 149
第4章 定制对象 151
4.1 继承 152
4.1.1 何时使用继承 153
4.1.2 实现继承 154
4.1.3 与基类、类及对象交互 171
4.1.4 构造函数 174
4.1.5 对象作用域 177
4.1.6 事件与继承 178
4.1.7 共享方法 180
4.1.8 创建抽象基类 180
4.2 多接口 182
4.2.1 对象接口 182
4.2.2 抽象接口 184
4.3 抽象 191
4.4 封装 193
4.5 多态性 193
4.5.1 方法签名 193
4.5.2 实现多态性 194
4.6 小结 198
第5章 高级语言结构 199
5.1 准备示例应用程序 200
5.2 lambda表达式 202
5.2.1 创建一个lambda表达式子例程 202
5.2.2 创建一个lambda表达式函数 204
5.3 使用lambda表达式 205
5.3.1 使用lambda表达式来处理事件 205
5.3.2 带有lambda表达式的LINQ 207
5.4 Async和Await 209
5.4.1 核心概念 209
5.4.2 使用Async和Await 213
5.5 迭代器 217
5.5.1 核心概念 217
5.5.2 使用迭代器 220
5.6 小结 221
第6章 异常处理和调试 223
6.1 System.Exception 223
6.2 处理异常 224
6.2.1 Try、Catch和Finally关键字 225
6.2.2 Throw关键字 226
6.2.3 Exit Try语句 227
6.2.4 使用异常属性 228
6.3 记录错误 231
6.3.1 事件日志 232
6.3.2 使用Trace和Debug对象 233
6.4 小结 235
第Ⅱ部分 业务对象和数据访问 239
第7章 数组、集合和泛型 239
7.1 数组 240
7.1.1 多维数组 241
7.1.2 UBound函数 242
7.1.3 ReDim语句 242
7.1.4 Preserve关键字 243
7.2 集合 243
7.2.1 循环语句 245
7.2.2 装箱 247
7.3 泛型 249
7.3.1 使用泛型 249
7.3.2 Nullable类型 250
7.3.3 泛型类型 251
7.3.4 泛型方法 254
7.4 创建泛型 255
7.4.1 泛型类型 255
7.4.2 泛型方法 262
7.4.3 约束 262
7.4.4 泛型和后期绑定 265
7.4.5 协变和逆变 266
7.5 小结 267
第8章 在Visual Basic中使用XML 269
8.1 XML简介 270
8.2 XML序列化 271
8.2.1 序列化 271
8.2.2 反序列化 273
8.2.3 源代码样式特性 275
8.3 System.Xml文档支持 276
8.3.1 XML流样式分析程序 277
8.3.2 文档对象模型(DOM) 288
8.4 LINQ to XML 293
8.4.1 LINQ to XML帮助对象 293
8.4.2 XML文本 297
8.4.3 查询XML文档 298
8.4.4 读写XML文档 301
8.5 XSL转换 303
8.5.1 使用XSLT转换不同的XML标准 306
8.5.2 System.Xml.Xsl中定义的其他类和接口 309
8.6 ASP.NET中的XML 309
8.6.1 XmlDataSource服务器控件 309
8.6.2 XmlDataSource控件的名称空间问题 313
8.6.3 Xml服务器控件 314
8.7 小结 315
第9章 ADO.NET和LINQ 317
9.1 ADO.NET的体系结构 318
9.2 ADO.NET的基本功能 319
9.2.1 ADO.NET的常见任务 319
9.2.2 ADO.NET的基本名称空间和类 324
9.2.3 ADO.NET组件 325
9.3 .NET数据提供程序 326
9.3.1 Connection对象 326
9.3.2 Command对象 327
9.3.3 通过Command对象使用存储过程 328
9.3.4 DataReader对象 331
9.3.5 异步执行命令 332
9.3.6 DataAdapter对象 335
9.3.7 SQL Server.NET数据提供程序 339
9.3.8 OLE DB.NET数据提供程序 340
9.4 DataSet组件 340
9.4.1 DataTableCollection对象 340
9.4.2 DataRelationCollection对象 341
9.4.3 ExtendedProperties属性 341
9.4.4 创建和使用DataSet对象 342
9.4.5 ADO.NET的DataTable对象 343
9.4.6 DataSet和DataTable对象的高级ADO.NET特性 343
9.5 使用通用提供程序模型 345
9.6 ADO.NET中的连接池 347
9.7 Transactions类和SystemTransactions名称空间 347
9.7.1 创建事务 348
9.7.2 创建资源管理器 349
9.8 小结 350
第10章 使用Entity Framework访问数据 351
10.1 对象关系映射 352
10.2 Entity Framework体系结构 352
10.2.1 概念模型 353
10.2.2 存储模型 358
10.2.3 映射模型 359
10.2.4 LINQ to Entities 359
10.2.5 ObjectContext 360
10.3 将对象映射到实体 361
10.3.1 简单映射 361
10.3.2 为多个对象使用一个表 363
10.3.3 更新模型 367
10.4 小结 367
第11章 服务(XML/WCF) 369
11.1 Web服务 369
11.1.1 如何组合起来 370
11.1.2 WCF服务的构成 371
11.2 向SOA迈出一大步 372
11.2.1 WCF的功能 372
11.2.2 协定和元数据 373
11.2.3 使用WS-协议 373
11.3 构建WCF服务 374
11.3.1 创建接口 376
11.3.2 使用接口 376
11.3.3 在控制台应用程序中包含WCF服务 377
11.3.4 查看WSDL文档 381
11.4 建立WCF使用者应用程序 382
11.4.1 添加服务引用 382
11.4.2 查看引用 384
11.4.3 配置文件的修改 386
11.4.4 编写使用代码 387
11.5 使用数据协定 389
11.6 名称空间 391
11.6.1 建立主机应用程序 391
11.6.2 建立使用者应用程序 392
11.6.3 查看HelloCustomerService的WSDL和架构 394
11.7 小结 396
第Ⅲ部分 特定主题与库 399
第12章 XAML软件包 399
12.1 所有XAML平台共享的功能 400
12.2 XAML标记语言 400
12.2.1 XAML的示例页面 401
12.2.2 元素的代码隐藏和命名 402
12.2.3 相关术语 402
12.2.4 UIElement和FrameworkElement类 403
12.2.5 常用元素 403
12.2.6 属性设置:特性语法和元素语法 403
12.2.7 在XAML中引用额外的名称空间 404
12.3 布局系统 405
12.3.1 计量单位 405
12.3.2 面板 405
12.3.3 调整元素的大小和布局 412
12.4 控件和内容 416
12.4.1 内容控件 416
12.4.2 内容模板的含义 416
12.4.3 Brushes 418
12.5 XAML中的资源 420
12.5.1 Resources属性 420
12.5.2 关于资源字典的更多内容 420
12.5.3 资源的范围 421
12.6 数据绑定 421
12.6.1 数据绑定:基本概念 421
12.6.2 绑定类和绑定表达式 422
12.6.3 DataContext 423
12.6.4 XAML元素之间的数据绑定 423
12.6.5 指定数据源的其他方法 424
12.6.6 属性更改通知 425
12.6.7 在绑定期间进行数据转换 425
12.6.8 处理绑定失败 428
12.6.9 复杂的绑定路径 428
12.6.10 在代码中使用数据绑定 429
12.7 数据模板和ItemControls 429
12.7.1 使用一些示例数据设置阶段 430
12.7.2 ItemControls 431
12.7.3 XAML ListBox 431
12.7.4 数据模板 433
12.7.5 数据模板中的数据绑定 436
12.7.6 在数据模板之间切换 437
12.7.7 使用ItemPanel更改ListBox项的布局 439
12.7.8 额外的IternControls 440
12.8 样式 440
12.8.1 什么是样式 440
12.8.2 确定样式的范围 441
12.8.3 隐式样式 441
12.8.4 BasedOn样式 441
12.8.5 ItemContainerStyle 442
12.9 控件模板 442
12.9.1 “无外观”控件 443
12.9.2 为CheckBox换肤 443
12.9.3 创建控件模板 444
12.10 小结 444
第13章 为Windows 8创建XAML应用程序 447
13.1 Windows 8中的XAML有何不同 448
13.1.1 缺少的元素 448
13.1.2 被Windows 8中同等功能所取代的旧元素 449
13.1.3 语法差异 449
13.1.4 将页面作为根可视化元素来使用 449
13.2 Windows 8 UI约定 449
13.3 UI/UX标准 451
13.3.1 应用程序与Windows 8操作系统之间的交互 451
13.3.2 无边框的应用程序 451
13.3.3 贴靠视图 452
13.3.4 字体和字体标准 452
13.3.5 应用程序中可视化元素的大小和布局 453
13.4 Windows 8中的新可视化元素 453
13.4.1 AppBar 453
13.4.2 ListView、GridView和FlipView控件 457
13.4.3 选取器 470
13.4.4 ProgressRing 471
13.4.5 ToggleSwitch 471
13.4.6 其他新元素 472
13.4.7 旧元素的新用法 473
13.5 在Visual Studio 2012中更改可视化设计器 474
13.5.1 更好的Resource选择器 474
13.5.2 常见和高级的属性类别 475
13.5.3 转换属性 476
13.5.4 动画 476
13.6 Visual Studio 2012中的应用程序模板 478
13.6.1 Split App模板 478
13.6.2 Grid App模板 479
13.6.3 布局意识页面 480
13.6.4 Common文件夹中的项目 481
13.6.5 StandardStyles.xaml 481
13.6.6 针对GridApp和SplitApp模板的在线文档 481
13.7 实现动态磁贴 482
13.8 实现约定 483
13.9 小结 484
第14章 使用ASP.NET、MVC、JavaScript和HTML开发应用程序 485
14.1 Visual Studio对ASP.NET的支持 486
14.1.1 网站和Web应用程序项目 486
14.1.2 Web服务器选项 486
14.2 服务器端开发 487
14.2.1 Web窗体 487
14.2.2 Web页面和Razor 507
14.3 ASP.NET MVC 521
14.4 客户端Web开发 539
14.5 使用HTML和JavsScript构建Windows 8样式的应用程序 552
14.6 小结 558
第15章 本地化 559
15.1 文化和区域 560
15.1.1 理解文化类型 560
15.1.2 线程 561
15.1.3 在ASP.NET中声明全局文化 563
15.1.4 在ASP.NET中使用文化设置 564
15.2 转换数值和操作 565
15.2.1 理解日期之间的区别 565
15.2.2 数字和货币的区别 568
15.2.3 理解排序的区别 570
15.3 ASP.NET资源文件 571
15.3.1 使用本地资源 571
15.3.2 Windows Store应用程序的本地化 576
15.4 小结 577
第16章 应用程序服务 579
16.1 为应用程序服务使用IIS 579
16.2 Windows服务 580
16.3 Windows服务的特性 580
16.4 与Windows服务进行交互 581
16.5 创建Windows服务 582
16.5.1 用于Windows服务的.NET Framework类 582
16.5.2 其他类型的Windows服务 585
16.6 在VB中创建Windows服务 585
16.7 创建文件监视器服务 587
16.7.1 创建Windows服务的解决方案 587
16.7.2 向服务添加.NET组件 587
16.7.3 安装服务 590
16.7.4 启动服务 591
16.7.5 卸载服务 592
16.8 与服务通信 592
16.8.1 ServiceController类 593
16.8.2 将ServiceController集成到示例中 593
16.8.3 ServiceController的更多内容 595
16.9 自定义命令 595
16.10 向服务传递字符串 597
16.11 调试服务 597
16.12 小结 599
第17章 程序集和反射 601
17.1 程序集 602
17.2 清单 602
17.2.1 程序集标识 605
17.2.2 引用的程序集 607
17.3 程序集与部署 608
17.3.1 应用程序私有的程序集 608
17.3.2 共享程序集 608
17.4 版本化问题 609
17.4.1 应用程序隔离 610
17.4.2 并行执行 610
17.4.3 自描述组件 610
17.4.4 版本策略 611
17.4.5 配置文件 612
17.5 反射的基础知识 615
17.5.1 Assembly类 615
17.5.2 获得当前加载的程序集 616
17.5.3 Type类 616
17.6 程序集的动态加载 618
17.6.1 Assembly类的LoadFrom方法 618
17.6.2 动态加载示例 619
17.6.3 传入程序集 620
17.7 小结 620
第18章 .NET Framework中的安全性 623
18.1 安全的概念与定义 624
18.2 Windows Store项目 625
18.3 System.Security.Permissions名称空间 626
18.3.1 代码访问权限 628
18.3.2 身份权限 629
18.3.3 基于角色的权限 629
18.4 管理代码访问权限集合 632
18.5 用户访问控制 635
18.6 定义应用程序的UAC设置 635
18.6.1 安全性工具 637
18.6.2 使用SecurityException类处理异常 638
18.7 加密基础 638
18.7.1 散列算法 640
18.7.2 加密散列算法 640
18.7.3 对称密钥加密算法 643
18.7.4 PKCS 646
18.8 小结 652
第19章 使用任务和线程进行并行编程 655
19.1 启动并行任务 655
19.1.1 System.Threading.Tasks.Parallel类 656
19.1.2 Parallel.Invoke 656
19.2 将串行代码转换为并行代码 661
19.2.1 检测热点 661
19.2.2 测试并行执行获得的速度提升 663
19.2.3 理解并行 665
19.3 并行循环 665
19.3.1 Parallel.For 665
19.3.2 Parallel.ForEach 670
19.3.3 退出并行循环 675
19.4 指定所期望的并行度 679
19.4.1 ParallelOptions 680
19.4.2 理解硬件线程和逻辑核心 681
19.5 创建和管理任务 682
19.5.1 System.Threading.Tasks.Task 683
19.5.2 理解任务的生命周期 684
19.5.3 使用任务并行化代码 685
19.5.4 从任务中返回值 694
19.5.5 编写并行代码 696
19.5.6 理解并发集合功能 697
19.5.7 将LINQ转换为PLINQ 700
19.6 小结 703
第20章 通过Windows 8 Windows Store部署XAML应用程序 705
20.1 Windows 8应用程序的新部署选项 705
20.1.1 WinRT应用程序的部署 706
20.1.2 开发人员许可证 706
20.1.3 使用Windows Store 707
20.2 在Windows Store中获取一个账户 707
20.2.1 Microsoft账户是必需的 707
20.2.2 Windows应用商店账户类型 707
20.2.3 获取账户所需的步骤 708
20.3 Windows Store中应用程序的要求 710
20.3.1 具体要求 710
20.3.2 一般要求 711
20.4 在Visual Studio 2012中使用Windows Store 712
20.4.1 Store菜单中的选项 712
20.4.2 创建应用程序包 713
20.4.3 查看应用程序是否满足要求 715
20.4.4 将应用程序部署到Windows Store 716
20.5 LOB应用程序的旁加载 717
20.5.1 打包和验证 717
20.5.2 为旁加载准备客户端计算机 718
20.5.3 旁加载操作 718
20.6 小结 718