首页 > 图书中心 >图书详情
C#入门经典:更新至C# 9和.NET 5
作者:[英]马克·J.普赖斯(Mark J.Price) 著;叶伟民 译
丛书名:开源.NET生态软件开发
定价:139元
印次:1-2
ISBN:9787302583882
出版日期:2021.07.01
印刷日期:2021.12.30
主要特色 ● 使用面向对象编程构建自己的类型 ● 使用LINQ查询和操作数据 ● 使用ASP.NET Core 5构建网站和服务 ● 使用机器学习创建智能应用 ● 使用Entity Framework Core和关系数据库 ● 使用UWP和XAML开发Windows应用 ● 使用Blazor框架构建丰富的Web应用体验 ● 使用Xamarin.Forms为iOS和Android开发移动应用
more >译 者 序 C# 9.0已于 2020年 11月 10日正式发布,这一 C#版本的主要落脚点放在数据的简洁性和不可变性方面。C# 9.0的新特性如下: ● init关键字 . 只初始化属性设置器 . init属性访问器和只读字段 ● 记录类型 . with表达式 . 基于值的相等 . 继承 . 位置记录 ● 顶级程序(Top-Level Program) ● 增强的模式匹配 . 简单类型模式 . 关系模式 ● 类型推导的 new表达式 ● 返回值类型支持协变 ● 本地大小的整型——nint和 nuint ● 静态匿名方法 ● 模块初始化器 ● 本地函数支持 Attribute ● 扩展的分部方法 ● Lambda弃元参数 ● 类型推导的条件表达式 ● 方法指针 ● 禁止发出 localsinit标记 ● 扩展了 GetEnumerator以支持 foreach循环 本书内容简洁明快、行文流畅,每个主题都配有实际动手演练项目。本书还是一本循序渐进的指南,可用于通过跨平台的 .NET学习现代 C#实践,书中还简要介绍可以使用它们构建的主要应用程序类型。本书分为 21章,还包含两个附录,内容包括 C#与.NET入门, C#编程基础,控制程序流程和转换类型,编写、调试和测试函数,使用面向对象编程技术构建自己的类型,实现接口和继承类,理解和打包 .NET类型,使用常见的 .NET类型,处理文件、流和序列化,保护数据和应用程序,使用 Entity Framework Core处理数据库,使用 LINQ查询和操作数据,使用多任务提高性能和可伸缩性, C#和.NET的实际应用,使用 ASP.NETCore Razor Pages构建网站,使用 MVC模式构建网站,使用内容管理系统构建网站,构建和消费 Web服务,使用机器学习构建智能应用程序,使用 Blazor构建 Web用户界面以及使用 Xamarin.Forms构建跨平台的移动应用程序。 本书适合 C#和.NET初学者阅读,不要求读者具有任何编程经验;同时也适合使用过 C#但感觉在过去几年自身技术已落伍的程序员;既可供软件项目管理人员、开发团队成员学习参考,也可作为高等院校计算机专业的教材或教学参考用书,甚至可作为通信、电子信息、自动化等相关专业的教材。 在这里要感谢清华大学出版社的编辑,他们为本书的翻译投入了巨大的热情并付出了很多心血。没有他们的帮助和鼓励,本书不可能顺利付梓。 对于这本经典之作,译者本着“诚惶诚恐”的态度,在翻译过程中力求“信、达、雅”,但是由于译者水平有限,失误在所难免,如有任何意见和建议,请不吝指正。 —叶伟民 译 者 介 绍 叶伟民 ● 广州.NET俱乐部主席 ● 全国各地.NET社区微信群/联系方式名录维护者 ● .NET并发编程实战》译者 ● .NET内存管理宝典》合译者 ● “神机妙算 Fintech信息汇总”公众号号主 ● 17年.NET开发经验 ● 曾在美国旧金山工作 软件质量需要程序员和测试员一起来保证,书的质量同样如此。十分感谢来自以下.NET社区的试读者: ● 胶东.NET社区——陆楠 ● 广州.NET俱乐部、微软 MVP——周豪 ● 广州.NET俱乐部、微软 MVP——林德熙 ● 广州.NET俱乐部——张陶栋 ● 广州.NET俱乐部、微软 Regional Director、微软 MVP ——卢建晖 译者叶伟民拥有全国各地 .NET社区微信群 /联系方式名录,欢迎全国各地 .NET开发者加入所在地区的.NET社区。 作 者 简 介 Mark J. Price是一位拥有 20多年教育和编程经验的微软认证技术专家,他专注于 C#编程以及构建 Azure云解决方案。 自 1993年以来, Mark已经通过了 80多项微软编程考试,他特别擅长传道授业。他的学生既有具有几十年经验的专业人士,也有毫无经验的 16岁学徒。他通过结合教育技能以及亲自为世界范围内的企业提供咨询和开发系统的实际经验,成功指导了所有这些学生。 从 2001年到 2003年,Mark在美国雷德蒙德全职为微软编写官方课件。当 C#还处于 alpha版本时,他的团队就为 C#编写了第一个培训教程。在微软任职期间,他为“培训师”上课,指导微软认证培训师快速掌握 C#和.NET。 目前, Mark为 Episerver的数字体验平台提供培训课程,包括内容云、商务云和智能云等主题。该平台目前是最优秀的.NET CMS数字营销和电子商务平台。 2010年,Mark获得了研究生教育证书 (Postgraduate Certificate in Education,PGCE)。他在伦敦两所中学讲授 GCSE和 A-Level数学课程。他拥有计算机科学学士学位,毕业于英国布里斯托尔大学。 审校者简介 Damir Arh拥有多年的软件开发和维护经验,其中包括复杂的企业级软件项目以及现代的面向消费者的移动应用。尽管他使用过各种不同的语言,但他最钟爱的语言仍然是 C#。在对更出色的开发过程的不懈追求中,他是测试驱动开发、持续集成和持续部署的忠实支持者。他通过在本地用户组和会议上演讲、撰写博客和文章来分享自己的渊博知识。他曾连续 9次获得微软 MVP称号。在业余时间,他总是喜欢运动,比如徒步旅行、地理探索、跑步和攀岩。 致 谢 感谢我的父母 Pamela和 Ian,是你们把我培养成一个有礼貌、勤奋、对世界充满好奇心的人。感谢我的妹妹 Emily和 Juliet,感谢你们爱我,尽管我有些愚笨。感谢我的朋友和同事们,是你们激发了我的技术潜能和创造力。最后,感谢我多年来教过的所有学生,是你们激励我成为最出色的老师。 ——Mark J. Price 我要感谢我的家人和朋友,在那么多个周末和晚上,正是他们的耐心和理解,才让本书能够更好地为每个人服务。 ——Damir Arh 前 言 有些 C#书籍长达数千页,旨在全面介绍 C#编程语言和.NET Framework。本书与众不同,内容简洁明快、行文流畅,每个主题都配有实际动手演练项目。进行总体叙述的广度是以牺牲一定深度为代价的,但如果愿意,你就会发现许多主题都值得进一步探索。 本书也是一本循序渐进的学习指南,可用于通过跨平台的 .NET学习现代 C#实践,并简要介绍可以使用它们构建的主要应用程序类型。本书最适合 C#和.NET初学者阅读,也适合学过 C#但感觉在过去几年自身技术已落伍的程序员阅读。 本书将指出 C#和.NET的一些优缺点,这样就可以给你留下深刻的印象,并快速提高工作效率。本书的解释不会事无巨细,以免因放慢速度导致读者感到无聊,而是假设读者足够聪明,能够自行对一些初、中级程序员需要了解的主题进行解释。 本书内容 第 1章介绍如何设置开发环境,并通过 C#和.NET,使用 Visual Studio Code创建最简单的应用程序。通过学习本章,你将了解如何在任何受支持的操作系统 (Windows、macOS和 Linux发布版)中编写和编译代码,对于简化的控制台应用程序,可以使用 C# 9.0中引入的顶级程序功能。本章还介绍了可以从哪里寻求帮助。 第 2章介绍 C#的版本,并通过一些表介绍各个版本的新特性,然后解释 C#日常用来为应用程序编写源代码的语法和词汇。特别是,你在本章将学习如何声明和处理不同类型的变量,以及 C# 8.0中引入可空引用类型后带来的巨大变化。 第 3章讨论如何使用操作符对变量执行简单的操作,包括比较、编写决策, C# 7.0 ~C# 9.0中的模式匹配,以及重复语句块和类型之间的转换。本章还介绍了在不可避免地发生错误时,如何编写防御性代码来处理这些错误。 第 4章讲述如何遵循 Don’t Repeat Yourself (不要重复自己, DRY)原则,使用命令式和函数式风格编写可重用的函数。你将学习使用调试工具来跟踪和删除 bug,在执行代码时监视代码以诊断问题,以及在将代码部署到生产环境之前严格测试代码,以删除 bug并确保稳定性和可靠性。 第 5章讨论类可以拥有的所有不同类别的成员,包括存储数据的字段和执行操作的方法。本章将不可避免地涉及面向对象编程 (Object-Oriented Programming,OOP)概念,如聚合和封装。你将学习一些语言特性,比如元组语法支持和 out变量,默认的字面值和推断出的元组名称。你还将学习如何使用 C# 9.0中引入的 record关键字、init-only属性和 with表达式来定义和使用不可变类型。 第 6章解释如何使用面向对象编程 (OOP)从现有类派生出新的类。你将学习如何定义操作符、本地函数、委托和事件,如何实现关于基类和派生类的接口,如何覆盖类型成员以及使用多态性,如何创建扩展方法,以及如何在继承层次结构中的类之间进行转换。 第 7章介绍 .NET的版本,并给出了一些表来说明哪些版本引入了一些新特性,然后介绍与 .NET Standard兼容的.NET类型以及它们与 C#的关系。你将学习如何部署和打包自己的应用程序和库。 第 8章讨论允许代码执行的实际任务的类型,例如操作数字和文本、在集合中存储对象以及实现国际化。 第 9章讨论与文件系统的交互、对文件和流的读写、文本编码,诸如 JSON和 XML的序列化格式,还涉及改进的功能以及.NET 5中引入的 System.Text.Json类的性能问题。 第 10章探讨如何使用加密方法来保护数据不被恶意用户查看,使用哈希和签名防止数据被操纵或破坏。你将了解如何通过身份验证和授权来保护应用程序免受未授权用户的攻击。 第 11章解释如何使用对象关系映射 (Object Relational Mapping,ORM——技术名称是 Entity Framework Core——来读写数据库,如 Microsoft SQL Server和 SQLite。 第 12章介绍语言集成查询 (LINQ)——LINQ扩展语言增加了处理项目序列、筛选、排序,以及将它们投影到不同输出的能力。 第 13章讨论如何通过允许多个动作同时发生来提高性能、可伸缩性和用户生产率。你将了解 async Main特性以及如何使用 System.Diagnostics名称空间中的类型来监视代码,以度量性能和效率。 第 14章介绍可以使用 C#和.NET构建的跨平台应用程序的类型。本章还将通过构建实体模型来表示 Northwind数据库。Northwind数据库将贯穿使用于本书的第 15~21章。 第 15章介绍在服务器端通过 ASP.NET Core使用现代 HTTP架构构建网站的基础知识。你将学习如何实现 ASP.NET Core特性(称为 Razor页面),从而简化为小型网站创建动态网页以及构建 HTTP请求和响应管道的过程。 第 16章讨论程序员团队如何利用 ASP.NET Core MVC以一种易于进行单元测试和管理的方式构建大型、复杂的网站。你将了解启动配置、身份验证、路由、模型、视图和控制器。 第 17章解释 Web内容管理系统 (Content Management System,CMS)如何使开发人员能够使用可定制的用户界面快速构建网站,非技术用户可以使用这一用户界面创建和管理自己的内容。你将构建一个简单的、基于.NET Core的开源网站,并将之命名为 Piranha CMS。 第 18章解释如何使用 ASP.NET Core Web API构建后端 REST体系结构 Web服务,以及如何使用工厂实例化的 HTTP客户端正确地使用它们。 第 19章介绍 ML.NET开源包中的机器学习算法,这些机器学习算法可用于把自适应智能嵌入任何跨平台的.NET应用程序,比如电子商务网站,从而为游客推荐能够添加到购物车中的商品。 第 20章介绍如何使用 Blazor构建 Web用户界面组件,这些组件既可以在服务器端执行,也可以在客户端的 Web浏览器中执行。本章还将讨论 Blazor Server和 Blazor WebAssembly的区别,以及如何构建能够更容易地在这两种托管模型之间进行切换的组件。 第 21章通过构建跨平台的 iOS和 Android应用程序来介绍 C#移动平台。本章的应用程序可使用 Visual Studio 2019 for Mac在 macOS中进行构建。 附录 A提供了各章练习的解决方案。 附录 B除了介绍 .NET 5及其 Windows桌面包如何使 Windows窗体应用程序和 WPF应用程序在.NET 5上运行时受益之外,还介绍 XAML的基础知识,从而为 Windows Presentation Foundation (WPF)或 Universal Windows Platform (UWP) 图形应用程序定义用户界面。你将能够通过使用 Fluent Design的原则和特性来点亮 UWP应用程序。附录 B中的应用程序只能使用 Windows 10上的 Visual Studio 2019来构建。 要做的准备工作 可在许多平台上使用 Visual Studio Code 开发和部署 C#和.NET应用程序,包括 Windows、macOS和各种 Linux发行版。拥有支持 Visual Studio Code 和互联网连接的操作系统是学习第 1~20章所必 需的。 另外,第 21章需要使用 macOS来构建应用程序,拥有 macOS和 Xcode是编译 iOS应用程序的必要条件。 在线资源 书中的一些截图用彩色效果可能更佳,因为这样有助于你更好地理解输出中的变化。为此,我们专门制作了一份 PDF文件。读者可通过使用手机扫描封底的二维码来下载这份 PDF文件,以及本书的附录、各章练习的解决方案等所有在线资源。
more >