第Ⅰ部分 集成开发环境 3
第1章 快速入门 3
1.1入门 3
1.1.1安装Visual Studio 2017 3
1.1.2运行Visual Studio 2017 7
1.1.3 Visual Studio真的支持云吗? 7
1.2 Visual Studio IDE 8
1.3小结 13
第2章 Solution Explorer、Toolbox和Properties窗口 15
2.1 Solution Explorer窗口 15
2.1.1预览文件 18
2.1.2常见任务 18
2.2 Toolbox窗口 26
2.2.1排列组件 27
2.2.2添加组件 28
2.3 Properties窗口 29
2.4小结 33
第3章 选项和定制 35
3.1 Start Page 35
3.2窗口布局 36
3.2.1查看窗口和工具栏 36
3.2.2停靠 37
3.2.3保存窗口布局 39
3.3编辑区域 40
3.3.1浏览打开的项 41
3.3.2字体和颜色 42
3.3.3可视化指南 42
3.3.4全屏模式 43
3.3.5跟踪变化 44
3.4其他选项 44
3.4.1快捷键 44
3.4.2快速启动 45
3.4.3项目和解决方案 46
3.4.4 Build and Run界面 47
3.4.5 VB选项 48
3.5导入和导出设置 48
3.6小结 50
第4章 Visual Studio工作区 51
4.1代码编辑器 51
4.1.1代码编辑器窗口的布局 51
4.1.2区域 52
4.1.3大纲 53
4.1.4代码的格式化 53
4.1.5向前/向后浏览 54
4.1.6其他代码编辑器功能 54
4.1.7拆分视图 55
4.1.8代码窗口的分离(浮动) 55
4.1.9复制Solution Explorer 56
4.1.10创建选项卡组 57
4.1.11高级功能 58
4.2代码导航 59
4.2.1 Peek Definition 59
4.2.2增强的滚动条 60
4.3命令窗口 63
4.4 Immediate窗口 64
4.5 Class View工具窗口 64
4.6 Error List窗口 65
4.7 Object Browser窗口 65
4.8小结 66
第5章 查找和替换以及帮助 67
5.1 Quick Find与Quick Replace 67
5.1.1 Quick Find 67
5.1.2 Quick Replace 68
5.1.3查找选项 68
5.1.4 Find and Replace选项 69
5.2文件中查找/替换 69
5.2.1文件中查找 69
5.2.2查找对话框选项 70
5.2.3正则表达式 70
5.2.4结果窗口 72
5.2.5文件中替换 72
5.3访问帮助 73
5.3.1浏览和搜索帮助系统 73
5.3.2配置帮助系统 74
5.4小结 74
第Ⅱ部分 入门 77
第6章 解决方案、项目和项 77
6.1解决方案的结构 77
6.2解决方案文件的格式 78
6.3解决方案的属性 79
6.3.1常规属性 80
6.3.2配置属性 80
6.4项目类型 81
6.5项目文件格式 83
6.6项目属性 83
6.6.1 Application选项卡 83
6.6.2 Compile选项卡(仅用于Visual Basic) 86
6.6.3 Build选项卡(仅用于C#和F#) 87
6.6.4 Build Events选项卡(仅用于C#和F#) 88
6.6.5 Debug选项卡 88
6.6.6 References选项卡(仅用于Visual Basic) 89
6.6.7 Resources选项卡 90
6.6.8 Services选项卡 90
6.6.9 Settings选项卡 91
6.6.10 Reference Paths选项卡(仅用于C#和F#) 91
6.6.11 Signing选项卡 92
6.6.12 My Extensions选项卡(仅用于Visual Basic) 92
6.6.13 Security选项卡 93
6.6.14 Publish选项卡 93
6.6.15 Code Analysis选项卡 94
6.7 C/C++ Code Analysis工具 95
6.8 Web应用程序项目属性 96
6.8.1 Web选项卡 96
6.8.2 Package/Publish Web选项卡 96
6.8.3 Package/Publish SQL选项卡 97
6.9 Web Site项目 97
6.10 NuGet包 98
6.10.1 NuGet包管理器 98
6.10.2 Package Manager Console 99
6.11小结 99
第7章 IntelliSense和书签 101
7.1对IntelliSense的解释 101
7.1.1通用的IntelliSense 102
7.1.2 IntelliSense和C++ 103
7.1.3单词和短语的自动完成 103
7.1.4参数信息 107
7.1.5快速信息 108
7.2 JavaScript IntelliSense 108
7.2.1 JavaScript IntelliSense上下文 108
7.2.2引用另一个JavaScript文件 109
7.3 XAML IntelliSense 110
7.4 IntelliSense选项 110
7.4.1通用选项 110
7.4.2 C#的特定选项 111
7.5扩展IntelliSense 112
7.5.1代码片段 112
7.5.2 XML注释 112
7.5.3添加自己的IntelliSense 112
7.6书签和Bookmarks窗口 113
7.7小结 114
第8章 代码片段和重构 115
8.1代码片段概述 115
8.1.1在Toolbox中存储代码块 115
8.1.2代码片段 116
8.1.3使用C#中的代码片段 116
8.1.4 VB中的代码片段 117
8.1.5用代码片段进行封装 117
8.1.6 Code Snippets Manager 118
8.1.7创建代码片段 119
8.1.8查看已有的代码片段 119
8.1.9分布代码段 122
8.2访问重构支持 123
8.3重构操作 123
8.3.1 Extract Method重构操作 123
8.3.2 Encapsulate Field重构操作 124
8.3.3 Extract Interface重构操作 124
8.3.4 Change Signature重构操作 125
8.3.5 Inline和Explaining Variables重构操作 125
8.3.6 Rename重构操作 126
8.3.7 Simplify Object Initialization重构操作 126
8.3.8 Inline Variable Declarations重构操作 127
8.3.9 Use‘throw’Expression重构操作 127
8.3.10 Generate Method Stub重构操作 128
8.3.11 Remove and Sort Usings重构操作 129
8.4小结 129
第9章 Server Explorer 131
9.1 Servers连接 131
9.1.1 Event Logs节点 132
9.1.2 Message Queues节点 133
9.1.3 Performance Counters节点 135
9.1.4 Services节点 137
9.2 Data Connections节点 138
9.3 SharePoint Connections节点 138
9.4小结 138
第Ⅲ部分 进阶 141
第10章 单元测试 141
10.1第一个测试用例 141
10.1.1使用特性标识测试 145
10.1.2其他测试特性 145
10.1.3单元测试和Code Lens 147
10.2指定判断条件 148
10.2.1 Assert类 148
10.2.2 StringAssert类 149
10.2.3 CollectionAssert类 149
10.2.4 ExpectedException特性 149
10.3初始化和清理 150
10.3.1 TestInitialize和TestCleanup特性 151
10.3.2 ClassInitialize和ClassCleanup特性 151
10.3.3 AssemblyInitialize和AssemblyCleanup特性 151
10.4测试环境 151
10.4.1数据 152
10.4.2输出测试结果 154
10.5 Live Unit Testing 154
10.6高级单元测试 155
10.6.1定制属性 155
10.6.2测试私有成员 156
10.7 IntelliTest 157
10.8小结 159
第11章 项目模板和项模板 161
11.1创建模板 161
11.1.1项模板 161
11.1.2项目模板 164
11.1.3模板结构 164
11.1.4模板参数 165
11.1.5模板位置 166
11.2扩展模板 166
11.2.1模板项目的安装 166
11.2.2 IWizard 166
11.2.3生成扩展项目模板 170
11.3 Starter Kit 171
11.4联机模板 171
11.5小结 172
第12章 管理源代码 173
12.1源控制 173
12.1.1选择源控制存储库 173
12.1.2访问源控制 174
12.2小结 177
第Ⅳ部分 桌面应用程序 181
第13章 Windows Form应用程序 181
13.1入门 181
13.2 Windows窗体 182
13.2.1 Appearance属性 182
13.2.2 Layout属性 183
13.2.3 Window Style属性 183
13.3窗体设计首选项 183
13.4添加和定位控件 184
13.4.1垂直对齐文本控件 185
13.4.2自动定位多个控件 185
13.4.3控件的Tab键顺序和分层 186
13.4.4锁定控件设计 187
13.4.5 设置控件属性 187
13.4.6 基于服务的组件 188
13.4.7智能标记任务 188
13.5容器控件 188
13.5.1 Panel和SplitContainer控件 189
13.5.2 FlowLayoutPanel控件 189
13.5.3 TableLayoutPanel控件 190
13.6停靠和锚定控件 190
13.7小结 191
第14章 Windows Presentation Foundation(WPF) 193
14.1 WPF介绍 193
14.2开始使用WPF 194
14.2.1 XAML基础 195
14.2.2 WPF控件 196
14.2.3 WPF布局控件 197
14.3 WPF设计器和XAML编辑器 198
14.3.1使用XAML编辑器 200
14.3.2使用WPF设计器 200
14.3.3 Properties工具窗口 202
14.3.4数据绑定功能 205
14.4设置应用程序的样式 208
14.5 Windows Forms的交互操作性 210
14.5.1在Windows Forms中驻留WPF控件 210
14.5.2在WPF中驻留Windows Forms控件 211
14.6用WPF Visualizer调试 213
14.7小结 214
第15章 通用Windows平台应用程序 215
15.1 Windows应用程序的定义 215
15.1.1呈现内容 216
15.1.2对齐和缩放 216
15.1.3语义式缩放 217
15.1.4磁贴 217
15.1.5接受云 217
15.2创建Windows应用程序 217
15.3 Windows运行库组件 222
15.4 .NET Native编译 222
15.5小结 224
第Ⅴ部分 Web应用程序 227
第16章 ASP.NETWeb窗体 227
16.1 Web Application项目和Web Site项目 227
16.2创建Web项目 228
16.2.1创建Web Site项目 228
16.2.2创建Web Application项目 230
16.3设计Web窗体 233
16.3.1 HTML Designer 233
16.3.2定位控件和HTML元素 234
16.3.3格式化控件和HTML元素 235
16.3.4 CSS工具 237
16.3.5验证工具 239
16.4 Web控件 240
16.4.1导航组件 240
16.4.2用户身份验证 240
16.4.3数据组件 241
16.5主页面 243
16.6富客户端开发 245
16.6.1用JavaScript开发 245
16.6.2使用ASP.NET AJAX 246
16.7小结 248
第17章 ASP.NET MVC 249
17.1 Model-View-Controller 249
17.2开始使用ASP.NET MVC 250
17.3选择Model 252
17.4 Controller和action方法 253
17.5用View显示UI 255
17.6高级MVC 261
17.6.1路由 261
17.6.2 action方法参数 264
17.6.3区域 266
17.6.4验证 268
17.6.5 部分View 269
17.6.6 Dynamic Data模板 270
17.6.7 jQuery 272
17.7小结 273
第18章 .NETCore 275
18.1 .NET Core的定义 275
18.2使用ASP.NET Core 276
18.2.1 projectjson和csproj 277
18.2.2创建ASP.NET Core应用程序 277
18.3 NuGet包管理器 280
18.4 Bower包管理器 283
18.5小结 285
第19章 Node js开发 287
19.1开始使用Node.js 287
19.2 Node Package Manager 291
19.3 Task Runner Explorer 294
19.4小结 296
第20章 Python开发 297
20.1 Python入门 297
20.2 Cookiecutter扩展 301
20.3小结 302
第Ⅵ部分 移动应用程序 305
第21章 使用.NET的移动应用程序 305
21.1使用Xamarin 305
21.2创建Xamarin Forms项目 306
21.3调试应用程序 308
21.3.1通用Windows平台 308
21.3.2 Android 308
21.3.3 iOS 316
21.4小结 318
第22章 使用JavaScript的移动应用程序 319
22.1 Apache Cordova的概念 319
22.2创建Apache Cordova项目 320
22.2.1 merges文件夹 321
22.2.2 plugins文件夹 321
22.2.3 www文件夹 322
22.2.4其他文件和文件夹 322
22.3在Apache Cordova中调试 325
22.4小结 327
第Ⅶ部分 云服务 331
第23章 Windows Azure 331
23.1 Windows Azure平台 331
23.1.1 Compute Emulator 333
23.1.2角色之间的通信 333
23.1.3应用程序部署 335
23.2 SQL Azure 337
23.3 Service Fabric 338
23.4 Azure移动服务 339
23.5 Azure虚拟机 340
23.5.1连接性 340
23.5.2端点 340
23.5.3虚拟网络 340
23.6小结 341
第24章 同步服务 343
24.1偶尔连接的应用程序 343
24.2 Server Direct 344
24.3同步服务入门 346
24.4 N层上的同步服务 349
24.5小结 350
第25章 SharePoint 351
25.1 SharePoint执行模型 351
25.1.1场解决方案 351
25.1.2沙箱解决方案 352
25.1.3应用程序模型 352
25.2准备开发环境 352
25.3创建SharePoint项目 354
25.4运行应用程序 359
25.5小结 361
第Ⅷ部分 数据 365
第26章 可视化数据库工具 365
26.1 Visual Studio 2017中的数据库窗口 365
26.1.1 Server Explorer窗口 365
26.1.2 Data Sources窗口 368
26.1.3 SQL Server Object Explorer 369
26.2编辑数据 369
26.3 Redgate数据工具 370
26.3.1 ReadyRoll Core 370
26.3.2 SQL Prompt Core 373
26.3.3 SQL Search 374
26.4小结 375
第27章 ADO.NET Entity Framework 377
27.1什么是Entity Framework 377
27.2入门 378
27.3创建实体模型 378
27.3.1实体数据模型向导 378
27.3.2 Entity Framework设计器 381
27.3.3创建/修改实体 384
27.3.4创建/修改实体关联 386
27.3.5实体继承 387
27.3.6验证实体模型 387
27.3.7根据数据库的修改来更新实体模型 387
27.4查询实体模型 387
27.4.1 LINQ to Entities概述 388
27.4.2获得对象上下文 388
27.4.3 CRUD操作 388
27.4.4导航实体关联 391
27.5高级功能 392
27.5.1从实体模型更新数据库 392
27.5.2给实体添加业务逻辑 393
27.5.3 POCO 393
27.5.4 Entity Framework Core 393
27.6小结 393
第28章 数据仓库和数据湖 395
28.1 Apache Hadoop的概念 395
28.1.1 Hadoop分布式文件系统 395
28.1.2 MapReduce 396
28.1.3其他组件 396
28.1.4 HDInsight 396
28.1.5 Azure数据湖 396
28.2 Visual Studio的数据湖工具 397
28.2.1创建Hive应用程序 398
28.2.2创建Pig应用程序 400
28.3小结 403
第29章 数据科学和分析 405
29.1 R的概念 405
29.2 R Tools For Visual Studio 405
29.2.1调试R脚本 407
29.2.2工作区 409
29.2.3绘图窗口 410
29.3小结 411
第Ⅸ部分 调试 415
第30章 使用调试窗口 415
30.1代码窗口 415
30.1.1断点 415
30.1.2数据提示 415
30.2 Breakpoints窗口 416
30.3 Output窗口 416
30.4 Immediate窗口 417
30.5 Watch窗口 418
30.5.1 QuickWatch窗口 418
30.5.2 Watch 1-4窗口 419
30.5.3 Autos窗口和Locals窗口 419
30.6代码执行窗口 419
30.6.1 Call Stack窗口 419
30.6.2 Threads窗口 420
30.6.3 Modules窗口 420
30.6.4 Processes窗口 420
30.7 Memory窗口 421
30.7.1 Memory 1-4窗口 421
30.7.2 Disassembly窗口 421
30.7.3 Registers窗口 422
30.8并行调试窗口 422
30.8.1 Parallel Stacks窗口 423
30.8.2 Parallel Tasks窗口 424
30.9 Exceptions窗口 425
30.10小结 426
第31章 断点调试 427
31.1断点 427
31.1.1设置断点 427
31.1.2添加中断条件 428
31.1.3断点操作 430
31.2跟踪点 431
31.3执行控制 432
31.3.1单步执行代码 432
31.3.2 Run to Cursor功能 433
31.3.3移动执行点 434
31.4 Edit and Continue功能 434
31.4.1原始编辑 434
31.4.2停止应用修改 434
31.5小结 434
第Ⅹ部分 构建和部署 437
第32章 升级到Visual Studio 2017 437
32.1从最近的Visual Studio版本升级 437
32.2升级到.NET Framework 4.6.2 439
32.3小结 440
第33章 定制构建 441
33.1通用构建选项 441
33.2手动配置依赖关系 443
33.3 Visual Basic编译页面 444
33.3.1高级编译器设置 444
33.3.2构建事件 445
33.4 C#构建页面 446
33.5 MSBuild 448
33.5.1 Visual Studio使用MSBuild的方式 448
33.5.2 MSBuild模式 450
33.5.3通过MSBuild任务设置程序集的版本 451
33.6小结 452
第34章 模糊处理、应用程序监控和管理 453
34.1 IL反编译器 453
34.2反编译器 454
34.3模糊处理代码 455
34.3.1 Dotfuscator 455
34.3.2模糊处理特性 459
34.3.3警告 460
34.4应用程序监控和管理 462
34.4.1防篡改功能 462
34.4.2应用程序检测和分析功能 463
34.5小结 464
第35章 打包和部署 465
35.1 Windows Installer XML工具集 465
35.1.1构建安装程序 466
35.1.2使用Heat创建片段 468
35.1.3服务安装程序 470
35.2 ClickOnce技术 470
35.2.1部署 471
35.2.2升级 473
35.3小结 474
第36章 Web应用程序的部署 475
36.1 Web部署 475
36.1.1发布Web应用程序 475
36.1.2发布到Azure 477
36.2 Web项目安装程序 479
36.3 Web Platform Installer 480
36.4小结 483
第37章 持续交付 485
37.1定义术语 485
37.1.1持续交付 485
37.1.2持续集成 486
37.1.3 DevOps 486
37.2持续交付工具 486
37.2.1设置持续交付 487
37.2.2 Heads Up Code Analysis 488
37.2.3自动构建通知 489
37.3小结 491
第Ⅺ部分 Visual Studio版本 495
第38章 Visual Studio Enterprise:代码质量 495
38.1依赖验证 495
38.2使用Code Map研究代码 499
38.3代码克隆 500
38.4小结 500
第39章 Visual Studio Enterprise:测试和调试 501
39.1自动测试 501
39.1.1 Web性能测试 501
39.1.2负载测试 503
39.1.3编码UI测试 505
39.1.4一般测试 506
39.1.5有序测试 506
39.2 IntelliTrace 506
39.3 IntelliTest 509
39.4小结 510
第40章 Visual Studio Team Service 511
40.1 Git入门 511
40.2版本控制 513
40.2.1提交 514
40.2.2分支 514
40.2.3同步 515
40.3工作项跟踪 515
40.3.1工作项查询 516
40.3.2工作项类型 517
40.3.3添加工作项 517
40.3.4工作项状态 518
40.4 Build 518
40.5门户网站 519
40.6小结 519