C#入门经典
2008-12
清华大学出版社
Karli Watson,Christian Nagel
1010
齐立波,黄静
无
C#是Microsoft在2000年7月推出.NET Framework的第1版时提供的一种全新语言。C#的快速流行,使之成为使用.NET Framework的Windows和Web开发人员无可争议的语言选择。他们喜欢C#的一个原因是其派生于C/C++的简洁语法,这种语法简化了以前困扰一些程序员的问题。尽管做了这些简化,但C#仍保持了C++原来的功能,所以现在没有理由不从C++转向C#。C#语言并不难,也非常适合于学习基本编程技术。易于学习,再加上.NET Framework的功能,使C#成为开始您编程生涯的绝佳方式。C#的最新版本3.0是.NET Framework 3.5的一部分,它建立在已有的成功基础之上,还添加了一些更吸引人的功能。其中一些功能取自于C++(至少从表面上看是这样),而另外一些功能是全新的。Visual Studio的最新版本和开发工具的Express系列也有许多变化和改进,这大大简化了编程,显著提高了效率。本书将全面介绍C#编程的所有知识,从该语言本身一直到Windows和Web编程,再到数据源的使用,最后是一些高级技术,例如,图形编程。我们还将学习Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studio 2008的功能和利用它进行应用程序开发的各种方式。本书界面友好,阐述清晰,每一章都以前面章节的内容为基础,便于读者掌握高级技术。每个概念都会根据需要来介绍和讨论,而不会突然冒出某个技术术语来妨碍读者的阅读和理解。本书尽量不使用技术术语,但如果需要,将根据上下文进行正确的定义和布置。本书的作者都是各自领域的专家,都是C#语言和.NET Framework的爱好者,没有人比他们更有资格讲授C#了,他们将在您掌握从基本规则到高级技术的过程中为您保驾护航。除了基础知识之外,本书还有许多有益的提示、练习、完全成熟的示例代码(可以从p2p.wrox. com上下载),在您的职业生涯中一定会用到它们。本书将毫无保留地传授这些知识,希望读者能通过本书成为最优秀的程序员。0.1 本书读者对象本书主要针对想学习如何使用.NET Framework编写C#程序的所有人。本书前面的章节介绍该语言本身,读者不需要具备任何编程经验。以前对其他语言有一定了解的开发人员,会觉得这些章节的内容非常熟悉。C#语法的许多方面都与其他语言相同,许多结构对所有的编程语言来说都是一样的(例如,循环和分支结构)。但是,即使是有经验的程序员也可以从这些章节中获益,理解这些技术应用于C#的特征。如果读者是编程新手,就应从头开始学习。如果读者对.NET Framework比较陌生,但知道如何编程,就应阅读第1章,然后快速跳读后面的几章,这样就能掌握C#语言的应用方式了。如果读者知道如何编程,但以前没有接触过面向对象的编程语言,就应从第8章开始阅读以后的章节。如果读者对C#语言比较了解,就可以集中精力学习详细论述最新.NET Framework和C#语言开发的章节,尤其是集合、泛型和C# 3.0语言的新增内容(第11~14章),或者完全跳过本书的第I部分,从第15章开始学习。本书章节的编写目的有两个:这些章节可以按顺序阅读,是C#语言的一个完整教程。还可以按照需要深入学习这些章节,将其作为一本参考资料。除了核心内容之外,每一章还包含一组练习,完成这些练习有助于读者理解所学习的内容。练习包括简单的选择题、判断题以及需要修改或建立应用程序的较难问题。练习的答案在www.wrox.com的本书Web页面上在线提供。0.2 本书结构本书分为6个部分。● 引言:概述本书的内容和作者。● C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。● Windows编程:介绍如何用C#编写Windows应用程序,如何部署它们。● Web编程:描述Web应用程序的开发、Web服务和Web应用程序的部署。● 数据访问:介绍在应用程序中如何使用数据,包括存储在硬盘文件上的数据、以XML格式存储的数据和数据库中的数据。● 其他技术:讲述使用C#和.NET Framework的一些额外方式,包括属性、XML文档说明、网络和GDI+图形编程。还探讨了由.NET 3.0引入且由.NET 3.5改进的WPF、WCF和WF技术。下面介绍本书5个重要部分中的章节。0.2.1 C#语言(第1~~14章)第1章介绍C#以及它与.NET的关系,了解在这个环境下编程的基础知识,以及Visual C# Express(VCE)和VS与它的关系。第2章开始介绍C#应用程序开发,学习C#的语法,并把C#和样例命令行、Windows应用程序结合起来使用。这些示例将说明C#如何快速轻松地启动和运行,并附带介绍VCE和VS开发环境以及本书将使用的基本窗口和工具。接着,第3章学习C#语言的更多基础知识,理解变量的含义以及如何操纵它们。第4章将用流程控制(循环和分支)改进应用程序的结构,第5章介绍一些高级的变量类型,如数组。第6章开始以函数的形式封装代码,这样就更易于执行重复的操作,代码更容易理解。从第7章开始将运用C#语言的基础知识,调试应用程序,这包括在运行应用程序时输出跟踪信息,使用VS查找错误,在强大的调试环境中找出解决问题的办法。第8章将学习面向对象编程(Object-Oriented Programming,OOP)。首先了解这个术语的含义,回答"什么是对象?"。这个OOP初看起来是比较难的问题。我们将用整整一章的篇幅来介绍它,解释对象的强大之处。直到本章的最后才会使用C#代码。第9章将理论应用于实践,开始在C#应用程序中使用OOP时,一切都会发生变化,而这正是C#的强大之处。第10章首先介绍如何定义类和接口,然后探讨类成员(包括字段、属性和方法),在这一章的最后将开始创建一个扑克牌游戏应用程序,这个应用程序将在几章中开发完成,它非常有助于理解OOP。学习了OOP在C#中的工作原理后,第11章将介绍几种常见的OOP场景,包括处理对象集合、比较和转换对象。第12章讨论.NET 2.0中C#的一个非常有用的新特性——泛型,利用它可以创建非常灵活的类。第13章通过一些其他技术和事件(它在Windows编程中非常重要)完成C#语言和OOP的讨论。最后,第14章介绍C# 3.0中引入的新特性。0.2.2 Windows编程(第15~~18章)第15章开始介绍Windows编程的概念,理解在VCE和VS中如何实现Windows编程。这一章也是从基础知识开始介绍,并构建知识体系。第16章学习如何在应用程序中使用.NET Framework提供的各种控件。我们将简要论述.NET如何以图形化的方式建立Windows应用程序,以最少的时间和精力创建高级应用程序。第17章介绍一些常用的功能。利用这些功能可以方便地添加专业功能,例如,文件管理、打印等。第18章讨论应用程序的部署,包括建立安装程序,以便用户快速安装和运行应用程序。0.2.3 Web编程(第19~~23章)这个部分的结构与Windows编程部分类似。首先,第19章描述了构成最简单的Web应用程序的控件,如何把它们组合在一起,让它们使用ASP.NET执行任务。第20章以此为基础,介绍了更高级的技术、各种控件、Web环境下的状态管理,以及Web标准的遵循。第21章将涉足Web服务的精彩世界,它可以编程访问Internet上的信息和功能,可以把复杂的数据和功能以独立于平台的方式嵌入Web和Windows应用程序。这一章讨论如何使用和创建Web服务,以及.NET提供的其他工具,如安全性。 第22章介绍Ajax编程,这种方式可以给Web应用程序添加动态的客户端功能。.NET Framework 3.5通过ASP.NET Ajax提供了Ajax功能,本章会解释如何使用它。最后,第23章探讨Web应用程序和服务的部署,尤其是可以通过单击按钮把应用程序发布到Web上的VS和VWD新特性。0.2.4 数据访问(第24~~29章) 第24章介绍了应用程序如何保存和检索磁盘上的数据,作为简单的文本文件或者更复杂的数据表示方式。这一章还将讨论如何压缩数据,如何操纵旧数据(例如,用逗号隔开的值(CSV)文件),如何监视和处理文件系统的变化。第25章学习数据交换的事实标准XML。前面的章节接触过XML几次,而这一章将了解XML的基本规则,论述XML的所有功能。本部分的其余章节介绍LINQ,这是内置于.NET Framework最新版本中的查询语言。第26章简要介绍LINQ,第27章使用LINQ访问数据库中的数据。第28章介绍如何联合使用LINQ和旧的ADO.NET 数据访问技术。最后,第29章学习如何使用LINQ处理XML数据。0.2.5 其他技术(第30~~36章)本书的最后一部分将介绍C#和.NET主题的其他技术。第30章将探讨属性,可以在程序集中包含类型的其他信息,添加用其他方式很难实现的功能。第31章研究XML文档说明,并介绍如何在源代码中给应用程序添加注释。我们将学习如何添加这些信息,如何使用和提取它们,从而从代码中生成MSDN样式的文档说明。第32章介绍网络,应用程序如何相互通信,如何与各种网络上的其他服务通信。第33章从本书前面学习的各种技术中解脱出来,研究用GDI+进行图形编程的主题,理解如何操纵图形,设定应用程序的样式,这一章打开了一条通往各种C#应用程序的大门。最后要讨论.NET Framework最新版本中的几个新技术。第34章介绍Windows Presentation Foundation(WPF),了解它给Windows和Web开发带来了哪些变化。第35章介绍Windows Communication Foundation(WCF),它把Web服务的概念扩展和改进为一种企业级的通信技术。本书的最后一章是第36章,介绍了Windows Workflow Foundation(WF),它允许在应用程序中执行工作流功能,因此可以定义一些操作,这些操作由外部的交互操作控制,以特定的顺序执行,这对许多类型的应用程序都很有帮助。0.3 使用本书的要求本书中C#和.NET Framework的代码和描述都适用于.NET 3.5。除了Framework之外,不需要其他东西就可以理解本书的这个方面,但许多示例都需要Visual C# Express 2008作为主要开发工具,一些章节则使用了Visual Web Developer Express 2008。另外,一些功能只能在Visual Studio 2008中使用,这会在相应的地方明确指出。0.4 源代码在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk.com.cn/downpage上下载。登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有的源代码。注释: 由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-0-470-19135-4。在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。0.5 勘误表尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。请给wkservice@vip.163.com发电子邮件,我们就会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。0.6 P2P.WROX.COM要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1) 进入p2p.wrox.com,单击Register链接。(2) 阅读使用协议,并单击Agree按扭。(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按扭。(4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。注释:不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。
通过C#可以很容易地学习.NET Framework 3.5的强大功能,所以C#是开始您编程生涯的绝佳方式。本书全面阐述了C#编程的所有方面,包括C#语言本身、Windows编程、Web编程及数据源的使用等内容。 学习了新的编程技巧后,《C#入门经典(第4版)》介绍了如何高效地部署应用程序和服务,论述了许多高级技术,如图形化编程。另外,还探讨了如何使用Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studi0 2008的功能。所有这些内容都已更新,以反映.NET Framework 3.5和Visual Studi0 2008的变化。各章的样例代码和示例还可以用于创建强大且安全的应用程序。 《C#入门经典(第4版)》语言简练,条理清晰,涵盖了Visual C#2008和.NET Framework 3.5的全部内容。通过学习本书,您将能够快速入门,轻松开发出自己的应用程序。 《C#入门经典(第4版)》主要内容:C#的所有基础知识和面向对象编程;通过C#语言编写和部署Windows应用程序;开发定制的Web应用程序和利用Web服务的技巧;数据访问技术,包括使用LINQ处理XML数据;通过单击按钮将应用程序发布到Web上;使用Windows Presentation Foundation、Windows Workflow Foundation、WindoWS Communication Foundation、GDI+和联网等其他技术。 《C#入门经典(第4版)》适合于想学习使用.NET Framework编写C#程序的读者,也适合于己了解.NET,又想学习.NET 3.5或Visual Studio 2008最新功能的读者。
作者:(美国)karli Watson (美国)Christian Nagel 译者:齐立波 黄静齐立波,计算机专业硕士、大学讲师,一直从事C/C++和C#程序设计方面的教学与科研工作,曾参与编写多本计算机教材,并为一些软件公司翻译过大量的技术文档。黄静,计算机专业博士,在程序设计、软件工程和网络安全等方面有着多年的研究和实战经验,曾为NET技术在国内的推广作出了重要贡献,翻译和发表了多篇有关.NET的技术文档和文章。
第Ⅰ部分 C# 语 言第1章 C#简介 31.1 什么是.NET Framework 31.1.1 NET Framework的内容 41.1.2 用.NET Framework编写应用程序 41.2 什么是C# 71.2.1 用C#能编写什么样的应用程序 71.2.2 本书中的C# 81.3 Visual Studio 2008 81.3.1 Visual Studio 2008 Express 产品 91.3.2 解决方案 91.4 小结 9第2章 编写C#程序 102.1 开发环境 102.1.1 Visual Studio 2008 112.1.2 Visual C# 2008 ExpressEdition 132.2 控制台应用程序 132.2.1 Solution Explorer 162.2.2 Properties窗口 172.2.3 Error List窗口 172.3 Windows Forms应用程序 182.4 小结 22第3章 变量和表达式 233.1 C#的基本语法 233.2 C#控制台应用程序的基本结构 253.3 变量 273.3.1 简单类型 273.3.2 变量的命名 313.3.3 字面值 323.3.4 变量的声明和赋值 333.4 表达式 343.4.1 数学运算符 343.4.2 赋值运算符 383.4.3 运算符的优先级 393.4.4 名称空间 393.5 小结 423.6 练习 43第4章 流程控制 444.1 布尔逻辑 444.1.1 位运算符 464.1.2 布尔赋值运算符 504.1.3 运算符的优先级更新 514.2 goto语句 524.3 分支 534.3.1 三元运算符 534.3.2 if语句 544.3.3 switch语句 574.4 循环 604.4.1 do循环 614.4.2 while循环 634.4.3 for循环 654.4.4 循环的中断 694.4.5 无限循环 704.5 小结 704.6 练习 71第5章 变量的更多内容 725.1 类型转换 725.1.1 隐式转换 725.1.2 显式转换 745.1.3 使用Convert命令进行 显式转换 765.2 复杂的变量类型 795.2.1 枚举 795.2.2 结构 835.2.3 数组 865.3 字符串的处理 915.4 小结 955.5 练习 96第6章 函数 976.1 定义和使用函数 986.1.1 返回值 996.1.2 参数 1016.2 变量的作用域 1076.2.1 其他结构中变量的作用域 1106.2.2 参数和返回值与全局数据 1116.3 Main()函数 1136.4 结构函数 1146.5 函数的重载 1156.6 委托 1176.7 小结 1196.8 练习 120第7章 调试和错误处理 1217.1 VS和VCE中的调试 1217.1.1 非中断(正常)模式下的调试 1227.1.2 中断模式下的调试 1317.2 错误处理 1397.2.1 try...catch...finally 1407.2.2 列出和配置异常 1447.2.3 异常处理的注意事项 1457.3 小结 1467.4 练习 146第8章 面向对象编程简介 1478.1 什么是面向对象编程 1478.1.1 什么是对象 1488.1.2 所有的东西都是对象 1518.1.3 对象的生命周期 1518.1.4 静态和实例类成员 1528.2 OOP技术 1538.2.1 接口 1538.2.2 继承 1558.2.3 多态性 1568.2.4 对象之间的关系 1578.2.5 运算符重载 1598.2.6 事件 1598.2.7 引用类型和值类型 1608.3 Windows应用程序中的OOP 1608.4 小结 1628.5 练习 163第9章 定义类 1649.1 C#中的类定义 1649.2 System.Object 1699.3 构造函数和析构函数 1709.4 VS和VCE中的OOP工具 1749.4.1 Class View窗口 1749.4.2 对象浏览器 1769.4.3 添加类 1779.4.4 类图 1779.5 类库项目 1799.6 接口和抽象类 1829.7 结构类型 1849.8 小结 1869.9 练习 186第10章 定义类成员 18710.1 成员定义 18710.1.1 定义字段 18710.1.2 定义方法 18810.1.3 定义属性 18910.1.4 在类图中添加成员 19410.1.5 重制成员 19610.1.6 自动属性 19710.2 类成员的其他议题 19710.2.1 隐藏基类方法 19810.2.2 调用重写或隐藏的基类方法 19910.2.3 嵌套的类型定义 20010.3 接口的实现 20110.4 部分类定义 20410.5 部分方法定义 20610.6 示例应用程序 20710.6.1 规划应用程序 20710.6.2 编写类库 20810.6.3 类库的客户应用程序 21410.7 小结 21510.8 练习 216第11章 集合、比较和转换 21711.1 集合 21711.1.1 使用集合 21811.1.2 定义集合 22411.1.3 索引符 22511.1.4 给CardLib添加Cards集合 22711.1.5 关键字值集合和IDictionary 22911.1.6 迭代器 23111.1.7 深度复制 23611.1.8 给CardLib添加深度复制 23811.2 比较 23911.2.1 类型比较 24011.2.2 值比较 24411.3 转换 25911.3.1 重载转换运算符 25911.3.2 as运算符 26011.4 小结 26111.5 练习 262第12章 泛型 26312.1 泛型的概念 26312.2 使用泛型 26412.2.1 可空类型 26412.2.2 System.Collections.Generic 名称空间 27112.3 定义泛型 27912.3.1 定义泛型类 28012.3.2 定义泛型接口 29112.3.3 定义泛型方法 29112.3.4 定义泛型委托 29312.4 小结 29312.5 练习 293第13章 其他OOP技术 29513.1 ::运算符和全局名称空间13.2 定制异常 29613.2.1 异常基类 29713.2.2 给CardLib添加定制异常 29713.3 事件 29813.3.1 什么是事件 29813.3.2 使用事件 30013.3.3 定义事件 30213.4 扩展和使用CardLib 30913.5 小结 31713.6 练习 317第14章 C# 3.0语言的改进 31814.1 初始化器 31814.1.1 对象初始化器 31914.1.2 集合初始化器 32014.2 类型推断 32314.3 匿名类型 32514.4 扩展方法 32814.5 ?表达式 33314.5.1 复习匿名方法 33314.5.2 把?表达式用于匿名方法 33414.5.3 ?表达式的参数 33714.5.4 ?表达式的语句体 33714.5.5 ?表达式用作委托和表达式树 33814.5.6 ?表达式和集合 33914.6 小结 34214.7 练习 342第Ⅱ部分 Windows 编 程第15章 Windows编程基础 34715.1 控件 34715.1.1 属性 34815.1.2 控件的定位、停靠和对齐 34915.1.3 事件 35015.2 Button控件 35215.2.1 Button控件的属性 35215.2.2 Button控件的事件 35315.3 Label和LinkLabel控件 35415.4 TextBox控件 35515.4.1 TextBox控件的属性 35515.4.2 TextBox控件的事件 35615.5 RadioButton和CheckBox控件 36315.5.1 RadioButton控件的属性 36415.5.2 RadioButton控件的事件 36415.5.3 CheckBox控件的属性 36415.5.4 CheckBox控件的事件 36415.5.5 GroupBox控件 36515.6 RichTextBox控件 36815.6.1 RichTextBox控件的属性 36815.6.2 RichTextBox控件的事件 36915.7 ListBox和CheckedListBox控件 37415.7.1 ListBox控件的属性 37515.7.2 ListBox控件的方法 37615.7.3 ListBox控件的事件 37615.8 ListView控件 37815.8.1 ListView控件的属性 37815.8.2 ListView控件的方法 38015.8.3 ListView控件的事件 38115.8.4 ListViewItem 38115.8.5 ColumnHeader 38115.8.6 ImageList控件 38115.9 TabControl控件 38815.9.1 TabControl控件的属性 38915.9.2 使用TabControl控件 38915.10 小结 39215.11 练习 392第16章 Windows Forms的高级功能 39316.1 菜单和工具栏 39316.1.1 两个实质一样的控件 39316.1.2 使用MenuStrip控件 39416.1.3 手工创建菜单 39416.1.4 ToolStripMenuItem控件的其他属性 39716.1.5 给菜单添加功能 39716.2 工具栏 39916.2.1 ToolStrip控件的属性 39916.2.2 ToolStrip的项 40016.2.3 StatusStrip控件 40516.2.4 StatusStripStatusLabel的属性 40516.3 SDI和MDI应用程序 40716.4 创建控件 41516.4.1 LabelTextbox控件 41716.4.2 调试用户控件 42016.4.3 扩展LabelTextbox控件 42116.5 小结 42416.6 练习 424第17章 使用通用对话框 42517.1 通用对话框 42517.2 如何使用对话框 42617.3 文件对话框 42717.3.1 OpenFileDialog 42717.3.2 SaveFileDialog 43817.4 打印 44217.4.1 打印结构 44217.4.2 打印多个页面 44717.4.3 PageSetupDialog 44917.4.4 PrintDialog 45117.5 打印预览 45517.5.1 PrintPreviewDialog 45517.5.2 PrintPreviewControl 45617.6 FontDialog和ColorDialog 45717.6.1 FontDialog 45717.6.2 ColorDialog 45917.6.3 FolderBrowserDialog 46017.7 小结 46117.8 练习 461第18章 部署Windows应用程序 46318.1 部署概述 46318.2 ClickOnce部署 46418.3 Visual Studio安装和部署项目类型 47318.4 Microsoft Windows安装程序结构 47418.4.1 Windows Installer术语 47418.4.2 Windows Installer的优点 47618.5 为SimpleEditor创建安装软件包 47618.5.1 规划安装内容 47618.5.2 创建项目 47718.5.3 项目属性 47818.5.4 安装编辑器 48018.5.5 File System编辑器 48118.5.6 File Types编辑器 48318.5.7 Launch Condition编辑器 48518.5.8 User Interface编辑器 48518.6 构建项目 48818.7 安装 48918.7.1 Welcome 48918.7.2 Read Me 48918.7.3 License Agreement 49018.7.4 Optional Files 49018.7.5 选择安装文件夹 49118.7.6 确认安装 49218.7.7 进度 49218.7.8 结束安装 49318.7.9 运行应用程序 49318.7.10 卸载 49318.8 小结 49318.9 练习 494第Ⅲ部分 Web 编 程第19章 Web编程基础 49719.1 概述 49719.2 ASP.NET运行库 49819.3 创建简单的Web页面 49819.4 服务器控件 50419.5 事件处理程序 50519.6 输入的有效性验证 50919.7 状态管理 51219.7.1 客户端的状态管理 51319.7.2 服务器端的状态管理 51519.8 身份验证和授权 51719.8.1 身份验证的配置 51819.8.2 使用安全控件 52219.9 读写SQL Server数据库 52419.10 小结 53019.11 练习 531第20章 Web高级编程 53220.1 母版页 53220.2 站点导航 53720.3 用户控件 53920.4 个性化配置 54120.4.1 个性化配置组 54320.4.2 组件的个性化配置 54320.4.3 定制数据类型中的个性化配置 54320.4.4匿名用户的个性化配置 54420.5 Web Parts 54520.5.1 WebPartManager控件 54620.5.2 WebPartZone控件 54620.5.3 EditorZone控件 54820.5.4 CatalogZone控件 55020.5.5 ConnectionsZone控件 55120.6 JavaScript 55420.6.1 Script元素 55520.6.2 变量的声明 55520.6.3 定义函数 55520.6.4 语句 55620.6.5 对象 55620.7 小结 56020.8 练习 560第21章 Web服务 56121.1 Web服务推出之前 56121.1.1 远程过程调用(RPC) 56221.1.2 SOAP 56321.2 使用Web服务的场合 56321.2.1 宾馆旅行社代理应用程序 56421.2.2 图书发布应用程序 56421.2.3 客户应用程序的类型 56421.2.4 应用程序的体系结构 56421.3 Web服务的体系结构 56521.3.1 可以调用的方法 56521.3.2 调用方法 56621.3.3 SOAP和防火墙 56721.3.4 WS-I基本个性化配置 56821.4 Web服务和.NET Framework 56821.4.1 创建Web服务 56821.4.2 客户程序 57021.5 创建简单的ASP.NET Web服务 57121.6 测试Web服务 57221.7 执行Windows客户程序 57421.8 异步调用服务 57721.9 执行ASP.NET客户程序 58021.10 传送数据 58121.11 小结 58421.12 练习 584第22章 Ajax编程 58622.1 Ajax概述 58622.2 UpdatePanel控件 58722.3 Timer控件 59122.4 UpdateProgress控件 59222.5 Web服务 59422.6 扩展控件 59822.7 小结 60022.8 练习 600第23章 部署Web应用程序 60123.1 Internet Information Services 60123.2 IIS配置 60223.3 复制Web站点 60423.4 发布Web站点 60623.5 Windows安装程序 60723.5.1 创建安装程序 60723.5.2 安装Web 应用程序 60923.6 小结 61023.7 练习 610第Ⅳ部分 数 据 访 问第24章 文件系统数据 61324.1 流 61324.2 用于输入和输出的类 61424.2.1 File类和Directory类 61524.2.2 FileInfo类 61624.2.3 DirectoryInfo类 61724.2.4 路径名和相对路径 61824.2.5 FileStream对象 61824.2.6 StreamWriter对象 62424.2.7 StreamReader对象 62624.2.8 读写压缩文件 63224.3 序列化对象 63524.4 监控文件结构 63924.5 小结 64524.6 练习 646第25章 XML 64725.1 XML文档 64725.1.1 XML元素 64725.1.2 属性 64825.1.3 XML声明 64925.1.4 XML文档的结构 64925.1.5 XML名称空间 65025.1.6 格式良好并有效的XML 65125.1.7 验证XML文档 65125.2 在应用程序中使用XML 65425.2.1 XML文档对象模型 65525.2.2 选择节点 66325.3 小结 67025.4 练习 671第26章 LINQ简介 67226.1 LINQ的变体 67326.2 第一个LINQ查询 67326.2.1 用var关键字声明结果变量 67526.2.2 指定数据源:from子句 67526.2.3 指定条件:where子句 67526.2.4 指定元素:select子句 67626.2.5 完成:使用foreach循环 67626.2.6 延迟执行的查询 67626.3使用LINQ方法语法和?表达式 67626.3.1 LINQ扩展方法 67626.3.2 查询语法和方法语法 67726.3.3 ?表达式 67726.4 排序查询结果 67926.5 orderby子句 68026.6 用方法语法排序 68126.7 查询大型数据集 68226.8 合计运算符 68526.9 查询复杂的对象 68826.10 投射:在查询中创建新对象 69126.11 投射:方法语法 69326.12 单值选择查询 69326.13 Any和All 69426.14 多级排序 69626.15 多级排序方法语法:ThenBy 69826.16 组合查询 69826.17 Take和Skip 70026.18 First和FirstOrDefault 70226.19 集运算符 70326.20 Join查询 70626.21 资源和进一步阅读 70726.22 小结 70726.23 练习 707第27章 LINQ to SQL 70927.1 对象相关映射 70927.2 安装SQL Server和Northwind示例数据 71027.2.1 安装SQL Server Express2005 71027.2.2 安装Northwind示例数据库 71127.3 第一个LINQ to SQL查询 71227.4 浏览LINQ to SQL关系 71727.5 进一步探讨LINQ to SQL 72027.6 LINQ to SQL中的组合、排序和其他高级查询 72327.7 显示生成的SQL 72527.8 用LINQ to SQL绑定数据 72927.9 用LINQ to SQL更新绑定数据 73327.10 小结 73427.11 练习 735第28章 ADO.NET和LINQ over DataSet 73628.1 ADO.NET概述 73628.1.1 ADO.NET名称的来源 73728.1.2 ADO.NET的设计目标 73828.2 ADO.NET类和对象概述 73928.2.1 提供者对象 73928.2.2 用户对象 74028.2.3 使用System.Data名称空间 74128.3 用DataReader读取数据 74228.4 用DataSet读取数据 74928.4.1 用数据填充DataSet 74928.4.2 访问DataSet中的表、行和列 74928.5 更新数据库 75228.5.1 给数据库添加行 75528.5.2 删除行 76128.6 在DataSet中访问多个表 76228.6.1 ADO.NET中的关系 76228.6.2 用关系导航 76328.7 XML和ADO.NET 77028.8 ADO.NET中的SQL支持 77328.8.1 DataAdapter对象中的 SQL命令 77328.8.2 直接执行SQL命令 77628.8.3 调用SQL存储过程 77828.9 使用LINQ over DataSet和ADO.NET 78028.10 小结 78428.11 练习 784第29章 LINQ to XML 78529.1 LINQ to XML函数构造方法 78529.2 保存和加载XML文档 78929.2.1 从字符串中加载XML 79129.2.2 已保存的XML文档内容 79229.3 处理XML片段 79229.4 通过LINQ to XML生成 XML 79429.5 查询XML文档 79829.6 小结 80429.7 练习 804第Ⅴ部分 其 他 技 术第30章 属性 80930.1 什么是属性 80930.2 反射 81230.3 内置属性 81530.3.1 System.Diagnostics.ConditionalAttribute 81530.3.2 System.Obsolete Attribute 81730.3.3 System.SerializableAttribute 81830.3.4 System.Reflection.AssemblyDelaySignAttribute 82130.4 定制属性 82430.4.1 BugFixAttribute 82430.4.2 System.AttributeUsageAttribute 82630.5 小结 830第31章 XML文档说明 83131.1 添加XML文档说明 83131.1.1 XML文档说明的注释 83331.1.2 使用类图添加XML文档说明 83931.1.3 生成XML文档说明文件 84231.1.4 带有XML文档说明的应用程序示例 84431.2 使用XML文档说明 84631.2.1 编程处理XML文档说明 84631.2.2 用XSLT格式化XML文档说明 84831.2.3 文档说明工具 84931.3 小结 85031.4 练习 851第32章 网络 85232.1 联网概述 85232.1.1 名称的解析 85532.1.2 统一资源标识符 85632.1.3 TCP和UDP 85732.1.4 应用协议 85732.2 网络编程选项 85932.3 WebClient 85932.4 WebRequest和WebResponse 86132.5 TcpListener和TcpClient 86832.6 小结 87632.7 练习 876第33章 GDI+简介 87733.1 图形绘制概述 87733.1.1 Graphics类 87833.1.2 对象的删除 87833.1.3 坐标系统 87933.1.4 颜色 88433.2 使用Pen类绘制线条 88533.3 使用Brush类绘制图形 88733.4 使用Font 类绘制文本 89033.5 使用图像进行绘制 89333.5.1 使用纹理画笔绘图 89533.5.2 使用钢笔绘制图像 89733.5.3 双倍缓冲 89833.6 GDI+的高级功能 90033.6.1 剪切 90033.6.2 System.Drawing.Drawing2D 90133.6.3 System.Drawing.Imaging 90133.7 小结 90133.8 练习 902第 34 章 Windows Presentation Foundation 90334.1 WPF的概念 90434.1.1 WPF给设计人员带来的好处 90434.1.2 WPF给C#开发人员带来的好处 90634.2 基本WPF应用程序的组成 90634.3 WPF基础 91634.3.1 XAML语法 91734.3.2 桌面和Web应用程序 91934.3.3 Application对象 92034.3.4 控件基 92034.3.5 控件的布局 92834.3.6 控件的样式 93634.3.7 触发器 94134.3.8 动画 94234.3.9 静态和动态资源 94434.4 用WPF编程 94934.4.1 WPF用户控件 95034.4.2 实现依赖属性 95034.5 小结 95934.6 练习 960第35 章 Windows Communication Foundation 96135.1 WCF是什么 96135.2 WCF概念 96235.2.1 WCF通信协议 96235.2.2 地址、端点和绑定 96335.2.3 合同 96435.2.4 消息模式 96535.2.5 行为 96535.2.6 主机 96535.3 WCF编程 96635.3.1 定义WCF服务合同 97335.3.2 自存储的WCF服务 97935.4 小结 98535.5 练习 986第36章 Windows Workflow Foundation 98736.1 活动 99036.1.1 DelayActivity 99036.1.2 SuspendActivity 99136.1.3 WhileActivity 99236.1.4 SequenceActivity 99436.1.5 定制活动 99736.2 工作流运行库 100236.3 数据绑 100736.4 小结 1010
插图:
《C#入门经典(第4版)》是一本成就无数C#程序员的经典名著,厚而不“重”,可帮助您轻松掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程序员首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程序员》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET 3.5 继续完善原有内容,同时全面介绍.NET的最新技术和特性。源代码下载http://www.wrox.comhttp://www.tupwk.com.cn/downpageWrox畅销书!C#经典名著!2005年最杈威的十大IT图书!2 006年最受读者喜爱的十大技术开发类图书!2008年全国高校出版社优秀销书一等奖!2006~2008年最畅销的 C#入门教程!
无
感覺這本書買對了,每個知識點都講得很細,很基礎,我喜歡,可以當然工具書來使用
已经是第四版了,但是翻译的质量依旧糟糕。——一些糟糕的翻译,和难以理解的表达,完全继承了前个版本。而且有较多错误,校对审核似乎不怎么负责。——几乎都是翻译者在重新排版或者因为偷懒而造成的,有时这些错误会造成读者不必要的困惑。内容很详尽,给于初学者很好的循序渐进的教导。章节分的也相当的细致合理,可以很快搜索到你感兴趣的内容。
这本书是经典,一直在看电子版的,最近才下决心买的。。感觉学会不少东西。。入门的好书,。
的确不错,很详细又易懂,推荐所有对c#感兴趣的人
书是好书,就是翻译的太烂,不符合中国人习惯,读起来很难受译者显然是在玩文字游戏
卓越送的是水浸过的书,后来换了。书不适合初学者
书的质量还行,刚拿到很开心毕竟看起来肯定是正品、物有所值但是反过来一看背面发现被利物划伤了一个大口子,封皮和破了,里面也破了几页仔细看了一下快递的包装,完好无损,所以非常确定是你们给我发了本不完美的书因为用的比较急,就不退换货了希望你们以后不要这么干,毕竟一本书不少钱,谁拿到这样的书都不痛快
但是翻译的很糟糕
书是不错,就是翻译不符合中国人的习惯。
大部头的专业书需要耐心,还需要一点基础,更需要实践
没的说,C#入门的经典之作,只是书有点小厚,一般人可能会被吓到了,同时作为手边的参考也不错,这本书是需要仔细并且反复研读的,上面的很多理论对后期编程实际应用都有很好的知道。
大学里入门c#的书,还不错,童鞋们可以看看
书本材质好得不用说了,内容各种详细,学习c#不可少的一本好书。
P506中的firstName,lastName应为firstname,lastname。还有上面的dropDownListEvents应该为dropDownListEvent,拿到开发环境试就知道了还有P507的stringemail应为string email还有一点疑问:P507中的这句代码:... 阅读更多
太厚了,到现在还没有看完呢
当参考书,不会了看看,挺不错
对我们新手来说,实用!
书写得不错,但翻译不行,有些看不懂,大概是自己水平不高。
还行吧,就是封面貌似有很多不太清晰地划痕。内容挺多的,开始学习了