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