前 言
C#是Microsoft于2000年7月推出.NET Framework的第1版时提供的一种全新语言。C#从那时起迅速流行开来,成为使用.NET Framework的桌面、Web和云开发人员无可争议的选择。他们喜欢C#的一个原因是其继承自C/C++的简洁明了的语法,这种语法简化了以前给程序员带来困扰的一些问题。尽管做了这些简化,但C#仍保持了C++原有的功能,所以现在没理由不从C++转向C#。C#语言并不难,也非常适合学习基本编程技术。易于学习,再加上.NET Framework的功能,使C#成为开始你编程生涯的绝佳方式。
C#的最新版本C# 6是.NET Framework 4.6的一部分,它建立在已有的成功基础之上,还添加了一些更吸引人的功能。Visual Studio的最新版本Visual Studio 2015和开发工具的Visual Studio Express/Community 2015系列也有许多变化和改进,这大大简化了编程工作,显著提高了效率。
本书将全面介绍C#编程的所有知识,从该语言本身一直到桌面编程和云编程,再到数据源的使用,最后是一些新的高级技术。我们还将学习Visual Studio 2015的功能和利用它开发应用程序的各种方式。
本书文笔优美流畅,阐述清晰,每一章都以前面章节的内容为基础,便于读者掌握高级技术。每个概念都会根据需要来介绍和讨论,而不会突然冒出某个技术术语来妨碍读者的阅读和理解。本书尽量减少使用的技术术语数量,但如有必要,将根据上下文进行正确的定义和布置。
本书作者都是各自领域的专家,都是C#语言和.NET Framework的爱好者,没人比他们更有资格讲授C#了,他们将在你掌握从基本规则到高级技术的过程中为你保驾护航。除了基础知识外,本书还有许多有益的提示、练习、完全成熟的示例代码(可从p2p.wrox.com下载),在你的职业生涯中一定会反复用到它们。
本书将毫无保留地传授这些知识,希望读者能通过阅读本书成为最优秀的程序员。
0.1 本书读者对象
本书面向想学习如何使用.NET Framework编写C#程序的所有人。本书针对的是想要通过学习一种干净、现代、优雅的编程语言来掌握程序设计的完完全全的初学者。但是,对于熟悉其他语言、想要探索.NET平台的人们,以及想要了解.NET使用的旗舰语言的.NET开发人员,本书同样有用。
0.2 本书内容
本书前面的章节介绍C#语言本身,读者不需要具备任何编程经验。以前对其他语言有一定了解的开发人员,会觉得这些章节的内容非常熟悉。C#语法的许多方面都与其他语言相同,许多结构对所有的编程语言来说都是相通的(例如,循环和分支结构)。但是,即使是有经验的程序员也可以通过这些章节理解此类技术应用于C#的特征,从而从中获益。
如果读者是编程新手,就应从头开始学习,了解基本的编程概念,并熟悉C#和支持C#的.NET平台。如果读者对.NET Framework比较陌生,但知道如何编程,就应阅读第1章,然后快速跳读后面几章,这样就能掌握C#语言的应用方式了。如果读者知道如何编程,但以前从未接触过面向对象的编程语言,就应从第8章开始阅读以后的章节。
如果读者对C#语言比较了解,就可以集中精力学习那些详细论述最新.NET Framework和C#语言开发的章节,尤其是集合、泛型和C#语言的新增内容(第11章~第13章),或者完全跳过本书第I部分,从第14章开始学习。
本书章节的编排方式可以达到两个目的:可以按顺序阅读这些章节,将其视为C#语言的一个完整教程;还可以按照需要深入学习这些章节,将其作为一本参考资料。
除核心内容外,从第3章开始,每章末尾还包含一组习题,完成这些习题有助于读者理解所学的内容。习题包括简单的选择题、判断题以及需要修改或建立应用程序的较难问题。附录A给出了全部习题的答案。
本书特别注重与C# 6、.NET 4.6的一致性。每一章都进行了彻底的检查,删掉了不太相关的内容,增加了新材料。所有代码都在最新版本的开发工具上进行了测试,所有屏幕截图都在Windows 8.1/10上重新截取,以提供最新的窗口和对话框。
本书的亮点包括:
● 增加并改进了代码示例。
● 涵盖C# 6和.NET 4.6的所有新内容,包括如何创建通用Windows应用程序。
● 增加了编写云应用程序的示例,并使用Azure SDK创建和访问云资源。
0.3 本书结构
本书分为6个部分。
● 前言:概述本书的内容。
● OOP语言:介绍C#语言的所有内容,从基础知识到面向对象的技术,一应俱全。
● Windows编程:介绍如何用WPF库编写和部署桌面应用程序。
● 云编程:描述云应用程序的开发和部署,包括Web API的创建和使用。
● 数据访问:介绍如何在应用程序中使用数据,包括存储在硬盘文件中的数据、以XML格式存储的数据和数据库中的数据。
● 其他技术:讲述使用C#和.NET Framework的一些额外方式,包括WCF和通用Windows应用程序。
下面介绍本书5个重要部分中的章节。
0.3.1 OOP语言(第1章~第13章)
第1章介绍C#及其与.NET的关系,了解在这个环境下编程的基础知识,以及Visual Studio 2015(VS)与它的关系。
第2章开始介绍如何编写C#应用程序,学习C#的语法,并将C#和示例命令行、Windows应用程序结合起来使用。这些示例将说明C#如何快速轻松地启动和运行,并附带介绍VS开发环境以及本书将要使用的基本窗口和工具。
接着将学习C#的基础知识。第3章介绍变量的含义以及如何操纵它们。第4章将用流程控制(循环和分支)改进应用程序的结构,第5章介绍一些高级变量类型,如数组。第6章开始以函数形式封装代码,这样就更易于执行重复操作,使代码更容易让人理解。
从第7章开始将运用C#语言的基础知识,调试应用程序。这包括在运行应用程序时输出跟踪信息,使用VS查找错误,在强大的调试环境中找出解决问题的办法。
第8章将学习面向对象编程(Object-Oriented Programming,OOP)。首先了解这个术语的含义,回答“什么是对象”?OOP初看起来是较难的问题。我们将用一整章的篇幅来介绍它,解释对象的强大之处。直到该章的最后才会真正使用C#代码。
第9章将理论知识应用于实践,开始在C#应用程序中使用OOP时,这才体现出C#的真正威力。在第9章介绍如何定义类和接口之后,第10章将探讨类成员(包括字段、属性和方法),在这一章的最后将开始创建一个扑克牌游戏,这个游戏将在几章中开发完成,它非常有助于理解OOP。
学习了OOP在C#中的工作原理后,第11章将介绍几种常见的OOP场景,包括处理对象集合、比较和转换对象。第12章讨论.NET 2.0中引入的一个非常有用的C#特性—— 泛型,利用它可以创建非常灵活的类。第13章通过一些其他技术(主要是事件,它在Windows编程中非常重要)继续讨论C#语言和OOP。最后介绍C#在3.0、4、5和6版本中引入的新特性。
0.3.2 Windows编程(第14章和第15章)
第14章开始介绍Windows编程概念,理解在VS中如何实现Windows编程。该章主要关注如何使用WPF以图形化方式构建桌面应用程序,以及用最少的时间和精力创建高级桌面应用程序。你将首先学习WPF编程的基础知识,然后在该章和第15章逐渐拓展相关知识。第15章介绍在应用程序中如何使用.NET Framework提供的丰富控件。
0.3.3 云编程(第16章和第17章)
第16章首先描述云编程,再讨论云优化堆栈。云环境不同于传统的程序编码方式,所以讨论、定义了几个云编程模式。为完成这一章,需要一个免费的Azure账户,以便创建一个App Services Web App,然后使用Azure SDK和C#,在ASP.NET 4.6 Web应用程序中创建和访问存储账户。
第17章将学习如何创建ASP.NET Web API,并部署到云中,然后在类似的ASP.NET 4.6 Web应用程序中使用Web API。这一章最后讨论云中两个最有价值的特性:硬件资源的缩放和最优利用方式。
0.3.4 数据访问(第18章~第21章)
第18章介绍应用程序如何将数据保存到磁盘以及如何检索磁盘上的数据(作为简单的文本文件或者更复杂的数据表示方式)。该章还将讨论如何压缩数据,如何监视和处理文件系统的变化。
第19章学习数据交换的事实标准XML,简要论述JSON格式。之前的章节接触过XML几次,而该章将讨论XML的基本规则,论述XML的所有功能。
该部分其余章节介绍LINQ(这是内置于.NET Framework最新版本中的查询语言)。第20章简要介绍LINQ。第21章讨论如何使用LINQ访问数据库和其他数据。
0.3.5 其他技术(第22章和第23章)
第22章简要介绍Windows Communication Foundation(WCF),它为在企业级以编程方式跨本地网络和Interent访问信息和功能提供了许多工具。该章将介绍如何以平台无关的方式使用WCF,向Web应用程序和桌面应用程序公开复杂的数据和功能。
第23章展示如何创建通用Windows应用程序,这是Windows新增的。本章建立在第14和第15章的基础上,介绍如何创建可以运行在所有Windows平台上的Windows应用程序。
0.4 使用本书的要求
本书中C#和.NET Framework的代码和描述都适用于C# 6和.NET 4.6。除了Framework之外,不需要其他组件就可以理解本书的这个方面,但许多示例都需要使用开发工具。本书将Visual Studio 2015作为主要开发工具,但是,如果没有安装此工具,可以使用免费的Visual Studio Express/Community 2015产品系列。在本书的第I部分,可使用Visual Studio Express/ Community 2012 for Windows Desktop来创建桌面和控制台应用程序。对于其余章节,可使用Visual Studio Express/Community 2015 for Windows 10创建通用Windows应用程序,使用Visual Studio Express/Community 2015 for Cloud创建云应用程序,并在需要访问数据库的应用程序中使用SQL Server Express 2014。一些功能只能在Visual Studio 2015中使用,但这不会妨碍练习本书的示例。
0.5 本书约定
为了帮助读者在阅读本书的过程中获取最多信息,并随时了解当前处理的事项,本书使用了许多约定。
本书通过两种方式来显示代码:
● 对于大多数代码示例,使用没有突出显示的等宽字体来表示。
● 对在当前上下文中特别重要的代码,用粗体字来强调显示。
0.6 勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
请给wkservice@vip.163.com发电子邮件,我们就会检查你的反馈信息,如果是正确的,我们将在本书的后续版本中采用。
要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。
0.7 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链接。
0.8 源代码
在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/下载。登录站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有的源代码。也可以访问www.tupwk.com.cn/downpage,输入本书中文书名或中文ISBN,下载各章的源代码。
提示:
由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-1-119-09668-9。
下载代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。