分享
 
 
 

C#和.NET 2.0 实战:平台、语言与框架

C#和.NET 2.0 实战:平台、语言与框架  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机/网络,程序设计,.NET ,

作者: (法)斯梅切尔(Smacchia,P.)著,施凡等译

出 版 社: 人民邮电出版社

出版时间: 2008-1-1字数: 1429000版次: 1页数: 765印刷时间: 2008/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115166203包装: 平装编辑推荐

本书是一部充满传奇色彩的C#经典著作。它源自一位微软MVP的多年实战经验,最初用法语写成,由O‘Reilly法国公司出版后,一时洛阳纸贵,曾长期雄踞法国.NET图书榜首。英文版未事宣传,却在众多.NET技术专家口口相传之下。成为社区关注的焦点.获得好评如潮。

本书为何如此神奇昵?与市面上大量讲述C#的普通图书不同,它通过6417个切合实际而且可以直接应用的示例程序。不仅全面讨论了C#2.0语言的各种特性,而且深入.NET平台和.NET Framework 2.O内部,讲解了诸多技术细节。书中涉及的知识面虽然很宽,但每个主题都具有相当的深度,充分展现了作者罕见的丰富经验和渊博学识。本书的章节设计非常独特,读者可灵活选择阅读顺序,与此同时,书中的引用非常丰富,与MSDN结合,读者能够轻松获取各种知识。

本书示例可以从配套网站http:Hwww.practicaldot.net/下载。

内容简介

本书是一本知识密集的C#技术经典图书,Microsoft .NET MVP力作,众多.NET专家口口相传的一本秘籍。全书分为三个部分,第一部分讲述底层的.NET平台,涵盖了.NET各方面的基础知识和工作原理;第二部分是C#语言部分,通过与C++比较的方式进行讲解,清晰易懂;第三部分讲述.NETFramework中的基本类库,内容几乎涉及.NET常见领域的全部知识。

本书主要面向熟悉.NET的编程人员,也适合.NET技术的初学者阅读。

目录

第1章.NET简介

1.1什么是.NET

1.1.1微软软件开发平台

1.1.2一组规范

1.1.3.NET概览

1.2发展历程

1.2.1过去

1.2.2现在

1.2.3未来

1.3微软和Windows以外的.NET

1.3.1ECMA组织与.NET

1.3.2W3C联盟

1.3.3Mono项目

1.3.4微软SSCLI项目

1.4.NET资源链接

1.4.1网站

1.4.2新闻组

1.4.3博客

第一部分.NET平台

第2章程序集、模块和IL语言

2.1程序集、模块和资源文件

2.1.1程序集和模块

2.1.2资源文件

2.1.3程序集、模块、类型和资源

2.1.4为何对多模块程序集感兴趣

2.1.5ILMerge工具

2.2模块的剖析

2.2.1可移植的可执行文件简介

2.2.2模块的结构

2.2.3清单的结构

2.2.4类型元数据段的结构

2.3使用ildasm.exe和Reflector工具分析程序集

2.3.1创建需要分析的程序集

2.3.2使用ildasm.exe分析模块

2.3.3Reflector工具

2.4程序集attribute和版本设定

2.4.1程序集的标准attribute

2.4.2程序集的版本设定

2.4.3友元程序集

2.5强名称程序集

2.5.1简介

2.5.2sn.exe工具

2.5.3公钥记号

2.5.4为程序集签名

2.5.5具体示例

2.5.6程序集的延迟签名

2.6国际化/本地化与卫星程序集

2.6.1区域设置和本地化

2.6.2资源文件

2.6.3在代码中使用资源

2.6.4创建卫星程序集

2.6.5部署和使用卫星程序集

2.6.6避免在资源无法找到时引发异常

2.6.7Visual Studio与卫星程序集

2.6.8区域设置与字符串格式化

2.7IL语言简介

2.7.1栈及其特殊的IL指令

2.7.2示例1:局部变量与栈

2.7.3示例2:方法调用与栈

2.7.4用于比较、分支和跳转的IL指令

2.7.5IL的面向对象特性

2.7.6元数据符号

第3章生成、部署以及配置.NET应用程序

3.1用MSBuild生成应用程序

3.2MSBuild:目标、任务、属性、项与条件

3.2.1.proj文件、目标与任务

3.2.2属性

3.2.3项

3.2.4条件

3.3高级 MSBuild

3.3.1增量生成与目标间的依赖

3.3.2MSBuild转换

3.3.3将一个MSBuild项目分解到多个文件

3.3.4Visual Studio 2005如何利用MSBuild

3.3.5创建自定义MSBuild任务

3.4配置文件

3.4.1machine.config文件

3.4.2标准配置参数

3.4.3使用 appSettings 元素定义配置参数

3.4.4使用配置节定义配置参数

3.4.5使用Visual Studio 2005创建配置节

3.4.6配置节的注意事项

3.5程序集部署:XCopy与GAC

3.5.1XCopy部署

3.5.2共享程序集与GAC文件夹

3.5.3GAC的并存存储模型是如何解决DLL hell问题的

3.5.4并存执行

3.5.5查看及编辑GAC文件夹

3.6发布者策略程序集

3.6.1潜在的问题

3.6.2解决方案

3.6.3创建发布者策略程序集

3.7.NET应用程序部署简介

3.7.1MSI、cab、XCopy、ClickOnce 和NTD之间的对比

3.7.2MSI与ClickOnce的对比

3.8使用cab文件部署应用程序

3.9使用MSI技术部署应用程序

3.9.1添加文件

3.9.2安装快捷方式

3.9.3在GAC文件夹中添加一个共享程序集

3.9.4安装项目属性

3.9.5更新注册表

3.9.6指定在安装期间执行的自定义动作

3.9.7为安装提供一个自定义用户界面

3.10使用ClickOnce技术部署应用程序

3.10.1部署文件夹

3.10.2为ClickOnce部署做准备

3.10.3ClickOnce部署与移动代码安全

3.10.4按需安装与下载组

3.10.5更新一个使用ClickOnce安装的应用程序

3.10.6应用程序所需的CAS权限集的工作机制

3.10.7ClickOnce应用程序安装与执行的细节

3.11使用无接触部署(NTD)技术部署应用程序

3.12如果目标机器上没有安装.NET运行库怎么办

第4章CLR

4.1应用程序域

4.1.1简介

4.1.2线程与AppDomain

4.1.3卸载AppDomain

4.1.4AppDomain和孤立性

4.1.5System.AppDomain类

4.1.6在一个进程中承载多个应用程序

4.1.7在其他AppDomain的上下文中运行代码

4.1.8AppDomain类的事件

4.1.9在同一个进程的AppDomain之间共享信息

4.2在Windows进程内通过运行库宿主加载CLR

4.2.1mscorsvr.dll和mscorwks.dll

4.2.2mscorlib.dll程序集

4.2.3运行库宿主介绍

4.2.4在同一台计算机上承载多个版本的CLR

4.2.5使用CorBindToRuntimeExO函数加载CLR

4.2.6创建一个自定义的运行库宿主

4.2.7在自定义运行库宿主中调整CLR

4.2.8SQL Server 2005运行库宿主的特性

4.3剖析.NET应用程序的执行状况

4.4定位和加载程序集

4.4.1CLR何时尝试定位程序集

4.4.2CLR使用的定位算法

4.4.3配置文件的 assemblyBinding 元素

4.4.4定位算法示意图

4.4.5影子复制机制

4.5运行库类型解析

4.5.1显式或隐式加载程序集

4.5.2编译时引用程序集

4.5.3示例

4.5.4类型解析算法示意图

4.6JIT(即时)编译

4.6.1可移植的二进制代码

4.6.2即时编译技术简介

4.6.3ngen.exe工具

4.6.4性能计数器与JIT编译

4.7垃圾收集器和托管堆

4.7.1垃圾收集技术简介

4.7.2垃圾收集算法遇到的问题

4.7.3.NET的GC

4.7.4第一步:寻找根对象

4.7.5第二步:建立活动对象树

4.7.6第三步:解除分配非活动对象

4.7.7第四步:清理堆碎片

4.7.8第五步:重新计算托管引用所使用的物理地址

4.7.9推荐做法

4.7.10针对大对象的特殊堆

4.7.11多线程环境下的垃圾收集

4.7.12弱引用

4.7.13使用System.GC类影响GC的行为

4.8提高代码可靠性的机制

4.8.1异步异常及托管代码可靠性

4.8.2受约束执行区域

4.8.3如何定义CER

4.8.4内存门

4.8.5可靠性契约

4.8.6关键终结器

4.8.7临界区

4.9CLI和CLS

4.9.1.NET语言必须满足的要求

4.9.2从开发人员的观点看CLI和CLS

第5章进程、线程与同步

5.1简介

5.2进程

5.2.1简介

5.2.2System.Diagnostics.Process类

5.2.3创建和销毁子进程

5.2.4避免在一台机器上同时运行同一应用程序的多个实例

5.2.5终止当前进程

5.3线程

5.3.1简介

5.3.2受托管的线程与Windows线程

5.3.3抢占式多任务处理

5.3.4进程与线程的优先级

5.3.5System.Threading.Thread类

5.3.6创建与联结线程

5.3.7挂起线程

5.3.8终止线程

5.3.9前台线程与后台线程

5.3.10受托管线程的状态图

5.4访问资源同步简介

5.4.1竞态条件

5.4.2死锁

5.5使用volatile字段与Interlocked类实现同步

5.5.1volatile字段

5.5.2System.Threading.Inter-locked类

5.5.3Interlocked类提供的其他功能

5.6使用System.Threading.Monitor类与C#的lock关键字实现同步

5.6.1EnterO方法和ExitO方法

5.6.2C#的lock关键字

5.6.3SyncRoot模式

5.6.4线程安全类

5.6.5Monitor.TryEnterO方法

5.6.6Monitor类的WaitO方法、PulseO方法以及PulseAllO方法

5.7使用Win32对象同步:互斥体、事件与信号量

5.7.1共享Win32同步对象

5.7.2互斥体

5.7.3事件

5.7.4信号量

5.8利用System.Threading.Reader-WriterLock类实现同步113

5.9利用System.Runtime.Remoting.Contexts.SynchronizationAttr-ibute实现同步

5.9.1同步域简介

5.9.2System.Runtime.Remoting.Contexts.Synchronization与同步域

5.9.3重入与同步域

5.9.4另一个名为Synchronization 的attribute

5.10CLR的线程池

5.10.1简介

5.10.2使用线程池

5.11定时器

5.11.1System.Timers.Timer类

5.11.2System.Threading.Timer类

5.11.3System.Windows.Forms.Timer类

5.12异步方法调用

5.12.1异步委托

5.12.2回调方法

5.12.3向回调方法传递状态

5.12.4one-way调用

5.13线程-资源亲缘性

5.13.1System.ThreadStatic-Attribute

5.13.2线程本地存储(TLS)

5.13.3System.ComponentModel. ISynchronizeInvoke接口

5.14执行上下文简介

第6章安全性

6.1代码访问安全性(CAS)概述

6.1.1什么是移动代码

6.1.2CAS:全局观

6.1.3给程序集代码授予权限

6.1.4在运行程序集的代码时检查权限

6.2CAS:证据和权限

6.2.1什么是证据

6.2.2.NET Framework所提供的标准证据

6.2.3谁提供证据

6.2.4权限

6.2.5标准权限

6.2.6标识权限

6.2.7安全权限

6.2.8自定义权限

6.3CAS:通过应用安全策略根据证据授予权限

6.3.1安全策略级别

6.3.2剖析安全策略

6.3.3用于应用安全策略的算法

6.3.4默认安全策略配置

6.3.5配置安全策略

6.4CAS:FullTrust权限

6.5CAS:从源代码进行命令式的权限检查

6.5.1CodeAccessPermissions类和PermissionSet类

6.5.2DemandO方法

6.5.3DenyO方法、RevertDenyO方法、PermitOnlyO方法和RevertPermitOnlyO方法

6.5.4AssertO方法和RevertAssertO方法

6.5.5FromXmlO方法和ToXmlO方法

6.5.6System.Security.IPermission接口

6.6CAS:使用attribute进行声明式的权限检查

6.6.1加载程序集时调整所授权限集合的attribute

6.6.2命令式与声明式的对比

6.7CAS:测试和调试移动代码的实用机制

6.8CAS:独立存储区权限

6.9.NET、Windows 用户与角色

6.9.1Windows安全简介

6.9.2IIdentity接口与IPrincipal接口

6.9.3Windows 安全标识符

6.9.4在底层Windows线程中模拟用户

6.10.NET与Windows资源的访问控制

6.10.1Windows访问控制简介

6.10.2在.NET代码中使用特殊的SD

6.10.3在.NET代码中使用通用的SD

6.11.NET与角色

6.11.1定义应用程序域的主体策略

6.11.2检查用户是否属于某个特定角色

6.11.3COM+角色

6.12.NET与密码学:对称算法

6.12.1对称算法概述

6.12.2.NET Framework与对称算法

6.13.NET与密码学:非对称算法(公钥/私钥)

6.13.1非对称算法概述

6.13.2安全会话简介

6.13.3RSA 算法

6.13.4非对称算法与数字签名

6.13.5.NET Framework与RSA算法

6.14数据保护API

6.14.1Windows的数据保护API

6.14.2System.Security.Crypto-graphy.ProtectedData类

6.14.3System.Security.Crypto-graphy.ProtectedMemory类

6.14.4System.Security.SecureString类

6.14.5保护配置文件中的数据

6.14.6确保网络传输中数据的安全

6.15使用Authenticode 技术与X.509证书验证程序集

6.15.1Authenticode与强名称

6.15.2证书与证书认证中心

6.15.3根证书

6.15.4Windows、.NET与Authenti- code技术

第7章反射、后期绑定与attribute

7.1反射

7.1.1何时需要反射

7.1.2.NET反射有何新意

7.1.3对载入AppDomain的程序集的反射

7.1.4从元数据获取信息

7.2后期绑定

7.2.1“绑定类”的含义

7.2.2早期绑定与动态绑定

7.2.3后期绑定

7.2.4在C#编译到IL期间如何实例化一个未知的类

7.2.5使用后期绑定

7.2.6利用接口:使用后期绑定的正确方法

7.3attribute

7.3.1attribute是什么

7.3.2何时需要attribute

7.3.3关于attribute应该知道的事

7.3.4可以应用attribute的代码元素

7.3.5.NET Framework中的一些标准attribute

7.3.6自定义的attribute的示例

7.3.7条件attribute

7.4动态生成程序集并在运行中使用

7.4.1为什么要考虑动态生成程序集

7.4.2一个实际的问题186

7.4.3理想的第三种解决方案——动态创建程序集

7.4.4将程序集保存到磁盘上的能力

7.4.5结论

第8章.NET与本机代码/COM/COM+之间的互操作性

8.1P/Invoke

8.1.1DllImportAttribute

8.1.2类型转换

8.1.3使用指针传递参数

8.1.4传递字符串

8.1.5传递结构与联合

8.1.6方向attribute

8.1.7委托与非托管的函数指针

8.2C++/CLI语言互操作性简介

8.2.1IJW功能

8.2.2托管类型与非托管类型共存

8.2.3在本机代码中使用托管对象

8.3.NET与Win32句柄

8.3.1简介

8.3.2HandleCollector类

8.3.3SafeHandle类与Critical-Handle类

8.4在.NET 中使用COM 对象

8.4.1类型元数据与类型库

8.4.2Interop程序集与Runtime Callable Wrapper类

8.4.3访问不使用类型库的COM组件中的COM类

8.4.4使用Visual Studio导入ActiveX

8.4.5使用RCW类时需要牢记的COM特性

8.4.6COM类的显式后期绑定

8.4.7免注册COM

8.5将.NET对象包装成CCW

8.5.1CCW简介

8.5.2从.NET程序集中生成描述CCW类的COM类型库

8.5.3在操作系统上注册CCW

8.5.4将.NET程序集作为COM组件使用

8.5.5.NET异常与CCW

8.5.6处理对象生命周期

8.6COM+简介

8.6.1COM+是什么

8.6.2在.NET中使用COM+:企业服务

8.7COM+企业服务简介

8.7.1COM+企业服务的完整列表

8.7.2你需要COM+企业服务吗

8.8在.NET类中利用COM+服务

8.8.1服务组件简介

8.8.2声明服务组件使用的企业服务

8.8.3COM+上下文与服务组件

8.8.4COM+应用程序简介

8.8.5COM+目录

8.8.6COM+应用程序的激活模式

8.8.7安装服务组件

8.8.8查看并操作COM+目录

8.8.9构建一个使用服务组件的客户

第二部分C#语言

第9章语言基本概念

9.1源代码组织

9.1.1命名空间

9.1.2命名空间中可声明的全套语法元素

9.1.3C#项目的结构

9.1.4命名空间和程序集的组织

9.2编译步骤

9.3预处理器

9.3.1预处理符号与条件编译

9.3.2预处理符号与条件attribute

9.3.3#error指令和#warning指令

9.3.4#pragma warning disable 指令和#pragma warning restore指令

9.3.5#line指令

9.3.6#region指令和#endregion指令

9.4csc.exe编译器

9.5别名机制

9.5.1创建命名空间和类型的别名

9.5.2命名空间别名限定符

9.5.3全局限定符

9.5.4外部别名

9.6注释和自动文档

9.6.1注释

9.6.2使用Visual Studio的任务列表

9.6.3自动文档

9.7标识符

9.8控制结构

9.8.1条件语句(if/else、?:和switch)

9.8.2循环语句(do、while、for和foreach)

9.8.3goto语句

9.9MainO方法

第10章从C# 2.0的角度看.NET 2.0类型系统

10.1对象在内存中的存储

10.1.1对象的分配和解除分配

10.1.2托管线程栈

10.1.3托管堆

10.1.4对象存储:托管线程栈与托管堆的比较

10.1.5静态分配与动态分配的比较

10.2引用类型和值类型

10.3公共类型系统(CTS)

10.3.1.NET类型不与任何编程语言关联

10.3.2CTS:全局观

10.4System.Object类

10.5对象比较

10.5.1等价与恒等

10.5.2自定义相等比较规则

10.5.3相等性与散列表

10.5.4自定义大小比较规则

10.6对象克隆

10.7装箱和拆箱

10.7.1装箱

10.7.2装箱导致的危险问题

10.7.3拆箱

10.8基本类型

10.8.1整型

10.8.2实型

10.8.3布尔型

10.8.4字符型

10.8.5整数和字符串之间的转换

10.9基本类型的运算

10.9.1同一基本类型上的算术运算

10.9.2处理被零除的错误

10.9.3处理溢出

10.9.4运算符的优先级

10.9.5前缀和后缀递增/递减运算符

10.9.6不同基本类型之间的算术运算

10.9.7位运算

10.10结构

10.11枚举

10.11.1枚举和整型

10.11.2System.Enum类

10.11.3位域(一组标志)

10.12字符串

10.12.1System.String类

10.12.2字符串字面常量

10.12.3无转义字符串字面常量

10.12.4使用字符串

10.12.5格式化字符串

10.12.6System.Text.StringBui-lder类

10.13委托类和委托对象

10.13.1简介

10.13.2委托对象与静态方法

10.13.3C# 2.0编译器的委托类推测功能

10.13.4委托对象与实例方法

10.13.5用一个委托对象引用多个方法

10.13.6System.Delegate类

10.13.7更改引用方法列表

10.14可空类型

10.14.1值类型和空值范式

10.14.2System.Nullable T 结构

10.14.3C#语法革新:Nullable T 关键字和null关键字

10.14.4C#语法革新:Nullable T 的等价写法T?

10.14.5C# 2.0中bool?的无差别对待

10.14.6可空类型与装箱/拆箱

10.14.7可空结构和可空枚举

10.15部分类型

10.15.1必须在每个部分声明上重复出现的类型声明元素

10.15.2在每个部分声明上可选重复出现的类型声明元素

10.15.3在多个部分声明上重复出现就会累积效果的类型声明元素

10.15.4仅在某个部分声明上起作用的类型声明元素

第11章类和对象

11.1简介

11.2术语

11.3类的定义

11.4字段

11.4.1字段初始化

11.4.2常数字段

11.4.3字段初始化的潜在问题

11.5方法

11.5.1按值或按引用传递参数

11.5.2C#的默认规则

11.5.3按引用传递任意参数

11.5.4在引用类型上使用ref关键字

11.5.5参数初始化

11.5.6输出参数

11.5.7params关键字

11.5.8方法重载

11.6属性

11.6.1get访问器

11.6.2set访问器

11.6.3关于属性的注释

11.7索引器

11.8事件

11.8.1介绍

11.8.2C#语法

11.8.3一个实际的例子

11.8.4异步事件处理

11.8.5在同步条件下保护代码不受订阅者方法所抛异常的影响

11.9嵌套类型

11.10封装性和可见性

11.10.1成员的可见性

11.10.2类型的可见性

11.10.3属性和索引器访问器的可见性

11.10.4私有成员的附加说明

11.10.5IL语言可见性的附加说明

11.11this关键字

11.12构造函数

11.12.1构造函数的声明

11.12.2创建对象时访问构造函数

11.13对象终结和析构

11.13.1析构函数、终结器和Object.FinalizeO方法

11.13.2IDisposable接口和DisposeO方法

11.13.3何时需要终结器和DisposeO方法

11.14静态成员

11.14.1静态字段、属性和事件

11.14.2静态方法

11.14.3静态构造函数

11.14.4静态类

11.15运算符重载

11.15.1算术运算符的重载

11.15.2类型转换运算符的重载

11.15.3比较运算符的重载

11.15.4运算符重载和CLS

第12章继承、多态性与抽象性

12.1目标:代码重用

12.1.1潜在问题

12.1.2解决方案之一:类的继承

12.2类的继承

12.2.1语法

12.2.2保护及内部或保护可见性级别

12.2.3类继承图

12.2.4调用基类的构造函数

12.2.5基类成员的可见性

12.2.6封闭类

12.3虚方法和多态性

12.3.1潜在问题

12.3.2解决方案之一:虚方法和多态性

12.3.3示例一则

12.3.4屏蔽多态性

12.4抽象性

12.4.1潜在的问题

12.4.2解决方案之一:抽象类和抽象方法

12.4.3示例一则

12.4.4同时使用abstract关键字和override关键字

12.5接口

12.5.1强制代码使用者使用抽象体代替实现体

12.5.2解决方法命名的冲突

12.5.3解决接口扩展带来的冲突

12.5.4覆写接口的实现方法

12.5.5接口与结构

12.6虚拟或抽象属性、事件和索引器

12.7is和as运算符

12.7.1is运算符

12.7.2as运算符

12.8代码重用的解决方案

第13章泛型

13.1C# 1.0的一个问题以及使用C# 2.0 泛型的解决方法

13.1.1C# 1.0中集合项的类型化问题

13.1.2C# 2.0泛型带来的理想方案

13.2.NET 2.0泛型概览

13.2.1声明多个类型参数

13.2.2开放和封闭泛型类型

13.2.3.NET泛型与C++模板的比较

13.2.4泛型类型的可见性

13.2.5泛型结构与接口

13.2.6泛型类型与别名

13.3类型参数的约束

13.3.1默认构造函数约束

13.3.2派生约束

13.3.3引用类型或值类型约束

13.4泛型类型的成员

13.4.1方法重载

13.4.2静态字段

13.4.3静态方法

13.4.4类构造函数

13.4.5运算符重载

13.4.6嵌套类型

13.5运算符与泛型

13.5.1类型参数的相等、不等及比较运算符

13.5.2typeof运算符与泛型

13.5.3params及lock关键字与泛型

13.5.4default运算符

13.6类型转换与泛型

13.6.1基本规则

13.6.2类型转换与泛型数组

13.6.3is和as运算符

13.7继承与泛型

13.7.1基本规则

13.7.2覆写泛型类型的虚方法

13.8泛型方法

13.8.1简介

13.8.2泛型方法与约束

13.8.3虚拟泛型方法

13.8.4泛型方法类型参数的推测

13.8.5C# 2.0语法的二义性

13.9委托、事件与泛型

13.9.1简介

13.9.2泛型委托与泛型方法

13.9.3泛型与委托的协变性及反变性

13.9.4事件和泛型委托

13.10反射、attribute、IL与泛型

13.10.1泛型与System.Type类

13.10.2泛型与System.Reflection.MethodBase类及System.Reflection.MethodInfo类

13.10.3attribute与泛型

13.10.4IL语言与泛型

13.11.NET Framework 2.0中的泛型

13.11.1对象序列化与泛型

13.11.2.NET Remoting与泛型

13.11.3集合与泛型

13.11.4不支持泛型的领域

第14章不安全代码、异常、匿名方法和迭代器

14.1指针和不安全代码

14.1.1允许不安全代码的编译器选项

14.1.2在C#中声明不安全代码

14.2在C#中使用指针

14.2.1.NET中支持指针的类型

14.2.2声明指针

14.2.3提领和间接运算符

14.2.4取大小运算符

14.2.5指针运算

14.2.6指针类型转换

14.2.7双重指针

14.2.8定址对象

14.2.9指针和数组

14.2.10固定数组

14.2.11使用stackalloc关键字在栈上分配内存

14.2.12字符串与指针

14.3利用异常处理错误

14.3.1潜在问题:如何恰当处理运行时出现的大多数错误

14.3.2C#异常处理简介

14.4异常对象和定义自己的异常类

14.4.1System.Exception类

14.4.2定义自己的异常类

14.4.3从自己的代码中抛出异常

14.4.4C#的非检查型异常

14.5catch块和finally块

14.5.1catch块的一些说明(异常处理程序)

14.5.2finally块

14.5.3增加异常语义

14.6从构造函数或终结器中抛出的异常

14.6.1静态构造函数所抛异常或静态字段初始化时所抛异常

14.6.2终结器所抛异常

14.7异常处理与CLR

14.8异常处理与Visual Studio

14.9异常管理使用指南

14.9.1何时考虑抛出异常

14.9.2在异常处理程序中做什么

14.9.3在何处放置异常处理程序

14.9.4异常与返回错误代码的对比

14.9.5永远不要预测bug造成的后果能够被异常处理程序所捕获

14.10匿名方法

14.10.1C# 2.0匿名方法简介

14.10.2匿名方法可以接受参数

14.10.3一个精妙的特殊语法

14.10.4匿名方法与泛型

14.10.5匿名方法的实际应用

14.11C# 2.0编译器与匿名方法

14.11.1简单的方式

14.11.2捕获局部变量

14.11.3捕获的局部变量与代码复杂性

14.11.4匿名方法访问外围方法的参数

14.11.5匿名方法访问外围类的成员

14.12匿名方法的高级用法

14.12.1定义:闭包与词法环境

14.12.2漫谈闭包

14.12.3使用闭包代替类

14.12.4委托与闭包

14.12.5使用匿名方法处理集合

14.13C# 1.x迭代器

14.13.1可枚举对象、枚举器和Iterator设计模式

14.13.2实例一则

14.13.3一个可枚举对象对应多个枚举器

14.13.4C# 1.x迭代器的缺点

14.14C# 2.0迭代器

14.14.1yield return关键字

14.14.2迭代器与泛型

14.14.3一个可枚举对象对应多个枚举

14.14.4yield break关键字

14.14.5yield return关键字和yield break关键字的语法限制

14.14.6递归迭代器实例

14.15C# 2.0编译器与迭代器

14.15.1编译器自动创建并使用的枚举器类

14.15.2关于生成类的说明

14.16C# 2.0迭代器的高级用法

14.16.1定义:协同例程和延拓

14.16.2通过迭代器利用协同例程和延拓的威力

14.16.3Pipeline模式

14.16.4延拓与多线程的比较

14.16.5C# 2.0迭代器的一个限制

第三部分.NET Framework

第15章集合

15.1使用foreach和in关键字迭代访问集合中的项

15.1.1在数组上使用foreach和in

15.1.2交错数组上的foreach语法

15.1.3在自定义集合类上支持foreach语法

15.2数组

15.2.1创建和引用数组

15.2.2访问数组的项和处理越界访问

15.2.3交错数组

15.2.4初始化数组的项

15.2.5数组的协变

15.2.6System.Array类

15.2.7位数组

15.3序列

15.3.1System.Collections.Generic.ICollection T 接口

15.3.2System.Collections.Generic.IList T 接口

15.3.3System.Collections.Generic.List T 类

15.3.4System.ComponentModel.IBindingList接口和System.ComponentModel.IListSource接口

15.3.5System.Collections.Generic.LinkedList T 类

15.3.6字符串列表

15.3.7System.Collections.Generic.Queue T 类

15.3.8System.Collections.Generic.Stack T 类

15.4字典

15.4.1System.Collections.Generic.IDictionary K,V 接口

15.4.2System.Collections.Generic.SortedDictionary K,V 类

15.4.3System.Collections.Generic.Dictionary K,V 类

15.4.4迭代访问字典中的项

15.5对集合中的项进行排序

15.5.1IComparer T 接口和Icom-parable T 接口

15.5.2对数组中的项排序

15.5.3对List T 实例中的元素排序

15.6用于处理集合的函数对象

15.6.1特化的委托类型

15.6.2使用匿名方法

15.6.3List T 类和Array类支持函数对象

15.6.4C# 2.0的迭代器和集合

15.7System.Collections.Generic和System.Collections之间的联系

第16章基类

16.1数学

16.1.1System.Math类

16.1.2System.Random类

16.2时间、日期和持续时间

16.2.1System.DateTime结构

16.2.2System.TimeSpan结构

16.2.3System.Diagnostics. Stopwatch类

16.3驱动器、目录、文件和路径

16.3.1操作驱动器

16.3.2操作目录

16.3.3操作文件

16.3.4操作路径

16.3.5文件系统监视器

16.4注册表

16.4.1引言

16.4.2注册表的结构

16.4.3注册表的层级

16.4.4用.NET读/写注册表

16.5调试

16.5.1用来自定义对象调试时的视图的attribute

16.5.2调试“仅我的代码”

16.5.3调试模式

16.5.4解决调试问题

16.6跟踪

16.6.1监听器

16.6.2跟踪源和源级别

16.6.3筛选跟踪源

16.6.4跟踪缩进

16.7正则表达式

16.7.1引言

16.7.2语法

16.7.3示例

16.7.4.NET和正则表达式

16.7.5优化正则表达式的求值

16.8控制台

16.8.1光标

16.8.2显示

16.8.3大小与位置

16.8.4颜色

16.8.5数据输入

16.8.6重定向控制台的流

16.8.7杂项

第17章输入、输出和流

17.1流的简介

17.1.1流的类层次结构

17.1.2操作流的工具

17.1.3流数据的类型化

17.1.4字符串编码

17.2读写文件

17.2.1简单的文件读写

17.2.2读写二进制数据文件

17.2.3读写文本文件

17.2.4以异步的方式操作流

17.3用套接字来使用TCP/IP

17.3.1套接字和TCP/IP简介

17.3.2以同步的方式操作套接字

17.3.3以异步的方式操作套接字

17.4获取网络接口和状态的信息

17.4.1发现可用网络接口

17.4.2Ping

17.4.3网络发生更改时所触发的事件

17.4.4网络活动统计

17.5HTTP和FTP客户端

17.5.1URI

17.5.2WebClient类

17.5.3通过URI访问资源的其他类

17.6在HTTP.SYS上用HttpListener编HTTP服务器代码

17.6.1HTTP.SYS简介

17.6.2System.Net.HttpListener类

17.6.3以异步方式处理HTTP请求

17.7支持邮件协议

17.8缓冲和压缩数据流

17.8.1通过Decorator设计模式在流上应用服务

17.8.2缓冲流数据

17.8.3压缩数据流

17.9在串行端口上读写数据

17.10支持安全通讯协议:SSL、NTLM和Kerberos

17.10.1安全通讯协议简介

17.10.2安全通讯协议和System.Net.Security命名空间

17.10.3SslStream类

17.10.4NegociateStream类

17.10.5加密数据流

第18章Windows Forms应用程序

18.1Windows用户界面

18.1.1控制台应用程序与窗口应用程序

18.1.2Windows消息简介

18.1.3Windows应用程序开发的发展

18.1.4System.Windows.Forms命名空间简介

18.2Windows Forms开发简介

18.2.1处理事件

18.2.2编写方法

18.2.3没有Visual Studio的Windows Forms开发

18.3Windows Forms开发工具

18.3.1模态/非模态对话框简介

18.3.2鼠标和键盘事件

18.3.3Paint事件

18.3.4异步处理

18.3.5其他特性

18.4标准控件

18.4.1Windows Forms 2.0控件的层次结构

18.4.2新增控件概述

18.5创建自定义控件

18.6显示和编辑数据

18.6.1Visual Studio 2005提供的工具

18.6.2BindingSource控件

18.6.3用BindingSource来利用数据源

18.6.4用对象列表作为数据源

18.7Windows Forms和本地化

18.8GDI+

18.8.1System.Drawing.Graphics类

18.8.2System.Drawing.Pen类

18.8.3System.Drawing.Brush类

18.8.4绘制文本

18.8.5处理图像

18.8.6优化图像的处理

18.8.7动画和双缓冲

第19章ADO.NET 2.0

19.1数据库简介

19.1.1DBMS

19.1.2RDBMS

19.1.3SQL语言

19.1.4分布式架构的必要性

19.2ADO.NET简介

19.2.1连接模式与非连接模式

19.2.2数据提供程序

19.2.3ADO.NET:全局观

19.2.4我们将在范例中使用的DB

19.3连接与数据提供程序

19.3.1解除应用程序与数据提供程序之间的耦合

19.3.2连接字符串

19.3.3如何存储连接字符串以及连接字符串存储在哪里

19.3.4连接池

19.3.5访问数据源的元数据

19.4使用DataReader在连接模式下工作

19.4.1使用DataReader从数据库中获取数据

19.4.2在数据库端进行标量运算

19.4.3使用SQL查询来修改数据

19.5使用DataSet在非连接模式下工作

19.5.1使用来自数据库的数据填充缓存

19.5.2在DataSet中对多表之间的关联进行操作

19.5.3将DataSet中更新的数据保存到数据库

19.5.4非连接模式与乐观/悲观并发策略

19.5.5DataSet中数据表的约束

19.5.6DataView类

19.6强类型DataSet

19.6.1创建强类型DataSet类

19.6.2TableAdapter和强类型SQL请求

19.7连接模式和非连接模式之间的桥接器

19.8对象与关系数据之间的桥接器

19.8.1结构问题

19.8.2行为问题

19.8.3解决上述问题的途径

19.8.4用于对象关系映射的.NET工具

19.9SQL Server数据提供程序的专有功能

19.9.1异步请求

19.9.2批量复制

19.9.3SqlClient连接上的统计数据

19.9.4SQL Server 2005 Express版本

第20章事务

20.1事务简介

20.1.1事务管理器、资源管理器和数据源

20.1.2分布式事务以及2PC算法简介

20.1.3在SQL Server连接上进行的本地事务

20.1.4分布式事务协调器

20.2System.Transactions

20.2.1LTM、持久RM和易变RM简介

20.2.2System.Transactions 实现的隐式事务

20.2.3在事务中被触发的事件

20.2.4System.Transactions揭秘

20.2.5事务隔离级别简介

20.2.6事务作用域

20.2.7System.Transactions 实现的显式事务

20.3System.Transactions的高级用法

20.3.1在多个线程中执行一个事务

20.3.2以异步方式完成事务

20.3.3System.Transactions和CAS

20.4用于实现自定义RM的机制

第21章XML

21.1简介

21.1.1XML所解决的问题

21.1.2统一文档世界和数据世界

21.1.3XML文档的结构

21.2XSD、XPath、XSLT和XQuery简介

21.2.1用XSD schema类型化XML文档及其数据

21.2.2Xpath

21.2.3XSLT

21.2.4XQuery

21.3遍历和编辑XML文档的方法

21.4使用XmlReader类和XmlWriter类的Cursor方法

21.4.1使用XmlReader类读取数据

21.4.2在读取数据时对其进行验证

21.4.3使用XmlWriter类编辑数据

21.5使用XmlDocument类的Tree/DOM方法

21.5.1使用XmlDocument类装载和遍历XML文档

21.5.2使用XmlDocument类编辑和保存XML数据

21.5.3使用XmlDocument类验证XML文档

21.5.4XmlDocument类的事件

21.6使用XPath遍历和编辑XML文档

21.6.1对内存中的DOM树应用XPath表达式

21.6.2用XPathNavigator对象遍历XPathDocument对象

21.6.3用XPathNodeIterator对象遍历XPath的选择结果集

21.6.4用XPathNavigator对象编辑XmlDocument对象

21.7使用XSLT样式表转换XML文档

21.8连接关系型数据与XML文档的桥接器

21.8.1从DataSet获取XML文档

21.8.2用XML文档填充DataSet

21.8.3System.Xml.XmlDataDocument类

21.8.4XML和SQL Server

21.9连接对象与XML文档的桥梁

21.9.1System.Xml.XmlSerialization类

21.9.2用于XML序列化的attribute

21.9.3sgen.exe工具

21.9.4xsd.exe工具

21.10Visual Studio和XML

21.10.1创建、查看以及编辑XML 文档和XSD schema

21.10.2用XSD schema验证XML文档

21.10.3编辑和调试XSLT程序

第22章.NET Remoting

22.1简介

22.1.1什么是.NET Remoting

22.1.2FAQ

22.2按引用封送

22.3按值封送和二进制序列化

22.4ObjectHandle类

22.5对象的激活

22.5.1分布式体系的组件

22.5.2宿主概览

22.5.3信道概览

22.5.4同步方式、异步方式和单向方式调用

22.5.5对象激活与对象创建

22.6well-known对象的激活

22.7客户端激活的对象

22.7.1使用new关键字激活对象

22.7.2潜在的问题

22.8Factory设计模式和soapsuds.exe工具

22.8.1Factory设计模式

22.8.2soapsuds.exe工具

22.9well-known和客户端激活的对象的生命周期

22.10配置.NET Remoting

22.10.1配置宿主

22.10.2配置客户端

22.10.3联合使用接口和配置文件

22.11.NET Remoting服务器的部署

22.11.1Windows服务

22.11.2IIS

22.12安全的.NET Remoting信道

22.12.1安全的TCP信道

22.12.2安全的HTTP信道

22.13代理和消息

22.13.1把方法调用转换成消息

22.13.2IMessage接口的层次结构

22.13.3透明代理、真实代理和ObjRef类

22.13.4通过ObjRef类发布对象

22.13.5消息接收器

22.13.6为何考虑自定义真实代理

22.13.7开发自定义真实代理

22.13.8在类的所有实例上使用自定义真实代理

22.13.9读写方法调用的参数

22.14信道

22.14.1简介

22.14.2发送方信道和代理

22.14.3接收方信道和服务器对象

22.14.4消息接收器、格式化程序和信道

22.14.5信道接收器提供程序

22.14.6示例:显示网络消息的大小

22.15.NET上下文

22.15.1简介

22.15.2上下文绑定和上下文灵活对象

22.15.3上下文attribute和上下文属性

22.15.4消息接收器区域

22.15.5使用区域的示例

22.15.6调用上下文

22.16小结

22.16.1激活对象的方式

22.16.2截获消息

第23章ASP.NET 2.0

23.1简介

23.1.1历史

23.1.2ASP与ASP.NET

23.1.3ASP.NET 1.x与ASP.NET 2.0

23.2ASP.NET概览

23.2.1Web Form

23.2.2运行期的ASP.NET、IIS和Web应用程序

23.2.3在你自己的.NET应用程序中承载ASP.NET

23.2.4基于HTTP.SYS使用ASP.NET

23.3ASP.NET应用程序的源代码

23.3.1内联代码

23.3.2服务器端脚本的代码段

23.3.3代码隐藏

23.4编译和部署模型

23.4.1动态编译

23.4.2就地预编译

23.4.3部署预编译

23.5Web Form和控件

23.5.1服务器控件

23.5.2客户端和服务器端之间的交互

23.5.3视图状态

23.5.4回发事件和非回发事件

23.5.5控件状态

23.5.6跨页面传递

23.5.7HTML服务器控件与Web服务器控件

23.6页面生命周期

23.7ASP.NET应用程序配置

23.7.1Web.Config文件的组织

23.7.2Web.Config文件的部分

23.7.3 processModel 部分

23.7.4更新配置

23.7.5在运行期应用配置更新

23.8HTTP管线

23.8.1简介

23.8.2HttpApplication类和Global.asax文件

23.8.3HTTP上下文

23.8.4HTTP模块

23.8.5HTTP处理程序

23.9状态和会话管理

23.9.1会话管理

23.9.2处理会话标识符

23.9.3会话存储的标准实现

23.9.4为存储会话提供自定义实现

23.10Provider设计模式

23.11错误处理

23.11.1 system .Web 配置元素和 customErrors 配置元素

23.11.2Application_Error事件

23.11.3ErrorPage属性

23.12跟踪、诊断以及事件管理

23.12.1trace.axd HTTP处理程序

23.12.2ASP.NET性能计数器

23.12.3ASP.NET状态监视

23.13输入数据的校验

23.13.1校验控件

23.13.2实现自定义校验

23.13.3校验组

23.13.4ValidationSummary类

23.14用户控件

23.14.1复合用户控件

23.14.2用户控件事件

23.14.3用户控件状态

23.14.4用户控件与Visual Studio的设计时支持

23.15缓存

23.15.1页面缓存

23.15.2缓存页面的多个版本

23.15.3页面片段缓存

23.15.4缓存后替换

23.15.5数据缓存

23.15.6缓存依赖

23.15.7SQL Server缓存依赖

23.15.8自定义缓存依赖

23.16数据源

23.16.1通过程序的方式绑定控件和数据源

23.16.2声明式绑定控件和数据源

23.16.3平铺数据源与层次数据源

23.16.4ObjectDataSource类

23.16.5利用数据源更新数据

23.17查看并编辑数据

23.17.1GridView控件

23.17.2模板

23.17.3DetailsView控件

23.17.4FormView控件

23.17.5显示XML数据

23.18母版页

23.18.1母版页和内容页面

23.18.2嵌套母版页

23.18.3配置母版页

23.18.4从内容页面访问母版页

23.19ASP.NET 2.0与本地化

23.20站点导航

23.21安全

23.21.1通过IIS验证Windows用户

23.21.2ASP.NET验证

23.21.3表单验证提供程序

23.21.4管理用户

23.21.5管理角色

23.21.6安全服务器控件

23.22个性化与用户配置

23.22.1配置提供程序以及用户数据的管理

23.22.2匿名识别

23.22.3个性化与会话

23.23样式、主题与皮肤

23.23.1CSS样式和控件

23.23.2主题

23.23.3皮肤

23.23.4命名的皮肤

23.24WebPart

23.24.1创建包含WebPart的页面

23.24.2设计方式

23.24.3WebPart目录

23.24.4编辑方式

23.24.5连接WebPart

第24章使用.NET进行Web服务开发

24.1简介

24.1.1SOA:面向服务架构

24.1.2SOAP和WSDL

24.1.3WS-I基本概要

24.1.4消息交换模式

24.2开发一个简单的Web服务

24.2.1不使用Visual Studio开发一个简单的Web服务

24.2.2使用Visual Studio开发一个简单的Web服务

24.3测试与调试Web服务

24.3.1测试Web服务

24.3.2调试Web服务

24.4创建Web服务的.NET客户端

24.4.1不使用Visual Studio来创建Web服务的.NET客户端

24.4.2使用Visual Studio创建Web 服务的.NET客户端

24.5异步调用与消息交换模式

24.6通过.NET Remoting客户端使用Web服务

24.7SOAP消息

24.7.1简介

24.7.2定义以及处理SOAP首部

24.7.3对SOAP消息体编码

24.7.4SOAP错误消息

24.7.5SOAP与底层传输协议

24.8Web服务契约与WSDL语言

24.8.1WSDL能够表达什么

24.8.2剖析WSDL文档

24.9WSE与WS-*规范简介

24.9.1WSE简介

24.9.2WSE 3.0所支持的规范

24.9.3安装WSE

24.9.4WSE是如何利用SOAP扩展的

24.9.5使用WSE诊断的第一个测试

24.10WSE尚未支持的WS-*规范

24.10.1WS-PolicyAttachment与WS-MetadataExchange

24.10.2WS-ReliableMessage

24.10.3UDDI and WS-Discovery

24.10.4WS-Federation

24.10.5WS-Coordination

24.10.6WS-AtomicTransaction与WS-BusinessActivity

24.10.7WS-Enumeration

24.10.8WS-Eventing

24.10.9WS-Management

24.11WCF简介

附录AC# 2.0的关键字

附录B.NET 2.0的新增功能

附录C设计模式简介

附录D针对.NET 2.0平台的工具

C#和.NET 2.0 实战:平台、语言与框架

C#和.NET 2.0 实战:平台、语言与框架

C#和.NET 2.0 实战:平台、语言与框架

C#和.NET 2.0 实战:平台、语言与框架

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有