首页 > 编程语言 >About this book (Code like pro in C#)

About this book (Code like pro in C#)

时间:2022-12-02 18:02:20浏览次数:39  
标签:本书 About Code like C# 代码 使用 NET 源代码

本书以您现有的编程技能为基础,帮助您无缝提升您的编码实践或从Java或其他面向对象语言过渡到C#。您将学习编写对企业开发至关重要的惯用C#代码。这本书讨论了基本的后端技能,并将其应用于一个常见的职业挑战:重构遗留代码库,使其安全、干净、可读。完成后,您将具备C#的专业水平,并准备好开始使用高级资源。

通过重新构建过时的遗留代码库,使用新技术、工具和最佳实践使其符合现代C#标准,您将不会学到“Hello,World”或计算机科学101基础知识。在本书中,我们使用一个现有的代码库(用.NETFramework编写),并使用一个简化的API将其重构为.NET5。

谁应该读这本书

如果你是一个精通面向对象编程语言的开发人员,无论是Java、Dart、C++或其他语言,本书都可以帮助你快速掌握C#和.NET,而无需从头开始。你的很多知识都会传承下来,那么为什么要学习第500次写if语句呢?

同样,如果你精通编程语言,如Go、C、JavaScript、Python或任何其他主流语言,那么在阅读本书后,你可以写出干净、地道的C#。您可能想了解一些面向对象的设计原则,但这不应该成为进入的障碍(如果您来自Go,请确保在使用接口时要格外注意;它们的工作原理不一样)。

最后,如果你是一个使用C#已有一段时间的开发人员,并且想知道如何“提升”你的知识:这本书适合你。许多高级C#资源假定了入门或初学者资源中没有涉及的知识。本书旨在弥合这一差距。

本书的组织方式:路线图

与普通的技术书籍相比,这本书的结构有点非传统。大多数技术书籍都是参考书,或者可以按任何顺序阅读。这本书不是一本参考书,为了充分利用它,你需要按顺序阅读章节。本书由以下六个部分组成,如图1所示:

 图1 阅读本书的建议路线流程图。按照步骤,回答问题以获得理想的阅读体验。该流程图的灵感来自唐纳德·克努思(Donald Knuth)的《计算机编程的艺术》(the Art of Computer Programming)系列中的书籍结构流程图。

  1. "使用C#和.NET”-在第1章中,我们讨论了本书是什么,它教了什么,它不教什么。第2章简要介绍了C#语言和.NET生态系统,重点介绍了.NET与其他平台的区别以及C#编译故事。
  2. “现有代码库”-在本部分中,我将指导您探索我们继承的代码库。这部分详细介绍了现有代码库,并讨论了潜在的改进和设计缺陷。
  3. “数据库访问层”-在第2部分之后,我们开始重写整个服务。在第3部分中,我们将重点关注创建一个新的.NETCore项目,并学习如何使用EntityFrameworkCore连接到云(或本地)数据库。其他讨论的主题包括存储库/服务模式、虚拟方法和属性以及密封类。
  4. “存储库层”-在第4部分中,我们进入了存储库/服务模式的领域,并实现了五个存储库类。您还学习了依赖注入、多线程(包括锁定、互斥锁和信号量)、自定义相等比较、测试驱动开发、泛型、扩展方法和LINQ。
  5. “服务层”-下一步是实现服务层类。在第5部分中,我们从头开始编写了四个服务层,并讨论了反射、模仿、耦合、运行时断言和类型检查、错误处理、结构和收益返回。
  6. “控制器层”-第6部分是我们重写第2部分中最初继承的服务的最后一步。这一部分看到我们编写了两个控制器类,并让我们执行验收测试。除了这些主题,我们还讨论了ASPNETCore中间件、HTTP路由、自定义数据绑定、数据序列化和反序列化,以及在运行时生成OpenAPI规范。

本书中的许多章节(以及章节中的一些章节)都有练习,旨在测试你对材料的了解。你可以很快完成这些练习。我鼓励您在遇到这些问题时完成这些问题,并重新阅读您可能忽略或误解的部分。

关于代码

在撰写本文时,.NET环境可以分为三个主要部分:.NET Framework 4.x、.NET Core 3.x和.NET 5。除第3章和第4章外,整本书都使用了.NET 5(原因是您在阅读这些章节后会理解)。

使用的C#语言版本是C#3和C#9(我们在本书的大部分内容中没有使用任何C#9特有的功能,所以安装C#8也可以)。因为C#语言是向后兼容的,所以您只需要安装最新版本(在编写本文时,可以是C#8或C#9预览版)。提供源代码的章节为2、3和4(组合)、5、6、7、8、9、10、11、12、13和14。

要运行代码,需要安装高于3.5的.NET Framework版本(如果要运行第3章和第4章中的代码)和.NET 5。如果要在本地运行本书中使用的数据库或在安装本书中所需的任何内容时遇到问题,可以在附录C(“安装指南”)中找到安装说明。本书主要使用Visual Studio作为IDE,但如果您愿意,您可以使用任何支持C#的IDE(或者根本不支持)。Visual Studio 2019有一个名为Visual Studio 2019社区的免费版本。当我们遇到需要Visual Studio的事情时,本书会这样做。代码和.NET5应该在Windows、macOS和Linux上运行。本书尽可能使用命令行(或终端,对于macOS用户),以避免对任何特定IDE或操作系统的依赖。

本书包含许多源代码示例,包括编号列表和普通文本。在这两种情况下,源代码都采用这样的固定宽度字体进行格式化,以将其与普通文本分开。有时代码也以粗体突出显示与本章前面步骤不同的代码,例如当新功能添加到现有代码行时。

在许多情况下,原始源代码已被重新格式化;添加了换行符,并修改了缩进以适应书中可用的页面空间。在某些情况下,甚至这还不够,列表中包括行延续标记(➥). 代码注释伴随着许多清单,突出了重要的概念。还要注意,对于新代码块,大括号通常放在前面的行上。这不是合适的真实世界C#约定,但这样做是为了保留空间。源代码本身不使用此约定。

liveBook讨论论坛

购买C#中的Code Like a Pro包括免费访问Manning Publications运营的私人网络论坛,在那里您可以对本书发表评论,询问技术问题,并获得作者和其他用户的帮助。要访问论坛,请转到https://livebook.manning.com/book/code-like-a-pro-in-c-sharp/welcome/v-9/.您还可以在https://livebook.Manning.com/#/讨论。

曼宁对读者的承诺是提供一个场所,让读者之间以及读者和作者之间进行有意义的对话。这不是提交人对任何具体参与量的承诺,提交人对论坛的贡献仍然是自愿的(且未支付)。我们建议你试着问他一些有挑战性的问题,以免他的兴趣分散!只要这本书还在印刷,就可以从出版商的网站访问论坛和以前讨论的档案。

 

标签:本书,About,Code,like,C#,代码,使用,NET,源代码
From: https://www.cnblogs.com/SoftwareLife/p/16944871.html

相关文章

  • EasyCode全自动单表增删改查!
    需要IDEA下载EasyCode插件准备好三个基础Base类分页封装基础packagecom.gton.io;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsCon......
  • vscode的php代码格式化及相关配置
    在vscode的Extensions模块搜索PHPIntelephense,PHPServer,Prettier,LaravelBladeformatter,LaravelBladeSnippets并安装打开settings.json添加以下内容{......
  • vscode的python3代码格式化问题
    #安装python插件在vscode的Extensions模块中搜索python 安装python扩展打开settings设置,搜索python.linting.enabled设置python.linting.enabled为true搜索pyt......
  • 反转链表-LeetCode206 改变指向
    LeetCode链接:https://leetcode.cn/problems/reverse-linked-list/题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1:    输入:head=[1,2,......
  • vscode开发keil配置记录
    插件详细配置过程:C/C++(语言支持)、ChineseSimplified(编辑器汉化)、KeilAssistant(支持Keil工具)、TabnineAutocompleteAI(代码补齐)https://blog.csdn.net/xue_nuo......
  • VSCode中Debug远程Python程序,断点失效
    解决方法:找到调试要使用的python解释器路径Linux命令:whereispython我这里是/home/tao/anaconda/envs/spyketorchproject/bin/python3.10在VSCode中修改Debug配置文件......
  • [leetcode每日一题]12.2
    ​​1769.移动所有球到每个盒子所需的最小操作数​​有 ​​n​​ 个盒子。给你一个长度为 ​​n​​ 的二进制字符串 ​​boxes​​ ,其中 ​​boxes[i]​​ 的值......
  • vscode编辑器设置背景图片(background-cover插件)以及代码颜色,编辑器其他颜色设置
    vscode编辑器设置背景图片(background-cover插件)以及代码颜色,编辑器其他颜色设置对着编辑器敲久了,看着编辑器总是一种颜色,有点厌烦,这时我们可以自己定义背景颜色或者背景......
  • CodeIgniter tips:验证码帮助类
    在CI中,做验证类可以这样做,首先给出的是手册中的做法加载辅助函数用下面的代码加载验证码辅助函数:$this->load->helper('captcha');可用的......
  • Masked Autoencoders Are Scalable Vision Learners
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! CVPR2022 Abstract 1.Introduction 2.RelatedWork 3.Approach 4.ImageNetExperiments ......