零、前言
编程书有几千页长,旨在成为 C# 语言、.NET 综合参考库、网站、服务、桌面、移动应用等应用模型。
这本书是不同的。它简洁明了,旨在成为一本轻快有趣的书,每个主题都有实用的实践练习。整体叙述的广度以某种深度为代价,但如果你愿意,你会发现许多路标需要进一步探索。
这本书也是对现代学习的逐步指导 C# 使用跨平台.NET 验证实践指南,简要介绍了主要类型的实际应用。这本书最适合 C# 和.NET 初学者,或者在过去使用过的人 C# 但程序员在过去几年的变化中感到落后。
如果你已经用过旧版本 C# 语言经验,所以在第 2 章的第一节您可以查看新语言功能的表格并直接跳到它们。
如果你已经使用了旧版本.NET 库的经验,所以在第 7 章的第一节打包和分发.NET 类型您可以查看新库功能表,直接跳到它们。
我将指出 C# 和.NET 酷角落和陷阱,让你给同事留下深刻印象,快速提高工作效率。我觉得你足够聪明,可以用谷歌搜索相关主题的解释,而不是包含在初级到中级指南中,因为印刷指南的空间有限。
在哪里可以找到代码解决方案
您可以通过以下链接从以下链接 GitHub 分步指导任务和练习的解决方案:https://github.com/markjprice/cs10dotnet6 。
如果你不知道该怎么办,那么我就第 1 章、你好,最后给出怎么做的解释,C#!欢迎使用.NET!。
这本书涵盖了内容
第一章、你好,C#!欢迎使用.NET!关于设置你的开发环境并使用它 Visual Studio 或 Visual Studio 创建和使用代码 C# 和.NET 也许是最简单的应用。您将看到简化的控制台应用程序 C# 9 使用中引入的顶级程序功能。为了学习如何编写简单的语言结构和库功能,您将看到.NET 使用交互式笔记本。你还将了解一些寻求帮助的好地方,以及如何联系我以获得有关问题的帮助,或者通过 GitHub 仓库向我提供反馈,以改进书籍和未来版本。
*第 2 章**讲 C#*,介绍了 C# 这个版本显示了哪些版本引入了新功能。我将解释您每天编写应用源代码时使用的语法和词汇。特别是,您将学习如何声明和使用不同类型的变量。
第 3 章**控制流、转换类型和处理异常它涵盖了使用操作符执行变量的简单操作,包括比较和编写决策代码C# 7 到 C# 10 模式匹配、重复句块和类型之间的转换。它还包括编写不可避免的代码,以防止异常处理。
第 4 章**编写、调试和测试函数是关于遵循,不要重复自己(DRY使用命令式和功能实现风格编写可重用函数的原则。您还将学习如何跟踪和删除调试工具 bug,监控代码以诊断代码执行中的问题,并严格测试代码以删除 bug,确保在将其部署到生产环境之前的稳定性和可靠性。
第 5 章**使用面向对象编程来构建自己的类型,讨论了所有不同类型的成员,包括存储数据的字段和执行方法。您将使用面向对象的编程(OOP聚合和包装等概念。您将了解一些语言功能,如元组语法支持和out
变量、默认文本和推断的元组名称,以及如何使用 C# 9 中引入的record
关键字、init
纯属性和with
不可变类型的表达式定义和使用。
第 6 章**实现接口和继承,解释了使用 OOP 从现有类型中衍生出新的类型。您将学习如何定义计算符和本地函数、委托和事件、如何实现基本和衍生接口、如何重写类型成员、如何使用多态性、如何创建扩展方法以及如何在继承层次结构中强制转换类型。C# 8 巨大的变化。
第 7 章**打包和分发.NET 类型,介绍了.NET 有一个表格显示哪些版本引入了新的库功能,然后显示符合要求.NET 标准的.NET 类型以及它们与 C# 关系。您将学习如何在任何支持的操作系统中学习(Windows、macOS 和 Linux 在变体上编写和编译代码。您将学习如何署和分发您的应用程序和库。
第 8 章**使用常见的.NET 类型,讨论了允许代码执行常见实际任务的类型,如操作数字和文本、日期和时间、集中存储项目、使用网络和操作图像以及国际化。
第 9 章**涉及文件、流程和序列化内容包括与文件系统的交互、文件和流的读写、文本编码和 JSON 和 XML 等序列化格式包括改进System.Text.Json
类的功能和性能。
第 10 章**使用实体框架核心数据处理说明了实体框架核心的使用**对象关系映射(ORM技术对关系数据库(如技术对关系数据库) Microsoft SQL Server 和 SQLite)的读写 EF 核心**。您将学习如何定义映射到数据库中现有表的实体模型,以及如何在运行过程中创建表和数据库的代码优先模型。
第 11 章**使用 LINQ查询和操作数据,介绍语言集成查询(LINQs)——语言扩展增加了处理项目序列的能力,并将其过滤、排序和投影到不同的输出中。您将理解并行 LINQ(PLINQ)和 LINQ 到 XML 特殊功能。
第 12 章**多任务处理提高性能和可扩展性为了提高性能、可扩展性和用户生产力,讨论了允许多个操作同时发生的问题。您将理解async Main
特性以及如何使用System.Diagnostics
为了衡量性能和效率,监控代码在名称空间中的类型。
第 13 章**介绍 C# 和.NET 的实际应用,向您介绍可用 C# 和.NET 构建的跨平台应用类型。您还将构建一个 EF 表示核心模型 Northwind 本书其他章节将使用数据库。
第 14 章**使用 ASP.NET Core Razor Pages 构建网站在服务器端学习使用是关于学习的 ASP.NET Core 现代建筑 HTTP 网站架构的基本知识。你将学习如何实现它被称为 Razor Pages 的 ASP.NETCore 功能简化了为小网站创建动态网页的过程,以及如何构建 HTTP 请求及响应管道。
第 15 章**模型-视图-控制器模型建立一个网站是关于学习如何以方便的单元测试和管理的方式和使用 ASP.NETCore MVC 构建大型复杂网站的程序员团队。您将了解启动配置、身份验证、路由、模型、视图和控制器。
第 16 章**构建和使用 Web 服务解释了使用 ASP.NETCore Web API 构建后端 REST 架构 Web 以及如何使用工厂实例化的服务 HTTP 正确使用客户端。
第 17 章**使用 Blazor构建用户界面,介绍如何使用 Blazor 构建服务器端或客户端 web 内部执行浏览器 web 用户界面组件。 Blazor 服务器和 Blazor WebAssembly 以及如何构建更容易在两个托管模型之间切换的组件。
本丰收版由三个额外的在线章节完成。您可以阅读以下章节和附录 https://static.packt-cdn.com/downloads/9781801077361_Bonus_Content.pdf :
第 18 章**建设和消费专业服务使用介绍给你 gRPC 建设服务,使用 Signal 实现服务器与客户端之间的实时通信和使用 OData 公开 EF 核心模型在云中使用 Azure 功能响应触发器的托管功能。
第 19 章**使用.NET 毛伊岛如何构建移动和桌面应用? Android、iOS、macOS 和 Windows 构建跨平台移动和桌面应用。 XAML 基础知识,XAML 可用于定义图形应用的用户界面。
第 20 章**保护您的数据和应用程序它是关于保护您的数据不被恶意用户加密,不被哈希和签名操纵或损坏。您还将了解身份验证和授权,以保护应用程序免受未经授权用户的攻击。
附录**考试答案你的知识问题每章末尾都有考试问题的答案。
这本书你需要什么?
你可以在许多平台上使用它 Visual Studio 开发和部署代码 C# 和.NET 应用,包括 Windows、macOS 和多种 Linux。
一个支持 VisualStudio 代码和 internet 连接的操作系统是完成除一章以外所有章节所需的所有内容。
假如你喜欢用 VisualStudioforWindows 或 macOS,或者像 JetBrains Rider 这样的第三方工具,那可以。
您需要 macOS 在第 19 章**中构建 iOS 应用,使用.NET MAUI构建移动和桌面应用程序,因为你必须拥有它 macOS 和 Xcode 才能编译 iOS 应用。
下载本书的彩色图像
我们还为您提供了一个 PDF 该文件包括本书中使用的屏幕截图和图表的彩色图像。彩色图像将帮助您更好地理解输出中的变化。
您可以下载此文件 https://static.packt-cdn.com/downloads/9781801077361_ColorImages.pdf 。
习俗
在这本书中,你会发现许多文本风格可以区分不同类型的信息。以下是这些风格的一些例子,并解释了它们的含义。
Controllers
、
Models
和
Views
文件夹包含 ASP.NETCore 类和要在服务器上执行的
.cshtml
文件
代码块设置如下:
// storing items at index positions
names[0] = "Kate";
names[1] = "Jack";
names[2] = "Rebecca";
names[3] = "Tom";
当我们希望提请您注意代码块的特定部分时,会突出显示相关行或项目:
// storing items at index positions
names[0] = "Kate";
**names[****1****] =** **"Jack"****;**
names[2] = "Rebecca";
names[3] = "Tom";
任何命令行输入或输出的编写方式如下:
dotnet new console
粗体:表示一个新的术语、一个重要的单词,或者您在屏幕上看到的单词,例如,在菜单或对话框中。例如:“点击下一个按钮,您将进入下一个屏幕。”
重要的注释和指向进一步阅读的外部来源的链接显示在这样一个框中。
良好实践:关于如何像专家一样编程的建议如下。
注:通过阅读原文或者在浏览器中打开 https://csharp.apachecn.org/#/docs/cs10-dnet6-modern-cross-plat-dev/README