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链接。