C#零基础干货!C#10零基础教程分享(2022录制)

调试软件时,工具非常重要。获取正确的工具,然后在调试时提取正确的信息。根据得到的正确错误信息,可以找到问题的症结所在。找到问题的症结所在,你就可以修复错误。

您将看到我认为用于解决 C#.NET 中的错误的最基本工具的列表。这些将帮助您找到任何困境的根本原因并解决它。

除了代码中的常见问题外,以下工具可以处理多种问题类型,包括:

按照惯例,这里给大家分享一波C#零基础干货!

C#10零基础教程分享(2022年录制)

平心而论,C# 上手容易,菜鸟友好也是它的一大亮点。如果你是编程新手,或者想快速系统深入地掌握C#编程。不要错过本教程。真的好难录啊!总之,我免费分享,不要白费,不要乱搞!

本教程的 59 个视频小时主要包括 C# 句型的基础知识。基于C#10和.NET6的新技术分享,从零开始学习基于C#语言开发的工具、项目、核心句型。通过实际操作,Hard Strike可以了解C#是什么网站开发工具哪个好用,它能做什么,如何学习C#等,最终可以独立完成基于C#语言的基础开发。

免费自取教程:

因内容过多不便呈现,如需视频教程及配套源码,可点此在我知道首页添加个人描述号,免费分享。

也可以直接点击下方卡片:点击后可以手动复制微信号,跳转微信。辛苦你搜微信号加进去。内容已打包,添加后直接发送,注意查收!

继续正文~

1、VisualStudio

在调试方面,我们的主要工具是 VisualStudio。它是世界上最好的 IDE 之一,而不仅仅是在 .NET 世界中。它有大量功能可以帮助您进行调试,包括各种工具窗口、异常选项、工具提示等。根据 2019 年 StackOverflow 的一项调查,谷歌设法将基本功能和中级功能结合到一个非常直观的程序中,使 VisualSudio 成为所有开发人员第二受欢迎的 IDE。

近年来,出现了两个挑战 .NET IDE 空间的竞争对手:Rider 和 Visual Studio Code。以我的经验,三者的调试能力还是远远落后于VisualStudio。虽然 Rider 的构建能力和性能令人印象深刻。

不仅是交互式(传统)调试,VS 还包括许多其他分析工具:

对于以上所有类别,我更喜欢使用其他工具。请继续阅读,它们都在此列表中。

2、dnSpy

dnSpy 是 .NET 调试最有用的工具之一。这是一个非常好的反编译器。它的主要用途是作为调试器。dnSpy 允许您调试任何 .NET 程序,无论符号或源代码如何。

该工具的外观和感觉类似于 Visual Studio。当您开始调试没有符号或源代码的 .NET 进程时,dnSpy 将向您显示反编译的代码。现在,神奇之处在于:您可以在反编译的码本中放置断点。当您遇到这些断点时,您将看到局部变量、线程、调用堆栈,并获得完整的调试体验。这使得 dnSpy 成为调试第三方代码和调试生产环境的首选工具。

它重量轻,无需安装。只需将文件夹复制到任何生产机器,然后开始调试。

这个工具有一个小技巧。如果您使用 dnSpy 启动该过程,一切都会正常工作。而且,如果您附加到正在运行的进程网站开发工具哪个好用,加载的模块将保持优化。

也就是说,它们是在发布模式下构建的。优化代码后,个别断点不会被命中,个别局部变量也不会显示。这几乎破坏了调试体验。解决方案是使用 dsSpy 启动进程而不是附加到进程。

3、dotPeek

dotPeek 是来自 JetBrains 的免费 .NET 反编译器。他们的许多工具实际上都进入了该列表。与 ILSpy 或 JustDecompile 这样的两个反编译器相比,我更喜欢 dotPeek,原因有两个:

4、dotTrace

dotTrace 是 JetBrains 的另一个出色工具。这是我最喜欢的分析工具。dotTrance 允许您“记录”应用程序的操作,然后分析记录的性能。您将能够看到每次调用花费了多长时间、HTTP 请求、垃圾收集期间花费的时间等。

上图显示了 Visual Studio 的简要记录结构。可以看到ShowWindow耗时155微秒,包括HwndSourceHook(42ms)、Convert(16ms)等方法。以这种方式执行包括 42% 的 WPF 调用、20% 的用户代码、12% 的 GC 等待、10% 的集合代码、10% 的反射和 5% 的系统代码。太好了,对吧?

首先,这是一个学习曲线,一旦你习惯了它,它就会非常直观。5、SciTech 的.NETMemoryProfiler

视频内存分析器是另一种对解决视频内存问题至关重要的工具。这些可能是由于 GC(GC 压力)导致的内存泄漏或性能下降。如果你有一个足够大的应用程序,迟早你会遇到内存问题。我希望你以后能解决,因为这类问题可能是毁灭性的。

Video Memory Profiler 可以拍摄“内存快照”并允许您调查设备。您将看到哪些对象占用了最多的视频内存,谁在引用它们,以及为什么它们没有被垃圾收集。通过比较两个快照,可以检测到内存被盗。

有几种可用的内存分析器,我最喜欢 SciTech 的 .NETMemoryProfiler。我发现它是功能最强大、问题最少的产品。

6、OzCode

OzCode 是一个精美的 VisualStudio 扩展。它的唯一目的是帮助您在 VisualStudio 中进行交互式调试。OzCode 有很多功能,可以分为 4 个部分:

1.如上所示 - OzCode 在调试期间添加了一些有用的可视化功能。这包括黑色/红色突出显示和显示对象的拾取属性:

还有其他一些事情,比如将表达式分成几部分:

2.LINQ 调试 - LINQ 在编写代码时非常有用,但很难调试。OzCode 允许在调试期间以几乎完美的形式研究 LINQ 表达式。

要了解有关使用或不使用 OzCode 调试 LINQ 的更多信息,请查看我的文章:如何在 C# 中调试 LINQ 查询。

3.DataTips - DataTips 是当您将键盘悬停在 Visual Studio 中的变量上时您听到的弹出窗口。OzCode 用自己更好的数据提示替换了这个窗口。它允许“收藏夹”属性、搜索、导入为 JSON 和其他功能。

4.Time Shuttle - OzCode4 添加了新的革命性调试功能。它可以在不连接断点的情况下预测未来。也就是说,您还将看到在当前调试位置之后发生的代码行中发生了什么。但是,此功能并非在所有情况下都有效。例如,OzCode 很难预测 HTTP 请求结果或 SQL 请求,因为它必须相应地执行它们。

7、SysInternalsSuite

SysInternals 是一套用于故障排除和监控 Windows 软件的实用程序。它包括我们调试所需的一些最重要的工具。我建议下载整个套件并将其保存在易于在命令行上键入的位置,例如:C:Sysinternals。有很多工具,其中一些比其他工具更有用。让我们列出一些对 .NET 最重要的内容。

过程浏览器

ProcessExplorer 就像类固醇上的 WindowsTaskManager。它具有许多对调试有用的功能,以下是其中的一些:

过程监视器

ProcessMonitor,也称为 ProcMon,允许您监视过程活动干扰。具体来说,您可以执行注册表混乱、文件混乱、网络混乱、线程活动和性能分析混乱。如果您想找出您的过程中涉及哪些文件或注册表,那么 ProcMon 可以帮助您。

过程转储

ProcDump 是一个用于保存存储文件的命令行工具。它可以立即或在触发器上生成民意调查。例如,在崩溃或挂起时创建轮询。这是我推荐的用于捕获民意调查的工具。以下是它的一些特点:

要了解有关 ProcDump 和 Dump 的更多信息,请参阅我的文章:2019 年创建、使用和调试 .NET 应用程序崩溃轮询。

8、性能监视器(PerfMon)

Windows 中有一种称为“性能计数器”的外部机制。这些计数器允许您跟踪有关计算机上正在发生的事情的许多有用指标。这些可能是系统范围的指标或特定于流程的指标。以下是可以使用性能计数器判断的一些示例:

您可以监控数千个不同的计数器,它们将尽可能具体。比如想知道一个进程的显存使用情况,有以下计数器:私有字节、虚拟字节、工作集、私有工作集、GenX集、GC时间比例、大对象堆大小等。

性能监视器是让您可视化此类计数器的工具(尽管还有其他)。它预装在 Windows 设备上。要运行它,只需在开始菜单中键入“PerformanceMonitor”,或在命令提示符下键入 perfmon。

9、PerfView

PerfView 是一个开源的通用分析工具。它可以做很多事情,这里有一些:

有关应用程序行为的各种报告,包括 JIT 编译时间、垃圾收集时间等。它的 profiling 基于 Windows Storm Tracking (ETW) 风暴。这是一个运行速度非常快的外部日志系统,Windows 的每个部分都可以使用它。一切都记录到 ETW,包括内核、Windows OS、CLR 运行时、IIS、ASP.NET 框架、WPF 等。

PerfView 很容易成为此列表中最复杂的工具。而且它也非常强大。要开始使用 PerfView,我建议您在第九频道观看 VanceMorrison 的视频课程系统。

10、提琴手

Fiddler 是 ProgressTelerik 的一款免费工具。这是我最喜欢的用于调试 Web 请求的工具之一。它被称为 HTTP 代理服务器,仅此而已。它捕获所有 HTTP 请求、记录数据并在其方法中发送请求。

对于每个请求,您可以查看进程、标头、有效负载、响应、状态和其他所有内容。

对于调试,Fiddler 有两个有用的功能:

没有提到哪一个

您可能想了解我没有提到的各个工具,如果您已经开发了很长时间,您可能会想到 WinDbg。如果您不熟悉 WinDbg,它是一个命令行调试器,曾经是 Windows 的主要调试工具。有点像如今 VisualStudio 用于 .NET 的方式。我认为这在 2020 年及以后并不重要。至少不适用于 .NET 开发。您可以使用 Visual Studio 完成几乎所有操作,但它变得越来越简单和快捷。

WinDbg的个别功能还是不错的。与其脚本功能一样,它有助于远程处理和轻松的生产调试。您可以将 WinDbg 复制到生产计算机并快速调查存储的文件。它不需要像 VisualStudio 这样的小型安装。而且我总是发现自己将存储文件复制到我的开发机器并使用内存分析器或 VisualStudio 打开它们。这更有效。为此,我觉得WinDbg不再是.NET开发必备的调试工具了。

总结

我们已经介绍了一些最好的调试工具。我觉得了解这个工具对于成为中级开发人员至关重要。它提到一些可以用其类别中的类似工具替换。例如,您可以将 dotMemory 用作内存分析器、VisualStudio 的外部分析器甚至 PrefView。或者您可以使用 RedGate 的分析器而不是 dotTrace。

无论您选择哪种,至少要知道分析器可以帮助您摆脱您可能会遇到的困境。内存分析器、生产调试工具(如 dnSpy)、反编译器等也是如此。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 C#零基础干货!C#10零基础教程分享(2022录制) https://www.wkzy.net/game/8468.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务