请输入您要查询的百科知识:

 

词条 37C#与NET 4高级程序设计汇总
释义

基本信息

原书名:Pro C# 2010 and the NET 4 Platform 5 edition

原出版社: Apress

作者:(美)Andrew Troelsen

译者:朱晔肖 逵姚 琪琳 张大磊 王少葵 范睿

丛书名: 图灵程序设计丛书

出版社:人民邮电出版社

ISBN:9787115250322

出版日期:2011 年4月

开本:16开

页码:1197

版次:5-1

内容简介

《c#与net 4高级程序设计:第5版》是c# 领域久负盛名的经典著作,深入全面地叙述了c# 编程语言和net 平台核心,并以大量示例剖析相关概念。书中介绍了c# 的各种语言构造、net 2.0 的类、核心api、公共中间语言(cil)、动态程序集和扩展等内容;同时也介绍了net 3.0、net 3.5 和net 4 中的新的编程api,包括wpf、wcf 和wf 的功能;另外,还介绍了最新的c# 2010 编程语言、dlr、tpl、linq 编程技术、com 与net 的互操作性以及平台无关的net 开发等。

《c#与net 4高级程序设计:第5版》由微软c# mvp andrew troelsen 编写,历经多次修订,适合各层次net 开发人员阅读。

作译者

Andrew Troelsen世界级C#专家,微软Visual C# MVP。他是著名的微软技术咨询企业Intertech的合伙人和副总裁,该公司的客户包括微软、霍尼韦尔、美国航天局等。他曾为MSDN网站和MacTec网站撰写了有关各种操作系统平台上.NET技术的文章,并经常在业界主要技术会议上发表演讲和开设技术讲座。除本书外,他还撰写了COM and NET Interoperability和Visual Basic NET and the NET Plafform:An Advanced Guide等著作

目录

《c#与 net 4高级程序设计汇总》

第一部分 c#与 net平台

第1章 net之道 2

1 1 net之前的世界 2

1 2 net解决方案 5

1 3 net平台构造块(clr、cts和cls)简介 5

1 4 其他支持 net的编程语言 7

1 5 net程序集概览 9

1 6 cts 14

1 7 cls 17

1 8 clr 18

1 9 程序集/命名空间/类型的区别 19

1 10 使用ildasm exe探索程序集 24

1 11 使用reflector来查看程序集 26

1 12 部署 net运行库 27

1 13 net的平台无关性 27

1 14 小结 28

第2章 构建c#应用程序 30

2 1 net framework 4 sdk的作用 30

2 2 用csc exe构建c#应用程序 31

2 3 使用notepad++构建 net应用程序 36

2 4 使用sharpdevelop构建 net应用程序 36

2 5 使用visual c# 2010 express构建 net应用程序 38

2 6 使用visual studio 2010构建 net应用程序 40

2 7 小结 50

第二部分 c#核心编程结构

第3章 c#核心编程结构Ⅰ 52

3 1 一个简单的c#程序 52

3 2 有趣的题外话:system environment类的其他成员 57

3 3 system console类 58

3 4 系统数据类型和c#简化符号 62

3 5 使用字符串数据 70

3 6 窄化和宽化数据类型转换 76

3 7 隐式类型本地变量 81

3 8 c#迭代结构 84

3 9 条件结构和关系/相等操作符 86

3 10 小结 89

第4章 c#核心编程结构Ⅱ 90

4 1 方法和参数修饰符 90

4 2 c#中的数组操作 99

4 3 枚举类型 105

4 4 结构类型 109

4 5 值类型和引用类型 112

4 6 c#可空类型 118

4 7 小结 121

第5章 定义封装的类类型 122

5 1 c#类类型 122

5 2 构造函数 125

5 3 this关键字的作用 128

5 4 static关键字 133

5 5 定义oop的支柱 139

5 6 c#访问修饰符 142

5 7 第一个支柱:c#的封装服务 144

5 8 自动属性 154

5 9 对象初始化器语法 157

5 10 常量数据 160

5 11 分部类型 162

5 12 小结 163

第6章 继承和多态 164

6 1 继承的基本机制 164

6 2 回顾visual studio类关系图 168

6 3 oop的第二个支柱:继承 169

6 4 包含/委托编程 174

6 5 oop的第三个支柱:c#的多态支持 176

6 6 基类/派生类的转换规则 187

6 7 超级父类:system object 189

6 8 小结 195

第7章 结构化异常处理 196

7 1 错误、bug与异常 196

7 2 net异常处理的作用 197

7 3 最简单的例子 199

7 4 配置异常的状态 202

7 5 系统级异常(system system-exception) 206

7 6 应用程序级异常(system applica-tionexception) 207

7 7 处理多个异常 210

7 8 谁在引发什么异常 215

7 9 未处理异常的后果 215

7 10 使用visual studio调试未处理的异常 216

7 11 损坏状态异常简介 217

7 12 小结 218

第8章 对象的生命周期 219

8 1 类、对象和引用 219

8 2 对象生命周期的基础 220

8 3 应用程序根的作用 223

8 4 对象的代 224

8 5 net 1 0 至 net 3 5的并发垃圾回收 225

8 6 net 4下的后台垃圾回收 225

8 7 system gc类型 225

8 8 构建可终结对象 229

8 9 构建可处置对象 231

8 10 构建可终结类型和可处置类型 234

8 11 延迟对象实例化 237

8 12 小结 240

第三部分 高级c#编程结构

第9章 接口 242

9 1 接口类型 242

9 2 定义自定义接口 245

9 3 实现接口 247

9 4 在对象级别调用接口成员 248

9 5 接口作为参数 250

9 6 接口作为返回值 252

9 7 接口类型数组 253

9 8 使用visual studio 2010实现接口 253

9 9 通过显式接口实现解决命名冲突 254

9 10 设计接口层次结构 257

9 11 构建可枚举类型(ienumerable和ienumerator) 260

9 12 构建可克隆的对象(icloneable) 265

9 13 构建可比较的对象(icomparable) 269

9 14 小结 273

第10章 泛型 274

10 1 非泛型集合 274

10 2 泛型类型参数的作用 281

10 3 system collections generic命名空间 285

10 4 创建自定义泛型方法 292

10 5 创建自定义泛型结构和类 294

10 6 类型参数的约束 297

10 7 小结 300

第11章 委托、事件和lambda 301

11 1 net委托类型 301

11 2 在c#中定义委托类型 302

11 3 system multicastdelegate与system delegate基类 304

11 4 最简单的委托示例 305

11 5 使用委托发送对象状态通知 307

11 6 方法组转换语法 313

11 7 委托协变 314

11 8 泛型委托 316

11 9 c#事件 318

11 10 c#匿名方法 325

11 11 lambda表达式 328

11 12 小结 333

第12章 高级c#语言特性 335

12 1 索引器方法 335

12 2 操作符重载 339

12 3 自定义类型转换 347

12 4 扩展方法 352

12 5 分部方法 360

12 6 匿名类型 362

12 7 指针类型 367

12 8 小结 373

第13章 linq to object 374

13 1 linq特有的编程结构 374

13 2 linq的作用 377

13 3 将linq查询应用于原始数组 379

13 4 返回linq查询的结果 385

13 5 将linq查询应用到集合对象 387

13 6 c#linq查询操作符 389

13 7 linq查询语句的内部表示 396

13 8 小结 400

第四部分 用 net程序集编程

第14章 net程序集入门 402

14 1 定义自定义命名空间 402

14 2 net程序集的作用 407

14 3 net程序集的格式 409

14 4 构建和使用单文件程序集 412

14 5 构建和使用多文件程序集 421

14 6 私有程序集 423

14 7 共享程序集 427

14 8 使用共享程序集 433

14 9 配置共享程序集 435

14 10 发行者策略程序集 439

14 11 [codebase]元素 440

14 12 system configuration命名空间 441

14 13 小结 442

第15章 类型反射、晚期绑定和基于特性的编程 443

15 1 类型元数据的必要性 443

15 2 反射 447

15 3 构建自定义的元数据查看器 450

15 4 动态加载程序集 454

15 5 反射共享程序集 457

15 6 晚期绑定 458

15 7 net特性的作用 461

15 8 构建自定义特性 465

15 9 程序集级别(和模块级别)特性 467

15 10 使用早期绑定反射特性 469

15 11 使用晚期绑定反射特性 470

15 12 反射、晚期绑定和自定义特性的使用背景 471

15 13 构建可扩展的应用程序472

15 14 小结 477

第16章 进程、应用程序域和对象上下文 478

16 1 windows进程的作用 478

16 2 net平台下与进程进行交互 480

16 3 net应用程序域 488

16 4 与默认应用程序域进行交互 489

16 5 创建新的应用程序域 492

16 6 对象上下文边界 495

16 7 进程、应用程序域和上下文小结 498

16 8 小结 499

第17章 cil和动态程序集的作用 500

17 1 学习cil语法的原因 500

17 2 cil指令、特性和操作码 501

17 3 入栈和出栈:cil基于栈的本质 502

17 4 正反向工程 504

17 5 cil指令和特性 510

17 6 net基础类库、c#和cil数据类型的映射 515

17 7 在cil中定义类型成员 516

17 8 剖析cil操作码 518

17 9 使用cil构建 net程序集 522

17 10 动态程序集 526

17 11 小结 534

第18章 动态类型和动态语言运行时 535

18 1 dynamic关键字的作用 535

18 2 dlr的作用 540

18 3 使用动态类型简化后期绑定调用 542

18 4 使用动态数据简化com互操作 544

18 5 使用c# 2010的特性进行com互操作 548

18 6 小结 552

第五部分 net基础类库

第19章 构建多线程应用程序 554

19 1 进程、应用程序域、上下文及线程之间的关系 554

19 2 net委托的简短回顾 556

19 3 委托的异步性 557

19 4 异步调用方法 559

19 5 system threading命名空间 564

19 6 system threading thread类 564

19 7 以编程方式创建次线程 567

19 8 并发问题 572

19 9 使用timer callback编程 578

19 10 clr线程池 579

19 11 net平台下的并行编程 581

19 12 并行linq查询(plinq) 588

19 13 小结 590

第20章 文件输入输出和对象序列化 591

20 1 研究system io命名空间 591

20 2 directory(info)和file(info)类型 592

20 3 使用directoryinfo类型 593

20 4 使用directory类型 596

20 5 使用driveinfo类类型 597

20 6 使用fileinfo类 598

20 7 使用file类型 601

20 8 stream抽象类 603

20 9 使用streamwriter和streamreader类型 605

20 10 使用stringwriter和stringreader类型 608

20 11 使用binarywriter和binary-reader 609

20 12 以编程方式“观察”文件 610

20 13 对象序列化 612

20 14 为序列化配置对象 614

20 15 选择序列化格式化程序 616

20 16 使用binaryformatter序列化对象 618

20 17 使用soapformatter序列化对象 620

20 18 使用xmlserializer序列化对象 621

20 19 序列化对象集合 623

20 20 自定义soap/binary序列化过程 624

20 21 小结 628

第21章 ado net之一:连接层 630

21 1 ado net的宏观定义 630

21 2 ado net数据提供程序 632

21 3 其他的ado net命名空间 634

21 4 system data命名空间的类型 635

21 5 使用接口的抽象数据提供程序 639

21 6 创建autolot数据库 641

21 7 ado net数据提供程序工厂模型 645

21 8 ado net的连接层 650

21 9 使用数据读取器 654

21 10 构建可重用的数据访问库 656

21 11 创建控制台ui前端 664

21 12 数据库事务 669

21 13 小结 673

第22章 ado net之二:断开连接层 674

22 1 ado net断开连接层 674

22 2 dataset的作用 675

22 3 使用datacolumn 677

22 4 使用datarow 679

22 5 使用datatable 682

22 6 将datatable对象绑定到用户界面 687

22 7 使用数据适配器 695

22 8 向autolotdal dll添加断开连接功能 698

22 9 多表dataset对象和数据关系 701

22 10 windows forms数据库设计器工具 706

22 11 将强类型的数据库代码隔离到类库中 713

22 12 linq to dataset 717

22 13 小结 722

第23章 ado net之三:entity framework 723

23 1 entity framework的作用 723

23 2 创建和分析edm 730

23 3 对概念模型进行编程 739

23 4 autolotdal 4 0版,加入实体 744

23 5 将数据实体绑定到windows forms gui 748

23 6 小结 752

第24章 linq to xml简介 753

24 1 两个xml api的故事 753

24 2 system xml linq命名空间的成员 756

24 3 使用xelement和xdocument 759

24 4 在内存中操作xml文档 762

24 5 小结 766

第25章 wcf 767

25 1 各种分布式计算api 767

25 2 wcf的作用 772

25 3 wcf核心程序集 774

25 4 visual studio wcf项目模板 775

25 5 wcf应用程序的基本构成 776

25 6 wcf的abc 777

25 7 构建wcf服务 781

25 8 承载wcf服务 784

25 9 构建wcf客户端应用程序 791

25 10 用wcf 4 0简化配置设置 795

25 11 使用wcf服务库项目模板 800

25 12 以windows服务承载wcf服务 803

25 13 从客户端异步调用服务 807

25 14 定义wcf数据契约 809

25 15 小结 813

第26章 windows workflow foundation4 0简介 814

26 1 定义业务流程 814

26 2 构建简单的工作流 815

26 3 wf 4 0运行时 818

26 4 检查wf 4 0中的活动 823

26 5 构建流程图工作流 825

26 6 用专门的库隔离工作流 833

26 7 使用工作流库 840

26 8 小结 842

第六部分 使用wpf构建桌面用户界面第27章 wpf和xaml 844

27 1 wpf背后的动机 844

27 2 各种形式的wpf应用程序 846

27 3 wpf程序集 850

27 4 创建不使用xaml的wpf应用程序 856

27 5 仅使用xaml构建wpf应用程序 863

27 6 将标记转换为 net程序集 867

27 7 wpf xaml语法 871

27 8 使用代码隐藏文件构建wpf应用程序 879

27 9 使用visual studio 2010构建wpf应用程序 881

27 10 小结 889

第28章 使用wpf控件编程 890

28 1 wpf核心控件概述 890

28 2 使用面板控制内容布局 894

28 3 使用嵌套面板构建窗口框架 903

28 4 wpf控件命令 907

28 5 使用expression blend构建wpf用户界面 912

28 6 构建ink api选项卡 919

28 7 documents api 928

28 8 构建documents选项卡 929

28 9 wpf数据绑定模型 934

28 10 小结 941

第29章 wpf图形呈现服务 942

29 1 理解wpf的图形呈现服务 942

29 2 使用形状呈现图形数据 943

29 3 wpf画刷和画笔 952

29 4 图形变换 955

29 5 使用expression blend处理形状 958

29 6 使用绘图和几何图形呈现图形数据 962

29 7 使用expression design生成复杂的向量图形 965

29 8 使用可视化层呈现图形数据 967

29 9 小结 972

第30章 wpf资源、动画和样式 973

30 1 理解wpf资源系统 973

30 2 使用对象(逻辑)资源 978

30 3 理解wpf动画服务 988

30 4 用xaml创建动画 992

30 5 wpf样式的作用 994

30 6 使用expression blend生成样式 1001

30 7 小结 1003

第31章 wpf控件模板和用户控件 1004

31 1 依赖属性的作用 1004

31 2 构建自定义依赖属性 1008

31 3 路由事件 1013

31 4 逻辑树、可视树和默认模板 1016

31 5 在visual studio 2010中构建自定义控件模板 1022

31 6 使用blend构建自定义usercontrol 1028

31 7 创建wpf应用程序jackpot deluxe 1035

31 8 小结 1043

第七部分 使用asp net构建web应用程序

第32章 构建asp net网页 1046

32 1 http的作用 1046

32 2 web应用程序和web服务 1047

32 3 html的作用 1048

32 4 客户端脚本的作用 1053

32 5 回发到web服务器 1054

32 6 asp net api的特性 1055

32 7 构建单个文件的asp net网页 1058

32 8 使用代码文件构建asp net web页面 1066

32 9 asp net web site和asp net web application 1070

32 10 asp net网站目录结构 1072

32 11 页面类型的继承链 1073

32 12 与传入的http请求交互 1074

32 13 与输出http响应交互 1077

32 14 asp net网页的生命周期 1078

32 15 web config文件的作用 1081

32 16 小结 1082

第33章 asp net web控件、母版页和主题 1083

33 1 web控件的本质 1083

33 2 control和webcontrol基类 1085

33 3 asp net web控件的类别 1089

33 4 构建asp net汽车网站 1091

33 5 验证控件的作用 1104

33 6 使用主题 1110

33 7 小结 1114

第34章 asp net状态管理技术 1115

34 1 状态问题 1115

34 2 asp net状态管理技术 1117

34 3 asp net视图状态的作用 1117

34 4 global asax文件的作用 1120

34 5 应用程序状态与会话状态的差别 1123

34 6 使用应用程序缓存 1127

34 7 维护会话数据 1131

34 8 cookie 1134

34 9 [sessionstate]元素的作用 1136

34 10 asp net用户配置api 1137

34 11 小结 1143

第八部分 附 录

附录a windows forms编程 1146

a 1 windows forms命名空间 1146

a 2 创建一个简单的windows forms程序 1147

a 3 visual studio windows forms项目模板 1152

a 4 剖析form 1157

a 5 响应鼠标活动 1163

a 6 设计对话框 1166

a 7 通过gdi+呈现图形数据 1171

a 8 创建一个完整的windows forms应用程序 1175

a 9 小结 1182

附录b 使用mono进行平台无关的 net开发 1183

b 1 net的平台无关性 1183

b 2 获取和安装mono 1186

b 3 mono开发语言 1188

b 4 兼容microsoft的mono开发工具 1189

b 5 使用mono创建 net 应用程序 1190

b 6 谁在使用mono 1196

b 7 推荐学习 1196

b 8 小结 1197

译者序

应用程序开发的目标始终如一,就是在最短时间内制作出最好的软件。当今最流行的快速开发平台是什么,毫无疑问,是微软公司的 NET Framework。经过近10年的发展,微软的 NET已经变得非常庞大和成熟,而且 NET发展的步伐越来越快。

2002年年初,微软发布了Visual Studio NET 2002开发工具,也带来了 NET框架的第一个版本1 0。2003年春天,微软发布了Visual Studio NET 2003以及 NET Framework 1 1。尽管只是1 1,但是 NET Framework 1 1比1 0多了几项重大更新,例如对移动设备的支持(精简版 NET)和对ODBC/ Oracle数据库的支持。2005年年底, NET Framework 2 0随着Visual Studio 2005以及 SQL Server 2005一起发布。无论是Visual Studio 2005、C# 2 0还是ASP NET 2 0,在易用性、安全性等方面都比前辈优秀很多。C# 2 0中的泛型、迭代器、可空类型、匿名方法、分部类等特性确实给了我们很多方便。2006年年底,微软随Vista操作系统推出了 NET Framework 3 0。 NET Framework 3 0在 NET Framework 2 0的基础上增加了几个重要组件:WCF、WPF、WF和WCS(本书后面会对WCF、WPF和WF进行比较详细的介绍)。

WCF:Windows Communication Foundation,最完整的集成化通信管理框架。WCF编程模型把Web服务、 NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现了真正意义上的分布式计算。

WPF:Windows Presentation Foundation,最华丽的界面技术框架。WPF提供了一种一致的方案来构建编程模型,并且支持使用更为丰富的控件和设计技术来开发Windows程序。

WF:Windows Workflow Foundation,最灵活和最强大的工作流平台。WF是微软用来定义、执行和管理工作流的编程模型、引擎和工具的总称。

WCS:Windows CardSpace,最安全的个人数字标识解决方案。

2007年年底,微软发布了Visual Studio 2008以及 NET Framework 3 5。在 NET Framework 3 0的基础上,3 5又新增了一些程序集,并引入了LINQ、ASP NET AJAX等功能。

C# 3 0:提供了隐式类型变量、自动属性、扩展方法、对象初始化语法、Lambda表达式、匿名方法、分部方法等新特性,其实几乎所有的新特性都是因LINQ而生的。

LINQ:语言集成查询,官方组件包括LINQ to SQL、LINQ to XML、LINQ to DataSet等。当然,还有很多第三方公司或个人推出的LINQ to XXX。可以通过这些组件使用统一的查询语言对各种基于磁盘、网络甚至服务的数据源进行查询。

ASP NET AJAX:其实ASP NET AJAX最早并不是在 NET Framework 3 5中出现的,只不过 NET Framework 3 5集成了ASP NET AJAX。

关于 NET Framework 3 0中四大技术的扩展,我们也可以认为 NET Framework 3 5提供了WCF/ WPF/WF/WCS的2 0版本。

2010年4月,微软又发布了Visual Studio 2010和 NET Framework 4,这又是一个里程碑式的版本。如果说C# 3 0中的大多数特性都是语法糖,那么C# 2010则建立在全新的CLR基础之上。

DLR:Dynamic Language Runtime(动态语言运行时)是 NET 4的重要组成部分,它为C#这门静态强类型语言提供了类似Smalltalk、LISP、Ruby和Python那样的动态特性。

TPL:在多核计算机早已普及的今天,充分利用每一个CPU可以显著提升程序的性能,是任何一个编程语言都不能忽视的功能。Task Parallel Library(任务并行库)应景而生,你不必操作线程,就可以编写细粒度、高可扩展性的并行程序。使用PLINQ还可以并行地进行LINQ查询。

改善COM互操作性:动态特性、可选参数、命名参数、索引属性以及PIA的诞生,都大大简化了与传统COM组件的互操作。

WCF、WPF和WF都升级到了4 0版本。

本书分8个部分,从最底层的CLR开始,到上层C#语言的各种结构,再到 NET Framework中提供的各种API,一直到应用层面的WCF、WF、WPF、ASP NET等,甚至是 NET的一些互操作性都进行了全面的介绍。

感谢本书的作者Andrew Troelsen先生,他为我们带来这样一本含大量精彩篇章的著作。本书是在前几个版本的中文版基础上翻译完成的。第三版主要由王少葵、张大磊、朱晔、范睿和金雪根(思归)翻译,第四版的补充翻译由朱晔、肖逵和张大磊完成,本版的补充翻译由姚琪琳完成。特别感谢图灵公司编辑王军花、丁晓昀等的辛勤劳动。另外也感谢很多在翻译过程中给过我们支持的朋友和网友,请原谅不能一一列出他们的名字。

真诚地希望我们为这本书付出的劳动没有辜负大家的期望,希望各位读者朋友在阅读后能够对 NET Framework和C#更了解。由于时间仓促,且译者水平有限,书中难免会出现一些问题或疏漏,请各位读者不吝赐教,我们非常感谢读者的任何批评和反馈,并会基于此作出更正与改进。谢谢!

前言

本书历经了多个版本,第1版大约在2001年夏天几乎与 NET 1 0 Beta 2同时推出。从那以后,我一直感到非常幸福,心中充满了感激之情,因为我的书得到了出版社尤其是读者们的好评。这些年来,它曾入围Jolt大奖提名(可惜最后没得奖……)和2003年Referenceware编程类图书卓越大奖(这次我赢了?太酷了!)。

更重要的是,很高兴收到全世界读者发来的邮件。他们告诉我本书对他们的事业有一定的帮助,与他们交谈的感觉太棒了。事实上,本书比过去的任何版本都要好。感谢那些发来改进建议、指出排印错别以及其他错误的读者。

一些大学曾经或正在使用本书,并且本书也是计算机科学领域众多本科和研究生的必读书,对此,我受宠若惊。

对于出版商、读者和教授们,我只能说谢谢并祝你编程愉快!

无论如何,自从本书第1版面市,我一直努力工作,以使本书内容和 NET平台的版本保持一致。现在你手中拿的是第5版,其中涵盖了C# 2010编程语言和 NET 4平台的新特性,包括DLR(Dynamic Language Runtime,动态语言运行时)、TPL(Task Parallel Library,任务并行库)、PLINQ(Parallel LINQ,并行LINQ)、ADO NET Entity Framework(EF,实体框架),以及一些细微的(但很有用的)更新,如C# 2010命名参数、C# 2010可选参数、Lazy[T]类类型等。

除了涵盖所有这些新特性外,本书还为你打造了坚实的C#语言基础,介绍了面向对象编程(OOP)的核心、程序集配置、数据库访问(ADO NET),以及构建桌面GUI应用程序、Web应用程序和(在其他话题中穿插介绍的)分布式系统的过程。

与前几个版本一样,这一版用友好且平和的方式描述了C#编程语言和 NET基础类库。同样,新版本继续重点阐述构建软件解决方案所需的内容,而不会在深奥且很少有人关心的内容上浪费时间。

你和我,我们是一个团队

技术作家所面对的是一群苛刻的读者(我知道,因为我就是他们中的一员)。无论使用什么平台(例如 NET、Java和COM),对部门、公司、客户和任何课题来说,构建软件解决方案都是非常复杂而且有针对性的事情。可能你在电子出版行业工作,或者为政府开发系统,或者是在科研机构或军队的某个部门工作。就我自己而言,我开发过儿童教育软件(Oregon Trail、Amazon Trail等游戏软件)、各种n层系统以及许多医疗和金融行业的项目。你工作时编写的代码和我编写的代码百分之百是不同的(除非我们恰巧以前在一起工作)。

因此,在这本书中,我特意避免选择那些和具体行业紧密相关的例子,而是用与行业无关的例子来解释C#、OOP、CLR和 NET 4基础类库。我不使用诸如数据填充表格、薪水计算或者其他的一些例子,而是坚持用与我们都有联系的主题:汽车,另外再加上几何结构和雇员薪水系统作为补充示例。你不用担心会有什么陌生的背景知识。

我要做的是尽最大可能解释C#编程语言和 NET平台的核心内容。同时,我会尽可能把进一步学习本书的工具和策略提供给你。

你要做的是理解这些内容并将其付诸于具体编程工作中。我很清楚,你的项目可能与具有友好昵称的汽车(比如,BMW的Zippy和Yugo的Clunker)根本无关,但是所用到的知识是相通的。

放心,只要理解了这本书中的概念,你便能够很好地构建一个和实际情况紧密相关的 NET解决方案了。

本书内容

本书从逻辑上分为8个部分,每个部分包含一些相关联的章节。如果读过本书的前几版,你很快就会发现很多变化。例如,我不再用一章单独介绍C#语言的新特性,而是将这些新特性自然融入相关的章节。此外,根据读者的反馈,我扩展了WPF相关的内容。下面先按部分,再按章来分解本书。

第一部分:C#与 NET平台

第一部分的目的在于让你初步适应并了解 NET平台以及在构造 NET应用中用到的各种开发工具(其中很多是开源的)。同时,你也会学习到C#编程语言和 NET类型系统的基本知识。

第1章: NET之道

这一章讲述本书其余部分的脉络。我们将首先回顾传统Windows开发领域,并阐述它们的缺点。然而,该章的主要目的是介绍许多 NET相关的构建块,如CLR(公共语言运行库)、CTS(公共类型系统)、CLS(公共语言规范)以及基础类库。该章让你对C#编程语言和 NET程序集格式有一个初步了解,同时概述了 NET平台的平台无关性(附录B将会详细介绍这个主题)。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/22 6:12:53