c#高级编程(第4版)

2019-08-05 30 0 举报/投诉

c#高级编程(第4版)

C#和.NET全面革新了编写程式的方式。本书以最新的.NET Framework 2.0和Visual Studio 2005为基础,全面介绍了C#编程的工具,提供了理解.NET体系结构的工作原理所必需的背景知识。

基本介绍

  • 书名:c#高级编程(第4版
  • ISBN:7302138036
  • 出版社:清华大学出版社
  • 出版时间:2006年

C#高级编程

出版社:清华大学出版社市场价:158.00页码:1191 页码·出版日:2006年·ISBN:7302138036·条码:9787302138037·版次:2006年10月第1版·装帧:平装·开本:16开

内容简介

本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言套用于各种使用相关技术的应用程式,例如资料库访问和高级绘图技术。这种方式有助于对c#语言的各个方面进行深入细緻的理解,以专业人员的方式开始编程。C#经典名着!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下:其第3版被中华读书报、CSDN、《程式设计师》等机构评选为2005年最权威的十大IT图书之一(第2名);在中国版协、中国出版科学研究所、(出版参考、杂誌组织的“2005年度输出版、引进版优秀图书”评选活动中获得“2005年度引进版科技类优秀图书”奖。第4版面向C#2005,在全面展示.NET新特性的同时继续完善原有的内容,是有一些C#基础知识的学习者或者想迁移到C#的其他程式设计师全面掌握C#的首选教程。C#和.NET全面革新了编写程式的方式。本书以最新的.NET Framework 2.0和Visual Studio 2005为基础,全面介绍了C#编程的工具,提供了理解.NET体系结构的工作原理所必需的背景知识。本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言套用于各种使用相关技术的应用程式,例如资料库访问和高级绘图技术。这种方式有助于对c#语言的各个方面进行深入细緻的理解,以专业人员的方式开始编程。本书涵盖的内容有助于编写动态Web页面、XML Web服务、分散式应用程式的组件,以及windows桌面应用程式等。本书适用于已具有C++、Visual Basic或J++等编程经验的开发人员。以及了解.NET 1.0,但準备迁移到.NET 2.0和Visual Studio 2005的程式设计师。

作者简介

译者:李敏波,01年获清华大学工学博士学位,随后在新加坡国立大学从事协同产品设计与门户的博士后研究。02年至04年在金蝶软体(中国)公司中央研究院担任高级研究员。现任复旦大学软体学院零售与分销管理系统研究中心的副主任,从事教学与科研工作。

媒体推荐

C#和.NET全面革新了编写程式的方式。本书以最新的.NET Frame-work2.0和Visual Studio2005为基础,全面介绍了C#编程的工具,提供了理解.NET体系结构的工作原理所必需的背景知识。本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言套用于各种使用相关技术的应用程式,倒如资料库访问和高级绘图技术。这种方式有助于对C#语言的各个方面进行深入细緻的理解,以专业人员的方式开始编程。本书涵盖的内容有助于编写动态Web页面、XML Web服务、分散式应用程式的组件,以及Windows桌面应用程式等。本书主要内容:NET环境中的编程原则,创建Windows应用程式和Windows服务的方式,使用已有的COM组件和NET应用程式,用编写动态的Web页面和Web服务。用C#2005处理XML的技术。用访问资料库,与目录互动操作,编写在Web站点上运行的删节组件。本书读者对象:本书适用于已具有C++、Visual Basic或J++等编程经验的开人发员。本书还适合于了解NET1.0,但準备迁移到NET2.0和Visual Studio 2005的程式设计师。本书技术支持: Wrox畅销书!C#经典名着!2005年最权威的十大IT图书!2005年度引进版科技类优秀图书!之C#2005最新版。

编辑推荐

C#和.NET全面革新了编写程式的方式。本书以最新的.NET Framework 2.0和Visual Studio 2005为基础,全面介绍了C#编程的工具,提供了理解.NET体系结构的工作原理所必需的背景知识。本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言套用于各种使用相关技术的应用程式,例如资料库访问和高级绘图技术。这种方式有助于对c#语言的各个方面进行深入细緻的理解,以专业人员的方式开始编程。本书涵盖的内容有助于编写动态Web页面、XML Web服务、分散式应用程式的组件,以及windows桌面应用程式等。本书适用于已具有C++、Visual Basic或J++等编程经验的开发人员。以及了解.NET 1.0,但準备迁移到.NET 2.0和Visual Studio 2005的程式设计师。

评论

该书对于c#语言、.NET framework的学习很有帮助,但是是从外文翻译过来的,对于有些内容不容易理解。

目录

第Ⅰ部分 C# 语言第1章 .NET体系结构1.1 C#与.NET的关係1.2 公共语言运行库1.2.1 平台无关性1.2.2 提高性能1.2.3 语言的互操作性1.3 中间语言1.3.1 面向对象和接口的支持1.3.2 相异值类型和引用类型1.3.3 强数据类型1.3.4 通过异常处理错误1.3.5 特性的使用1.4 程式集1.4.1 私有程式集1.4.2 共享程式集1.4.3 反射1.5 .NET Framework类1.6 命名空间1.7 用C#创建.NET应用程式1.7.1 创建应用程式1.7.2 创建Windows窗体1.7.3 使用Windows Presentation Foundation(WPF)1.7.4 Windows控制项1.7.5 Windows服务1.7.6 Windows Communication Foundation(WCF)
1.8 C#在.NET企业体系结构中的作用1.9 小结第2章 C#基础2.1 引言2.2 第一个C#程式2.2.1 代码2.2.2 编译并运行程式2.2.3 详细介绍2.3 变数2.3.1 变数的初始化2.3.2 类型推断2.3.3 变数的作用域2.3.4 常量2.4 预定义数据类型2.4.1 值类型和引用类型2.4.2 CTS类型2.4.3 预定义的值类型2.4.4 预定义的引用类型2.5 流控制2.5.1 条件语句2.5.2 循环2.5.3 跳转语句2.6 枚举2.7 数组2.8 命名空间2.8.1 using语句2.8.2 命名空间的别名2.9 Main()方法2.9.1 多个Main()方法2.9.2 给Main()方法传送参数2.10 有关编译C#档案的更多内容2.11 控制台I/O2.12 使用注释2.12.1 源档案中的内部注释2.12.2 XML文档说明2.13 C#预处理器指令2.13.1 #define和 #undef2.13.2 #if, #elif, #else和#endif2.13.3 #warning和 # error2.13.4 #region和#endregion2.13.5 #line2.13.6 #pragma2.14 C#编程规则2.14.1 用于标识符的规则2.14.2 用法约定2.15 小结第3章 对象和类型3.1 类和结构3.2 类成员3.2.1 数据成员3.2.2 函式成员3.2.3 唯读栏位3.3 匿名类型3.4 结构3.4.1 结构是值类型3.4.2 结构和继承3.4.3 结构的构造函式3.5 部分类3.6 静态类3.7 Object类3.7.1 System.Object方法3.7.2 ToString()方法3.8 扩展方法3.9 小结第4章 继承4.1 继承的类型4.1.1 实现继承和接口继承4.1.2 多重继承4.1.3 结构和类4.2 实现继承4.2.1 虚方法4.2.2 隐藏方法4.2.3 调用函式的基类版本
4.2.4 抽象类和抽象函式4.2.5 密封类和密封方法4.2.6 派生类的构造函式4.3 修饰符4.3.1 可见性修饰符4.3.2 其他修饰符4.4 接口4.4.1 定义和实现接口4.4.2 派生的接口4.5 小结第5章 数组5.1 简单数组5.1.1 数组的声明5.1.2 数组的初始化5.1.3 访问数组元素5.1.4 使用引用类型5.2 多维数组5.3 锯齿数组5.4 Array类5.4.1 属性5.4.2 创建数组5.4.3 複製数组5.4.4 排序5.5 数组和集合接口5.5.1 IEumerable接口5.5.2 ICollection接口5.5.3 IList接口5.6 枚举5.6.1 IEnumerator接口5.6.2 foreach语句5.6.3 yield语句5.7 小结第6章 运算符和类型强制转换6.1 运算符6.1.1 运算符的简化操作6.1.2 条件运算符6.1.3 checked和unchecked运算符6.1.4 is运算符6.1.5 as运算符6.1.6 sizeof运算符6.1.7 typeof运算符6.1.8 可空类型和运算符6.1.9 空接合运算符6.1.10 运算符的优先权6.2 类型的安全性6.2.1 类型转换6.2.2 装箱和拆箱6.3 对象的相等比较6.3.1 引用类型的相等比较6.3.2 值类型的相等比较6.4 运算符重载6.4.1 运算符的工作方式6.4.2 运算符重载的示例:Vector结构6.5 用户定义的数据类型转换6.5.1 执行用户定义的类型转换6.5.2 多重数据类型转换6.6 小结第7章 委託和事件7.1 委託7.1.1 在C#中声明委託7.1.2 在C#中使用委託7.1.3 简单的委託示例7.1.4 BubbleSorter示例7.1.5 多播委託7.1.6 匿名方法7.1.7 ?表达式7.1.8 协变和抗变7.2 事件7.2.1 从接收器的角度讨论事件7.2.2 生成事件7.3 小结第8章 字元串和正则表达式8.1 System.String类8.1.1 创建字元串8.1.2 StringBuilder成员
8.1.3 格式化字元串8.2 正则表达式8.2.1 正则表达式概述8.2.2 RegularExpressionsPlayaround示例8.2.3 显示结果8.2.4 匹配、组合和捕获8.3 小结第9章 泛型9.1 概述9.1.1 性能9.1.2 类型安全9.1.3 二进制代码的重用9.1.4 代码的扩展9.1.5 命名约定9.2 创建泛型类9.3 泛型类的特性9.3.1 默认值9.3.2 约束9.3.3 继承9.3.4 静态成员9.4 泛型接口9.5 泛型方法9.6 泛型委託9.6.1 执行委託调用的方法9.6.2 对Array类使用泛型委託9.7 Framework的其他泛型类型9.7.1 结构Nullable9.7.2 EventHandler9.7.3 ArraySegment9.8 小结第10章 集合10.1 集合接口和类型10.2 列表10.2.1 创建列表10.2.2 唯读集合10.3 伫列10.4 栈10.5 鍊表10.6 有序表10.7 字典10.7.1 键的类型10.7.2 字典示例10.7.3 Lookup类10.7.4 其他字典类10.8 HashSet10.9 位数组10.9.1 BitArray10.9.2 BitVector3210.10 性能10.11 小结第11章 Language Integrated Query11.1 LINQ概述11.1.1 使用List的查询11.1.2 扩展方法11.1.3 λ表达式11.1.4 LINQ查询11.1.5 推迟查询的执行11.2 标準的查询操作符11.2.1 过滤11.2.2 用索引来过滤11.2.3 类型过滤11.2.4 複合的from子句11.2.5 排序11.2.6 分组11.2.7 对嵌套的对象分组11.2.8 连线11.2.9 设定操作11.2.10 分区11.2.11 合计操作符11.2.12 转换11.2.13 生成操作符11.3 表达式树11.4 LINQ提供程式11.5 小结第12章 记忆体管理和指针12.1 后台记忆体管理
12.1.1 值数据类型12.1.2 引用数据类型12.1.3 垃圾收集12.2 释放未託管的资源12.2.1 析构函式12.2.2 IDisposable接口12.2.3 实现IDisposable接口和析构函式12.3 不安全的代码12.3.1 用指针直接访问记忆体12.3.2 指针示例:PointerPlayaround12.3.3 使用指针最佳化性能12.4 小结第13章 反射13.1 定製特性13.1.1 编写定製特性13.1.2 定製特性示例:WhatsNewAttributes13.2 反射13.2.1 System.Type类13.2.2 TypeView示例13.2.3 Assembly类13.2.4 完成WhatsNewAttributes示例13.3 小结第14章 错误和异常14.1 异常类14.2 捕获异常14.2.1 执行多个catch块14.2.2 在其他代码中捕获异常14.2.3 System.Exception属性14.2.4 没有处理异常时所发生的情况14.2.5 嵌套的 try块14.3 用户定义的异常类14.3.1 捕获用户定义的异常14.3.2 抛出用户定义的异常14.3.3 定义异常类14.4 小结第Ⅱ部分 Visual Studio第15章 Visual Studio 200815.1 使用Visual Studio 200815.1.1 创建项目15.1.2 解决方案和项目15.1.3 Windows应用程式代码15.1.4 读取Visual Studio 6项目15.1.5 项目的浏览和编码15.1.6 生成项目15.1.7 调试15.2 修订功能15.3 多目标15.4 WPF、WCF、WF等15.4.1 在Visual Studio中建立WPF应用程式15.4.2 在Visual Studio中建立WF应用程式15.5 小结第16章 部署16.1 部署的设计16.2 部署选项16.2.1 Xcopy实用工具16.2.2 Copy Web工具16.2.3 发布Web站点16.2.4 部署项目16.2.5 ClickOnce16.3 部署的要求16.4 部署.NET运行库16.5 简单的部署16.5.1 Xcopy部署16.5.2 Xcopy和Web应用程式16.5.3 Copy Web工具
16.5.4 发布Web站点16.6 Installer项目16.6.1 Windows Installer16.6.2 创建安装程式16.7 ClickOnce16.7.1 ClickOnce操作16.7.2 发布应用程式16.7.3 ClickOnce设定16.7.4 应用程式快取16.7.5 安全性16.7.6 高级选项16.8 小结第Ⅲ部分 基类库第17章 程式集17.1 程式集的含义17.1.1 程式集的特性17.1.2 程式集的结构17.1.3 程式集的清单17.1.4 命名空间、程式集和组件17.1.5 私有程式集和共享程式集17.1.6 辅助程式集17.1.7 查看程式集17.2 构建程式集17.2.1 创建模组和程式集17.2.2 程式集的属性17.3 动态载入和创建程式集17.4 应用程式域17.5 共享程式集17.5.1 强名17.5.2 使用强名获得完整性17.5.3 全局程式集快取17.5.4 创建共享程式集17.5.5 创建强名17.5.6 安装共享程式集17.5.7 使用共享程式集17.5.8 程式集的延迟签名17.5.9 引用17.5.10 本机图像生成器17.6 配置.NET应用程式17.6.1 配置类别17.6.2 为搜寻程式集配置目录17.7 版本问题17.7.1 版本号17.7.2 编程获取版本17.7.3 应用程式配置档案17.7.4 发布方的策略档案17.7.5 运行库的版本17.8 小结第18章 跟蹤和事件18.1 跟蹤18.1.1 跟蹤源18.1.2 跟蹤开关18.1.3 跟蹤监听器18.1.4 过滤器18.1.5 断言18.2 事件日誌18.2.1 事件日誌体系架构18.2.2 事件日誌类18.2.3 创建事件源18.2.4 写入事件日誌18.2.5 资源档案18.3 性能监控18.3.1 性能监控类18.3.2 性能计数器的构建18.3.3 添加PerformanceCounter组件18.3.4 perfmon.exe18.4 小结第19章 执行绪和同步19.1 概述19.2 异步委託19.2.1 投票19.2.2 等待句柄19.2.3 异步回调19.3 Thread类19.3.1 给执行绪传送数据19.3.2 后台执行绪19.3.3 执行绪的优先权19.3.4 控制执行绪
19.4 执行绪池19.5 执行绪问题19.5.1 竞态条件19.5.2 死锁19.6 同步19.6.1 lock语句和执行绪安全19.6.2 Interlocked19.6.3 Monitor类19.6.4 等待句柄19.6.5 Mutex类19.6.6 Semaphore类19.6.7 Events类19.6.8 ReaderWriterLockSlim19.7 Timer类19.8 COM单元19.9 基于事件的异步模式19.9.1 BackgroundWorker类19.9.2 激活取消功能19.9.3 激活进度功能19.9.4 创建基于事件的异步组件19.10 小结第20章 安全性20.1 身份验证和授权20.1.1 标识和Principal20.1.2 角色20.1.3 声明基于角色的安全性20.1.4 客户应用程式服务20.2 加密20.2.1 签名20.2.2 密钥的互换和安全传送20.3 资源的访问控制20.4 代码访问的安全性20.4.1 许可权20.4.2 代码组20.4.3 策略的级别:Machine、User和Enterprise20.5 安全策略的管理20.5.1 代码组和许可权的管理20.5.2 安全性的启用和禁用20.5.3 代码组的创建20.5.4 代码组的删除20.5.5 代码组许可权的更改20.5.6 许可权集的创建和套用20.5.7 使用强名发布代码20.5.8 使用证书发布代码20.6 小结第21章 本地化21.1 System.Globalization命名空间21.1.1 Unicode问题21.1.2 文化和区域21.1.3 使用文化21.1.4 排序21.2 资源21.2.1 创建资源档案21.2.2 资源档案生成器21.2.3 ResourceWriter21.2.4 使用资源档案21.2.5 System.Resources命名空间21.3 使用Visual Studio的Windows Forms本地化示例21.3.1 编程修改文化21.3.2 使用定製资源档案21.3.3 资源的自动回退21.3.4 外包翻译21.4 用本地化21.5 用WPF本地化21.5.1 WPF应用程式21.5.2 .NET资源21.5.3 用XAML本地化21.6 定製的资源读取器21.6.1 创建DatabaseResourceReader类21.6.2 创建DatabaseResourceSet类
21.6.3 创建DatabaseResource-Manager类21.6.4 DatabaseResourceReader的客户应用程式21.7 创建定製文化21.8 小结第22章 事务处理22.1 概述22.1.1 事务处理阶段22.1.2 ACID属性22.2 资料库和实体类22.3 传统的事务处理22.3.1 事务处理22.3.2 System.EnterpriseServices22.4 System.Transactions22.4.1 可提交的事务处理22.4.2 事务处理的升级22.4.3 依赖的事务处理22.4.4 环境事务处理22.5 隔离级别22.6 定製资源管理器22.7 Windows Vista和Windows Server 2008 的事务处理22.8 小结第23章 Windows服务23.1 Windows服务23.2 Windows服务的体系结构23.2.1 服务程式23.2.2 服务控制程式23.2.3 服务配置程式23.3 System.ServiceProcess命名空间23.4 创建Windows服务23.4.1 使用套接字的类库23.4.2 TcpClient示例23.4.3 Windows服务项目23.4.4 执行绪和服务23.4.5 服务的安装23.4.6 安装程式23.5 服务的监视和控制23.5.1 MMC计算机管理23.5.2 net.exe23.5.3 sc.exe23.5.4 Visual Studio Server Explorer23.5.5 ServiceController类23.6 故障排除23.6.1 互动式服务23.6.2 事件日誌23.7 电源事件23.8 小结第24章 互操作性24.1 .NET和COM24.1.1 元数据24.1.2 释放记忆体24.1.3 接口24.1.4 方法绑定24.1.5 数据类型24.1.6 注册24.1.7 执行绪24.1.8 错误处理24.1.9 事件处理24.2 编组24.3 在.NET客户程式中使用COM组件24.3.1 创建COM组件24.3.2 创建Runtime Callable Wrapper24.3.3 使用RCW24.3.4 可互动操作的主程式集24.3.5 执行绪问题24.3.6 添加连线点24.3.7 在Windows窗体中使用ActiveX控制项24.3.8 在中使用COM对象
24.4 在COM客户程式中使用.NET组件24.4.1 COM Callable Wrapper24.4.2 创建.NET组件24.4.3 创建类型库24.4.4 COM互操作特性24.4.5 COM注册24.4.6 创建COM客户程式24.4.7 添加连线点24.4.8 用sink对象创建客户程式24.4.9 在Internet Explorer中运行Windows窗体控制项24.5 平台调用24.6 小结第Ⅳ部分 数 据第25章 档案和注册表操作25.1 管理档案系统25.1.1 表示档案和资料夹的.NET类25.1.2 Path类25.1.3 示例:档案浏览器25.2 移动、複製和删除档案25.2.1 FilePropertiesAndMovement示例25.2.2 示例FilePropertiesAnd-Movement的代码25.3 读写档案25.3.1 读取档案25.3.2 写入档案25.3.3 流25.3.4 快取的流25.3.5 使用FileStream类读写二进制档案25.3.6 读写文本档案25.4 读取驱动器信息25.5 档案的安全性25.5.1 从档案中读取ACL25.5.2 从目录中读取ACL25.5.3 添加和删除档案中的ACL项25.6 读写注册表25.6.1 注册表25.6.2 .NET注册表类25.6.3 SelfPlacingWindow示例25.7 读写独立存储器25.8 小结第26章 .NET数据访问26.1 概述26.1.1 命名空间26.1.2 共享类26.1.3 资料库特定的类26.2 使用资料库连线26.2.1 管理连线字元串26.2.2 高效地使用连线26.2.3 事务处理26.3 命令26.3.1 执行命令26.3.2 调用存储过程26.4 快速数据访问:数据读取器26.5 管理数据和关係:DataSet类26.5.1 数据表26.5.2 数据列26.5.3 数据关係26.5.4 数据约束26.6 XML模式:用XSD生成代码26.7 填充数据集26.7.1 用数据适配器来填充DataSet26.7.2 从XML中给数据集填充数据26.8 保存对数据集的修改26.8.1 通过数据适配器进行更新26.8.2 写入XML输出结果
26.9 使用26.9.1 分层开发26.9.2 生成SQL Server的键26.9.3 命名约定26.10 小结第27章 LINQ to SQL27.1 LINQ to SQL和Visual Studio 200827.1.1 使用LINQ to SQL调用Products表——创建控制台应用程式27.1.2 添加LINQ to SQL类27.1.3 O/R设计器概述27.1.4 创建Product对象27.2 对象映射到LINQ对象上27.2.1 DataContext对象27.2.2 Table对象27.3 不使用O/R设计器工作27.3.1 创建自己的定製对象27.3.2 用定製的对象和LINQ进行查询27.3.3 用查询限制所调用的列27.3.4 使用列名27.3.5 创建自己的DataContext对象27.4 定製对象和O/R设计器27.5 查询资料库27.5.1 使用查询表达式27.5.2 查询表达式27.5.3 使用表达式过滤27.5.4 连线27.5.5 组合数据项27.6 存储过程27.7 小结第28章 处理XML28.1 .NET支持的XML标準28.2 System.Xml命名空间28.3 使用System.Xml类28.4 读写流格式的XML28.4.1 使用 XmlReader类28.4.2 使用XmlReader类进行验证28.4.3 使用XmlWriter类28.5 在.NET中使用DOM28.6 使用XPathNavigator28.6.1 System.Xml.XPath命名空间28.6.2 System.Xml.Xsl命名空间28.6.3 调试XSLT28.7 XML28.7.1 将数据转换为XML文档28.7.2 把XML文档转换为数据28.8 在XML中串列化对象28.9 小结第29章 LINQ to XML29.1 LINQ to XML和.NET 3.529.1.1 创建XML文档的新对象29.1.2 Visual Basic 2008开闢了另一条道路29.1.3 命名空间和前缀29.2 .NET Framework 3.5中的新XML对象29.2.1 XDocument对象29.2.2 XElement对象29.2.3 XNamespace对象29.2.4 XComment对象29.2.5 XAttribute对象29.3 使用LINQ查询XML文档29.3.1 查询静态的XML文档
29.3.2 查询动态的XML文档29.4 处理XML文档29.4.1 读取XML文档29.4.2 写入XML文档29.5 使用LINQ to SQL和LINQto XML29.5.1 建立LINQ to SQL组件29.5.2 查询资料库,输出XML29.6 小结第30章 .NET编程和SQL Server30.1 .NET运行库的主机30.2 Microsoft.SqlServer.Server30.3 用户定义的类型30.3.1 创建UDT30.3.2 使用UDT30.3.3 在客户端代码中使用UDT30.4 用户定义的合计函式30.4.1 创建用户定义的合计函式30.4.2 使用用户定义的合计函式30.5 存储过程30.5.1 创建存储过程30.5.2 使用存储过程30.6 用户定义的函式30.6.1 创建用户定义的函式30.6.2 使用用户定义的函式30.7 触发器30.7.1 创建触发器30.7.2 使用触发器30.8 XML数据类型30.8.1 包含XML数据的表30.8.2 读取XML值30.8.3 数据的查询30.8.4 XML数据修改语言(XML DML)30.8.5 XML索引30.8.6 强类型化的XML30.9 小结第Ⅴ部分 显示第31章 Windows窗体31.1 创建Windows窗体应用程式类层次结构31.2 Control类31.2.1 大小和位置31.2.2 外观31.2.3 用户互动操作31.2.4 Windows功能31.2.5 杂项功能31.3 标準控制项和组件31.3.1 Button控制项31.3.2 CheckBox控制项31.3.3 RadioButton控制项31.3.4 ComboBox控制项、ListBox控制项和CheckedListBox控制项31.3.5 DateTimePicker控制项31.3.6 ErrorProvider组件31.3.7 HelpProvider组件31.3.8 ImageList组件31.3.9 Label控制项31.3.10 ListView控制项31.3.11 PictureBox控制项31.3.12 ProgressBar控制项31.3.13 TextBox控制项、RichTextBox控制项与MaskedTextBox控制项31.3.14 Panel控制项31.3.15 FlowLayoutPanel和TableLayoutPanel控制项31.3.16 SplitContainer控制项
31.3.17 TabControl控制项和TabPages控制项31.3.18 ToolStrip控制项31.3.19 MenuStrip控制项31.3.20 ContextMenuStrip控制项31.3.21 ToolStripMenuItem控制项31.3.22 ToolStripManager类31.3.23 ToolStripContainer控制项31.4 窗体31.4.1 Form类31.4.2 多文档界面31.4.3 定製控制项31.5 小结第32章 数据绑定32.1 DataGridView控制项32.1.1 显示列表数据32.1.2 数据源32.2 DataGridView类的层次结构32.3 数据绑定32.3.1 简单的绑定32.3.2 数据绑定对象32.4 Visual Studio和数据访问32.4.1 创建一个连线32.4.2 选择数据32.4.3 更新数据源32.4.4 其他常见的要求32.5 小结第33章 使用GDI+绘图33.1 理解绘图规则33.1.1 GDI和GDI+33.1.2 绘制图形33.1.3 使用OnPaint()绘制图形33.1.4 使用剪下区域33.2 测量坐标和区域33.2.1 Point和PointF结构33.2.2 Size和SizeF结构33.2.3 Rectangle和RectangleF结构33.2.4 Region33.3 调试须知33.4 绘製可滚动的视窗33.5 世界、页面和设备坐标33.6 颜色33.6.1 红绿蓝(RGB)值33.6.2 命名的颜色33.6.3 图形显示模式和安全的调色板33.6.4 安全调色板33.7 画笔和钢笔33.7.1 画笔33.7.2 钢笔33.8 绘制图形和线条33.9 显示图像33.10 处理图像时的问题33.11 绘製文本33.12 简单的文本示例33.13 字型和字型系列33.14 示例:枚举字型系列33.15 编辑文本文档:CapsEditor示例33.15.1 Invalidate()方法33.15.2 计算项和文档的大小33.15.3 OnPaint()33.15.4 坐标转换33.15.5 回响用户的输入33.16 列印33.17 小结
第34章 Windows Presentation Foundation34.1 概述34.1.1 XAML34.1.2 设计人员和开发人员的合作34.1.3 类层次结构31.1.4 命名空间34.2 形状34.3 变换34.4 笔刷34.4.1 SolidColorBrush34.4.2 LinearGradientBrush34.4.3 RadialGradientBrush34.4.4 DrawingBrush34.4.5 ImageBrush34.4.6 VisualBrush34.5 控制项34.5.1 简单控制项34.5.2 内容控制项34.5.3 有标题的内容控制项34.5.4 项控制项34.5.5 带标题的项控制项34.6 布局34.6.1 StackPanel34.6.2 WrapPanel34.6.3 Canvas34.6.4 DockPanel34.6.5 Grid34.7 事件处理34.8 样式、模板和资源34.8.1 样式34.8.2 资源34.8.3 创建列表框的样式34.9 小结第35章 高级WPF35.1 数据绑定35.1.1 概述35.1.2 用XAML绑定35.1.3 简单对象的绑定35.1.4 对象数据提供程式35.1.5 列表绑定35.1.6 绑定到XML上35.1.7 绑定的验证35.2 命令绑定35.3 动画35.3.1 时间线35.3.2 触发器35.3.3 故事板135.4 在WPF中添加3D特性35.5 Windows窗体集成35.5.1 Windows窗体中的WPF控制项35.5.2 WPF应用程式中的Windows窗体控制项35.6 WPF浏览器应用程式35.7 小结第36章 外挂程式36.1 System.AddIn体系结构36.1.1 外挂程式的问题36.1.2 管道体系结构36.1.3 发现36.1.4 激活和隔离36.1.5 契约36.1.6 生存期36.1.7 版本问题36.2 外挂程式示例36.2.1 计算器契约36.2.2 计算器外挂程式视图36.2.3 计算器外挂程式适配器36.2.4 计算器外挂程式36.2.5 计算器主机视图36.2.6 计算机主机适配器36.2.7 计算器主机36.2.8 其他外挂程式
36.3 小结第37章 页面37.1 概述37.2 Web窗体37.2.1 代码模型37.2.2 伺服器控制项37.3 和数据绑定37.3.1 更新会议登记应用程式37.3.2 数据绑定的更多内容37.4 应用程式配置37.5 小结第38章 开发38.1 用户控制项和定製控制项38.1.1 用户控制项38.1.2 PCSDemoSite中的用户控制项38.1.3 定製控制项38.2 Master页面38.2.1 在Web页面中访问Master页面38.2.2 嵌套的Master页面38.2.3 PCSDemoSite中的Master页面38.3 站点导航38.4 安全性38.4.1 使用安全嚮导添加Forms身份验证功能38.4.2 实现登录系统38.4.3 Web 登录伺服器控制项38.4.4 保护目录38.4.5 PCSDemoSite中的安全性38.5 主题38.5.1 把主题套用于页面38.5.2 定义主题38.5.3 PCSDemoSite中的主题38.6 Web Parts38.6.1 Web Parts应用程式组件38.6.2 Web Parts示例38.7 小结第39章 AJAX39.1 Ajax的概念39.2 AJAX39.2.1 核心功能39.2.2 AJAX Control Toolkit39.3 使用AJAX39.3.1 AJAX网站示例39.3.2 支持AJAX的网站配置39.3.3 添加AJAX功能39.3.4 使用AJAX库39.4 小结第40章 Visual Studio Tools for Office40.1 VSTO概述40.1.1 项目类型40.1.2 项目特性40.2 VSTO基础40.2.1 Office对象模型40.2.2 VSTO命名空间40.2.3 主机项和主机控制项40.2.4 基本的VSTO项目结构40.2.5 Globals类40.2.6 事件处理40.3 建立VSTO解决方案40.3.1 管理应用程式级外挂程式40.3.2 与应用程式和文档互动操作40.3.3 UI的定製40.4 示例应用程式40.5 VBA互动操作性40.6 小结第Ⅵ部分 通信第41章 访问Internet41.1 WebClient类41.1.1 下载档案41.1.2 基本的Web客户示例41.1.3 上传档案
41.2 WebRequest类和WebResponse类41.3 把输出结果显示为HTML页面41.3.1 在应用程式中进行简单的Web浏览41.3.2 启动Internet Explorer实例41.3.3 给应用程式提供更多的IE类型特性41.3.4 使用WebBrowser控制项列印41.3.5 显示请求页面的代码41.3.6 WebRequest和WebResponse的层次结构41.4 实用工具类41.4.1 URI41.4.2 IP位址和DNS名称41.5 较低层的协定41.6 小结第42章 Windows Communication Foundation42.1 WCF概述42.1.1 SOAP42.1.2 WSDL42.1.3 JSON42.2 简单的服务和客户42.2.1 服务契约42.2.2 服务的实现42.2.3 WCF服务主机和WCF测试客户机42.2.4 定製服务主机42.2.5 WCF客户程式42.2.6 诊断42.3 契约42.3.1 数据契约42.3.2 版本问题42.3.3 服务契约42.3.4 讯息契约42.4 服务的实现42.5绑定42.6 主机42.6.1 定製主机42.6.2 WAS主机42.7 客户程式42.8 双向通信42.9 小结第43章 Windows Workflow Foundation43.1 Hello World示例43.2 活动43.2.1 IfElseActivity43.2.2 ParallelActivity43.2.3 CallExternalMethodActivity43.2.4 DelayActivity41.2.5 ListenActivity43.2.6 活动的执行模型43.3 定製的活动43.3.1 活动的有效性验证43.3.2 主题和设计器43.3.3 ActivityToolboxItem和图示43.3.4 定製的複合活动43.4 工作流43.4.1 系列工作流43.4.2 状态机工作流43.4.3 给工作流传送参数43.4.4 从工作流中返回结果43.4.5 将参数绑定到活动上43.5 工作流运行库43.6 工作流服务43.6.1 持续服务43.6.2 跟蹤服务43.6.3 定製服务
43.7 与WCF集成43.8 保存工作流43.9 工作流设计器43.10 小结第44章 Enterprise Services44.1 概述44.1.1 Enterprise Services简史44.1.2 使用Enterprise Services的场合44.1.3 环境44.1.4 自动的事务处理44.1.5 分散式事务处理44.1.6 对象池44.1.7 基于角色的安全性44.1.8 排队的组件44.1.9 鬆散藕合的事件44.2 创建简单的COM+应用程式44.2.1 类ServicedComponent44.2.2 标记程式集44.2.3 程式集的属性44.2.4 创建组件44.3 部署44.3.1 自动部署44.3.2 手工部署44.3.3 创建安装软体包44.4 Component Services浏览器44.5 客户应用程式44.6 事务处理44.6.1 事务处理的属性44.6.2 事务处理的结果44.7 示例应用程式44.7.1 实体类44.7.2 OrderControl组件44.7.3 OrderData组件44.7.4 OrderLineData组件44.7.5 客户应用程式44.8 集成WCF和Enterprise Services44.8.1 WCF服务Fa?ade44.8.2 客户程式44.9 小结第45章 讯息伫列45.1 概述45.1.1 使用Message Queuing的场合45.1.2 Message Queuing特性45.2 Message Queuing产品45.3 Message Queuing结构45.3.1 讯息45.3.2 讯息伫列45.4 Message Queuing管理工具45.4.1 创建讯息伫列45.4.2 讯息伫列属性45.5 Message Queuing的编程实现45.5.1 创建讯息伫列45.5.2 查找伫列45.5.3 打开已知的伫列45.5.4 传送讯息45.5.5 接收讯息45.6 课程订单应用程式45.6.1 课程订单类库45.6.2 课程订单讯息传送程式45.6.3 传送优先权和可恢复的讯息45.6.4 课程订单讯息接收程式45.7 接收结果45.7.1 确认伫列45.7.2 回响伫列45.8 事务伫列
45.9 讯息伫列和WCF45.9.1 带数据契约的实体类45.9.2 WCF服务契约45.9.3 WCF讯息接收程式45.9.4 WCF讯息传送程式45.10 讯息伫列的安装45.11 小结第46章 目录服务46.1 Active Directory的体系结构46.1.1 特性46.1.2 Active Directory的概念46.1.3 Active Directory数据的特性46.1.4 模式46.2 Active Directory的管理工具46.2.1 Active Directory Users and Computers工具46.2.2 ADSI Edit工具46.3 Active Directory编程46.3.1 System.DirectoryServices命名空间中的类46.3.2 绑定46.3.3 获取目录项46.3.4 对象集合46.3.5 快取46.3.6 创建新对象46.3.7 更新目录项46.3.8 访问内部的ADSI对象46.3.9 在Active Directory中搜寻46.4 搜寻用户对象46.4.1 用户界面46.4.2 获取模式命名环境46.4.3 获取User类的属性名46.4.4 搜寻用户对象46.5 账户管理46.5.1 显示用户信息46.5.2 创建用户46.5.3 重置密码46.5.4 创建组46.5.5 在组中添加用户46.5.6 查找用户46.6 DSML46.6.1 命名空间System.Directory-Services.Protocols中的类46.6.2 用DSML搜寻Active Directory对象46.7 小结第47章 对等网路47.1 P2P概述47.1.1 客户机-伺服器体系结构47.1.2 P2P体系结构47.1.3 P2P体系结构的挑战47.1.4 P2P术语47.1.5 P2P解决方案47.2 Microsoft Windows Peer-to-Peer Networking47.2.1 Peer Name Resolution Protocol(PNRP)47.2.2 People Near Me47.3 建立P2P应用程式47.3.1 .PeerToPeer47.3.2 .PeerToPeer.Collaboration47.4 小结第48章 Syndication48.1 System.ServiceModel.Syndication命名空间概述48.2 Syndication阅读器
48.3 提供SyndicationFeed48.4 小结第Ⅶ部分 附录附录A Entity Framework附录B C#、Visual Basic和C++/CLI附录C Windows Vista和Windows Server 2008……

序言

对于开发人员来说,把C#语言及其相关环境.NET Framework描述为多年来最重要的新技术一点都不夸张。.NET提供了一种新环境。在这个环境中,可以开发出运行在Windows上的几乎所有应用程式,而C#是专门用于.NET的新程式语言。例如,使用C#可以编写出动态Web页面、XML Web服务、分散式应用程式的组件、资料库访问组件、传统的Windows桌面应用程式,甚或可以在线上/脱机运行的新型智慧型客户应用程式。本书介绍.NET Framework 3.5版。如果读者使用1.0、1.1、2.0或3.0版本编码,本书的一些章节就不适用。本书将标注出只适用于.NETFramework 3.5的新增内容。不要被.NET这个名称所愚弄,这个名称仪强调Microsoft相信分散式应用程式是未来的趋势,即处理过程分布在客户机和伺服器上,但C#不仅仅是编写Internet或与网路相关的应用程式的一种语言,它还提供了一种编写Windows平台上几乎任何类型的软体或组件的方式。另外,C#和.NET都对编写程式的方式进行了革新,更易于实现在Windows上的编程。这是一个相当重要的声明。毕竟,我们都知道计算机技术的发展速度非常快,每年Microsoft都会推出新软体、新的编程工具或Windows的新版本,并宣称这些对开发人员都非常有用,.NET和C#也不例外。.NET和C#的重要性为了理解.NET的重要性,了解一下近10年来出现的许多Windows技术的本质,会有一定的帮助。儘管所有的Windows作业系统在表面上看来完全不同,但从Windows 3.1(1992年)到Windows Seirver 2008,在核心上都有相同的WindowsAPI。在我们转而使用Windows的新版本时,API中增加了非常多的新功能,但这是一个演化和扩展API的过程,并非替换它。开发Windows软体所使用的许多技术和架构也是这样。例如,COM(Component ObjectModel,组件对象模型)是作为OLE(Object Linking and Embedding,对象连结和嵌入)开发出来的。那时,它在很大程度上仅是把不同类型的Office文档连结在一起,所以利用它可以把一个小Excel电子表格放在Word文档中。之后,它逐步演化为COM、DCOM(Dist~"ibuted COM,分散式组件对象模型)和最终的COM+。COM+是一种複杂的技术,它是几乎所有组件通信方式的基础,实现了事务处理、讯息传输服务和对象池。Microsoft选择这条道路的原因非常明显:它关注向后的兼容性。在过去的这些年中,第三方厂商编写了相当多的Windows软体,如果Microsoft每次都引入一项不遵循现有编码规则的新技术,Windows就不会获得今天的成功。
向后兼容性是Windows技术的极其重要的特性,也是Windows平台的一个长处。但它有一个很大的缺点:每次某项技术进行演化增加了新功能后,都会比它以前更複杂。

相关文章

财务经理财务
美乐地
联合国欧洲本部
外来农民工
龙吻0
达卡(孟加拉国首都和第一大城市)

发布评论