C#是Microsoft在2000年7月推出.NET Framework的第1版时提供的一种全新语言。C#迅速流行开来,成为使用.NET Framework的Windows和Web开发人员无可争议的选择。他们喜欢C#的一个原因是其派生于C/C++的简洁明了的语法,这种语法简化了以前一些给程序员带来困扰的问题。尽管做了这些简化,但C#仍保持了C++原有的功能,所以现在没有理由不从C++转向C#。C#语言并不难,也非常适合于学习基本编程技术。易于学习,再加上.NET Framework的功能,使C#成为开始您编程生涯的绝佳方式。 C#的最新版本C# 4是.NET Framework 4的一部分,它建立在已有的成功基础之上,还添加了一些更吸引人的功能。Visual Studio的最新版本Visual Studio 2010和开发工具的Express系列(包括Visual C# 2010 Express)也有许多变化和改进,这大大简化了编程工作,显著提高了效率。 本书将全面介绍C#编程的所有知识,从该语言本身一直到Windows和Web编程,再到数据源的使用,最后是一些新的高级技术。我们还将学习Visual C# 2010 Express、Visual Web Developer 2010 Express和Visual Studio 2010的功能和利用它进行应用程序开发的各种方式。 本书文笔优美流畅,阐述清晰,每一章都以前面章节的内容为基础,便于读者掌握高级技术。每个概念都会根据需要来介绍和讨论,而不会突然冒出某个技术术语来妨碍读者的阅读和理解。本书尽量减少使用的技术术语数量,但如果需要,将根据上下文进行正确的定义和布置。 本书的作者都是各自领域的专家,都是C#语言和.NET Framework的爱好者,没有人比他们更有资格讲授C#了,他们将在您掌握从基本规则到高级技术的过程中为您保驾护航。除了基础知识之外,本书还有许多有益的提示、练习、完全成熟的示例代码(可以从p2p.wrox. com上下载),在您的职业生涯中一定会反复用到它们。 本书将毫无保留地传授这些知识,希望读者能通过阅读本书成长为最优秀的程序员。 0.1 本书读者对象 本书主要针对想学习如何使用.NET Framework编写C#程序的所有人。本书前面的章节介绍该语言本身,读者不需要具备任何编程经验。以前对其他语言有一定了解的开发人员,会觉得这些章节的内容非常熟悉。C#语法的许多方面都与其他语言相同,许多结构对所有的编程语言来说都是相通的(例如,循环和分支结构)。但是,即使是有经验的程序员也可以从这些章节中获益,理解这些技术应用于C#的特征。 如果读者是编程新手,就应从头开始学习。如果读者对.NET Framework比较陌生,但知道如何编程,就应阅读第1章,然后快速跳读后面几章,这样就能掌握C#语言的应用方式了。如果读者知道如何编程,但以前从未接触过面向对象的编程语言,就应从第8章开始阅读以后的章节。 如果读者对C#语言比较了解,就可以集中精力学习详细论述最新.NET Framework和C#语言开发的章节,尤其是集合、泛型和C# 4语言的新增内容(第11~14章),或者完全跳过本书的第I部分,从第15章开始学习。 本书章节的编排方式可以达到两个目的:可以按顺序阅读这些章节,将其视为C#语言的一个完整教程。还可以按照需要深入学习这些章节,将其作为一本参考资料。 除了核心内容之外,从第3章开始,每章末尾还包含一组练习,完成这些练习有助于读者理解所学的内容。练习包括简单的选择题、判断题以及需要修改或建立应用程序的较难问题。练习答案在的本书Web页面上和http://www.tupwk.com.cn联机提供。 0.2 本版的新内容 本书特别注重与C# 4、.NET 4的一致性。每一章都进行了彻底的检查,删除了不太相关的内容,增加了新材料。所有代码都在最新版本的开发工具上进行了测试,所有屏幕图都在Windows 7上重新截取,以提供最新的窗口和对话框。 尽管我们不喜欢承认失误,但还是修订了前几版中的错误,处理了许多其他的读者评论。我们希望不要出现太多的新错误,但一旦发现了错误,我们的Web专家就会联机修改它们。 本版本的亮点包括: ●增加并改进了代码示例。 ●涵盖C# 4的所有新内容,包括简单的语言改进,例如方法的命名参数和可选参数,还包括高级技术,例如泛型类型中的变体。 ●十分合理地介绍高级技术,重点是适合于新手、较易理解的内容。 0.3 本书结构 本书分为6个部分。 ●前言:概述本书的内容。 ●C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,一应俱全。 ●Windows编程:介绍如何用C#编写Windows应用程序,如何部署它们。 ●Web编程:描述Web应用程序的开发、Web服务和Web应用程序的部署。 ●数据访问:介绍如何在应用程序中使用数据,包括存储在硬盘文件上的数据、以XML格式存储的数据和数据库中的数据。 ●其他技术:讲述使用C#和.NET Framework的一些额外方式,包括由.NET 3.0引入然后经.NET 4改进的WPF、WCF和WF技术。 下面介绍本书5个重要部分中的章节。 0.3.1 C#语言(第1~14章) 第1章介绍C#及其与.NET的关系,了解在这个环境下编程的基础知识,以及Visual C# 2010 Express(VCE)和Visual Studio 2010(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和4中引入的新特性。 0.3.2 Windows编程(第15~17章) 第15章开始介绍Windows编程的概念,理解在VCE和VS中如何实现Windows编程。这一章也是从基础知识开始介绍,并在本章和第16章中逐渐介绍较复杂的内容。第16章学习如何在应用程序中使用.NET Framework提供的各种控件。我们将简要论述.NET如何以图形化方式建立Windows应用程序,以最少的时间和精力创建高级应用程序。 第17章讨论应用程序的部署,包括建立安装程序,以便用户快速安装和运行应用程序。 0.3.3 Web编程(第18~20章) 这个部分的结构与Windows编程部分类似。首先,第18章描述了构成最简单Web应用程序的控件,如何把它们组合在一起,让它们使用ASP.NET执行任务。接着介绍了更高级的技术、ASP.NET AJAX、各种控件、Web上下文下的状态管理以及Web标准的遵循。 第19章将走入Web服务的精彩世界,它可以编程访问Internet上的信息和功能,可以把复杂数据和功能以独立于平台的方式嵌入Web和Windows应用程序。这一章讨论如何使用和创建Web服务,以及.NET提供的其他工具,如安全性。 最后,第20章探讨Web应用程序和服务的部署,尤其是可以通过单击按钮把应用程序发布到Web上的VS和VWD特性。 0.3.4 数据访问(第21~24章) 第21章介绍了应用程序如何将数据保存到磁盘以及如何检索磁盘上的数据(作为简单的文本文件或者更复杂的数据表示方式)。这一章还将讨论如何压缩数据,如何操纵旧数据(例如,用逗号分隔的值(CSV)文件),如何监视和处理文件系统的变化。 第22章学习数据交换的事实标准XML。之前的章节接触过XML几次,而这一章将了解XML的基本规则,论述XML的所有功能。 本部分其余章节介绍LINQ(这是内置于.NET Framework最新版本中的查询语言)。第23章简要介绍LINQ,第24章使用LINQ访问数据库和其他数据。 0.3.5 其他技术(第25~27章) 本书最后一部分将讨论.NET Framework最新版本中出现的几项新技术。第25章介绍Windows Presentation Foundation(WPF),了解它给Windows和Web开发带来哪些重大的变化。第26章介绍Windows Communication Foundation(WCF),它把Web服务的概念扩展和改进为一种企业级通信技术。本书最后一章是第27章,介绍了Windows Workflow Foundation(WF),它允许在应用程序中执行工作流功能,因此可以定义一些操作,这些操作由外部的交互操作控制,按特定顺序执行,这对许多类型的应用程序都很有帮助。 0.4 使用本书的要求 本书中C#和.NET Framework的代码和描述都适用于.NET 4。除了Framework之外,不需要其他东西就可以理解本书的这个方面,但许多示例都需要使用开发工具。本书将Visual C# 2010 Express作为主要开发工具,一些章节则使用了Visual Web Developer 2010 Express。另外,一些功能只能在Visual Studio 2010中使用,这会在相应的地方明确指出。 0.5 源代码 在读者学习本书中的示例时,可以手工输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点/或www.tupwk.com.cn/downpage上下载。登录到站点?±>,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有源代码。 注释: 由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-0-470-50226-6。 在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。 0.6 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 请给wkservice@vip.163.com发电子邮件,我们就会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。在本书编辑过程中,我们接受了热心读者白爽针对第4版中文译著提出的一些修改意见,在此特向白爽表示衷心感谢。 要在网站上找到本书英文版的勘误表,可以登录,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是/misc-pages/booklist.shtml。 0.7 要与作者和同行讨论,请加入上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。 在上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤: (1) 进入,单击Register链接。 (2) 阅读使用协议,并单击Agree按钮。 (3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。 (4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 注释: 不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。 加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。 关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。