首页 > 图书中心 >图书详情
C# 10 和 .NET 6入门与跨平台开发(第6版)
作者:[美] 马克·J.普莱斯(Mark J. Price)著 叶伟民 译
丛书名:开源.NET生态软件开发
定价:168元
印次:1-3
ISBN:9787302612728
出版日期:2022.09.01
印刷日期:2023.07.03
这个新版本对上一版做了全面修订,涵盖 C# 10和.NET 6的所有新功能。 本书讨论面向对象编程、编写函数、测试函数、调试函数、实现接口以及继承类等主题;介绍.NET API,这些API可执行多种任务,如管理和查询数据,监视和改进性能,以及使用文件系统、异步流、序列化和加密。你可用ASP.NET Core来构建和部署本书列举的跨平台示例应用程序,如网站和服务。 在学习C#语言和许多.NET库的过程中,为确保不会因不必要的应用代码而分心,第1~12章构建的是控制台应用程序;打下坚实基础后,第13~17章再使用ASP.NET Core、MVC模式以及Blazor构建实际的应用程序和服务。 第18章讲述如何使用Web API、OData、gRPC、GraphQL、SignalR和Azure Functions等技术构建服务;第19章讨论如何使用.NET MAUI构建跨平台应用程序。
more >前 言 有些C#书籍长达数千页,旨在全面介绍C#编程语言、.NET库、应用程序模型(如网站)、服务、桌面应用程序和移动应用程序。 本书与众不同,内容简洁明快、行文流畅,每个主题都配有实际动手演练项目。进行总体叙述的广度是以牺牲一定深度为代价的,但如果愿意,你就会发现许多主题都值得进一步探索。 本书也是一本循序渐进的学习指南,可用于通过跨平台的.NET学习现代C#实践,并简要介绍可以使用它们构建的主要应用程序类型。本书最适合C#和.NET初学者阅读,也适合学过C#但感觉在过去几年自身技术已落伍的程序员阅读。 如果有使用旧版本C#语言的经验,那么可以跳过第2章的前半部分。 如果有使用较旧版本的.NET库的经验,那么可以跳过第7.1节。 本书将指出C#和.NET的一些优缺点,这样就可以给你留下深刻的印象,并快速提高工作效率。本书的解释不会事无巨细,以免因放慢速度导致读者感到无聊,而是假设读者足够聪明,能够自行对一些初、中级程序员需要了解的主题进行解释。 本书内容 第1章介绍如何设置开发环境,并通过C#和.NET,使用Visual Studio或Visual Studio Code 创建最简单的应用程序。通过学习该章,你将了解如何在任何受支持的操作系统(Windows、macOS和Linux发布版)中编写和编译代码,对于简化的控制台应用程序,可以使用C# 9.0中引入的顶级程序功能。为了学习如何编写简单的语言构造和库特性,需要学习.NET Interactive Notebooks的使用。该章还介绍了可以从哪里寻求帮助,以及与我联系的方法,以便在某个问题上获得帮助,或通过其GitHub存储库提供反馈,以改进本书和未来版本。 第2章介绍C#的版本,并通过一些表介绍各个版本的新特性,然后解释C#日常用来为应用程序编写源代码的语法和词汇。特别是,该章将讲述如何声明和处理不同类型的变量。 第3章讨论如何使用操作符对变量执行简单的操作,包括比较、编写决策,C# 7 ~ C# 10中的模式匹配,以及重复语句块和类型之间的转换。该章还介绍在不可避免地发生错误时,如何编写防御性代码来处理这些错误。 第4章讲述如何遵循Don’t Repeat Yourself (不要重复自己,DRY)原则,使用命令式和函数式风格编写可重用的函数。你将学习使用调试工具来跟踪和删除bug,在执行代码时监视代码以诊断问题,以及在将代码部署到生产环境之前严格测试代码,以删除bug并确保稳定性和可靠性。 第5章讨论类可以拥有的所有不同类别的成员,包括存储数据的字段和执行操作的方法。涉及面向对象编程(Object-Oriented Programming,OOP)概念,如聚合和封装。你将学习一些语言特性,比如元组语法支持和out变量,默认的字面值和推断出的元组名称。你还将学习如何使用C# 9.0中引入的record关键字、init-only属性和with表达式来定义和使用不可变类型。 第6章解释如何使用面向对象编程(OOP)从现有类派生出新的类。你将学习如何定义操作符、本地函数、委托和事件,如何实现关于基类和派生类的接口,如何覆盖类型成员以及使用多态性,如何创建扩展方法,如何在继承层次结构中的类之间进行转换,以及C# 8中引入的可空引用类型带来的巨大变化。 第7章介绍.NET的版本,并给出一些表来说明哪些版本引入了一些新特性,然后介绍与.NET Standard兼容的.NET类型以及它们与C#的关系。你将学习如何在任何受支持的操作系统(Windows、macOS和Linux变体)上编写和编译代码。你将学习如何打包、部署和分发自己的应用程序和库。 第8章讨论允许代码执行的实际任务的类型,例如操作数字和文本、日期和时间、在集合中存储项、使用网络和操作图像,以及实现国际化。 第9章讨论与文件系统的交互、对文件和流的读写、文本编码、诸如JSON和XML的序列化格式,还涉及改进的功能以及System.Text.Json类的性能问题。 第10章解释如何使用ORM(技术名称是Entity Framework Core)来读写数据库,如Microsoft SQL Server和SQLite。了解如何定义映射到数据库中现有表的实体模型,以及如何定义可以在运行时创建表和数据库的Code First模型。 第11章介绍LINQ,LINQ扩展语言增加了处理项目序列、筛选、排序,以及将它们投影到不同输出的能力。了解并行LINQ (PLINQ)和LINQ到XML的特殊功能。 第12章讨论如何通过允许多个动作同时发生来提高性能、可伸缩性和用户生产率。你将了解async Main 特性以及如何使用System.Diagnostics名称空间中的类型来监视代码,以度量性能和效率。 第13章介绍可以使用C#和.NET构建的跨平台应用程序的类型。该章还将通过构建EF Core模型来表示Northwind数据库。Northwind数据库将贯穿用于本书的剩余部分。 第14章介绍在服务器端通过ASP.NET Core使用现代HTTP架构构建网站的基础知识。你将学习如何实现ASP.NET Core特性(称为Razor Pages),从而简化为小型网站创建动态网页以及构建HTTP请求和响应管道的过程。 第15章讨论程序员团队如何利用ASP.NET Core MVC以一种易于进行单元测试和管理的方式构建大型、复杂的网站。你将了解启动配置、身份验证、路由、模型、视图和控制器。 第16章解释如何使用ASP.NET Core Web API构建后端REST体系结构Web服务,以及如何使用工厂实例化的HTTP客户端正确地使用它们。 第17章介绍如何使用Blazor构建Web用户界面组件,这些组件既可以在服务器端执行,也可以在客户端的Web浏览器中执行。该章还讨论Blazor Server和Blazor WebAssembly的区别,以及如何构建能够更容易地在这两种托管模型之间进行切换的组件。 第18章介绍如何使用gRPC构建服务,使用SignalR实现服务器和客户端之间的实时通信,使用OData公开EF Core模型,以及在云中使用Azure函数托管响应触发器的函数。 第19章介绍为Android、iOS、macOS和Windows构建跨平台移动和桌面应用程序。你将学习XAML的基础知识,它可用于定义图形应用程序的用户界面。 第20章探讨如何使用加密方法来保护数据不被恶意用户查看,使用哈希和签名防止数据被操纵或破坏。你将了解如何通过身份验证和授权来保护应用程序免受未授权用户的攻击。 附录A提供了各章练习的解决方案。 要做的准备工作 可在许多平台上使用Visual Studio Code 开发和部署C#和.NET应用程序,包括Windows、macOS和各种Linux发行版。 只需要一个支持Visual Studio Code和互联网连接的操作系统就可以完成几乎所有内容。 如果更喜欢在Windows或macOS上使用Visual Studio,或者使用像JetBrains Rider这样的第三方工具,那么也可以完成本书的阅读。 拥有支持Visual Studio Code和互联网连接的操作系统是学习第1~20章所必需的。 另外,第19章需要使用macOS来构建iOS应用程序,拥有macOS和Xcode是编译iOS应用程序的必要条件。 下载资源 书中的一些屏幕截图和图表用彩色效果可能更佳,因为这样有助于你更好地理解输出中的变化。为此,我们专门制作了一份PDF文件。可扫描封底二维码下载该文件。 另外,可扫描封底二维码,下载分步指导任务和练习的解决方案。
more >