【.com快译】为了深入了解.NET工具的不同特点,我们采访了微软、EPAM、AltexSoft、SocketLabs等科技公司的工程师。让他们分享他们认为在软件开发、代码质量分析、调试和其他任务方面最好的23种.NET工具。我们将这些工具分为七组:IDE和代码编辑器、调试器和反编译器、包管理器、格式化工具、性能分析、管理工具和测试工具。.NETIDE和代码编辑器VisualStudioIDE:微软开发的最好的IDEVisualStudio是微软提供的一个功能齐全的开发平台,它涵盖了程序代码创建、修改和转换的全过程。通过IDE的多步付费计划(https://visualstudio.microsoft.com/vs/pricing/),微软让更多的个人和企业使用其丰富的工具集。它有一个VisualStudioCommunity,它对个人开发人员和只有五个用户的非企业组织是免费的。代码自动完成。该平台的IntelliSense代码编辑器(https://code.visualstudio.com/docs/editor/intellisense)支持基于语言语义和源代码分析的自动补全,并提供特定于代码的提示和API代码的编辑。存储库集成。开发人员使用团队资源管理器(https://docs.microsoft.com/en-us/visualstudio/ide/connect-team-project?view=vs-2019)将VisualStudio连接到项目或存储库。该工具过去主要与MicrosoftTFS配合使用,但现在提供了一组丰富的选项,用于在Git存储库上与GitHub、GitLab和Bitbucket配合使用。此外,TeamExplorer还提供了简洁而精致的图形界面,方便用户在不离开VisualStudio窗口的情况下进行大量的日常工作。数据库开发。SQLServerExplorer(https://visualstudio.microsoft.com/vs/features/ssdt/)是一个VS工具,可以直接用来构建VisualStudio和管理SQL数据库。因此,它大大简化了数据库的操作。生产环境故障排除。如果您怀疑存在内存泄漏或死锁,捕获内存转储并在VisualStudio中对其进行分析可以提供明确的答案。借助VS的优势,只需要右击任务管理器,就可以方便的使用本地电脑上的工具选项进行分析。这样的分析对生产环境中的主机几乎没有影响。调试。使用VisualStudioIDE,开发人员还可以访问范围广泛的调试工具。简而言之,如果您不熟悉.NET编程,VisualStudio是一个很好的开始。VisualStudioCode:代码编辑的轻量级版本如果觉得VisualStudio太复杂,只需要一个代码编辑器,可以选择轻量级的VisualStudioCode(https://code.visualstudio.com/)。它是免费的,可用于多种工程场景(如:Linux、MacOS、Windows)的跨平台开发。与VisualStudio类似,Code也完全支持IntelliSense编码、调试、Git集成和扩展。与JetBrains的Rider等其他代码编辑器相比,VisualStudioCode具有更好的可扩展性。它不仅可以在.NET和C#中使用,而且几乎支持任何编程语言。来自JetBrains的Rider:全新的IDERRider是一个相对较新的.NETIDE,仅提供30天的试用期,但Rider支持Windows、MacOSX和Linux上的.NET和.NETCore应用程序。Rider运行速度快,版本控制集成,反编译功能丰富。Rider可以提供各种项目所需的控制台、Web和库。同时,它还包括导航、搜索、重构、代码检查、快速修复以及与版本控制系统无缝集成等功能。与VisualStudio相比,JetBrains的Rider不仅拥有更好的体验和更好的性能,而且它的许可证每年仅需139美元,而VisualStudio专业版的年费用高达1199美元,企业版为5999美元每年.VisualStudioExtresionJetbrains的RESHARARPER:与Jetbrains的另一种产品必不可少的插件是Resharper(https://wwwww.jetbrains.com/resharper/RESHARPER/?代码片段、模板引擎,并添加了额外的静态代码分析功能。此外,ReSharper可以检测各种错误,提供大量自动修复,简化代码修改,让开发者可以快速浏览他们的代码。通过分析代码的质量,ReSharper可以优化代码的性能,避免内存泄漏,并创建构造函数、条件块和新类。NDepend:最好的代码分析工具作为VisualStudio的插件,NDepend(https://www.ndepend.com/)是另一个可以根据用户的特殊需求进行定制化代码分析的工具。它快速准确地检查源代码及其依赖性,并提供详细而精确的指标。VisualStudioCloudExplorer:一个可以与AzureCloudCloudExplorer(https://marketplace.visualstudio.com/items?itemName=ms-azuretools.CloudExplorerForVS)工具交互的解决方案,允许用户直接管理Azure云资源,查看其属性,以及开发人员执行的各种诊断操作。由于用户不需要访问Azure门户,用户可以在VS中看到所有Azure云内容,节省了大量时间。包管理器包管理器通过支持托管用户的各种包、模块和库,以及构建和发布的持续交付来支持整个团队的工作流程。因此,它是对.NET生态系统的重要补充。NuGet:用于创建、共享和使用.NET库的通用工具NuGet(https://www.nuget.org/)程序包管理器及其库是可与.NET一起使用的集中式程序包存储库。它拥有大约150,000个独特的软件包和超过150万个软件包变体。因为NuGet将.NETFramework、库和模块引入到.NET项目中,所以您可以将它与其他资源管理器工具一起使用。NuGetPackageExplorer:一种交互、浏览和发布NuGet包的新方法这个开源产品具有一个用户友好的界面,用于创建、浏览、调试和分析NuGet包。同时,它有一个简单的图形用户界面。.NET库也适合npm近年来,为了方便提供web开发的源代码,MicrosoftVisualStudio也加入了对npm的支持。同时,各种现代网络实践工具和开源代码也可以在后台使用.NETCore编写。调试和反编译工具调试工具使开发人员能够在开发的任何阶段查看代码并确定问题的根本原因。为了排除故障,我们可以使用反编译器工具将编译后的第三方代码转换回C#程序。WinDbg:Windows的独立调试工具WinDBg(https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools)由微软发布,专为调试Windows应用程序而构建。与使用调试器内置IDE的传统方式不同,WinDbg可以在VisualStudio之外运行。所以更适合喜欢开源和自由软件的开发者。该工具用于调试内核模式和用户模式代码,检查故障转储和CPU寄存器。JetBrains的dotPeek:一个很好的免费反编译器dotPeek(https://www.jetbrains.com/decompiler/)是一个可靠的基于ReSharper的反编译器,用于调试第三方程序的代码集合。使用dotPeek,您可以在不直接访问源代码的情况下检查第三方组件中的问题。可见,它是一个简单、高效、全面的工具。如果您需要根据某个应用程序的DLL文件的特定版本来恢复现有代码,那么dotPeek可以在最短的时间内恢复那些丢失的代码。LSpy:.NETReflectorLSpy(https://github.com/icsharpcode/ILSpy/releases)的替代品是.NET程序集浏览器和反编译器。它是一个可以完全替代.NETReflector的免费工具。此工具可以将任何.NETDLL反编译回VisualBasic或C#。因此,如果您丢失了源代码,ILSpy可以让您查看各种框架DLL背后的代码是如何工作的。同时,你也可以通过各种插件(https://github.com/icsharpcode/ILSpy/wiki/Plugins)来增强它的基础包。格式化工具格式化工具可以帮助用户通过遵循某些一致的代码风格来检测和修复各种风格漏洞。此外,您可以在IDE中对其进行设置,使其在您键入时实时工作。SonarQube:维护代码质量的简单工具SonarQube(https://www.sonarqube.org/)是一个开源的静态代码审查工具,它由一组静态分析工具、数据集市和门户组成,您可以在其中管理技术债务和分析.NET托管代码。除了拥有强大的社区支持,SonarQube还可以通过添加插件的方式提供各种额外的分析工具。SonarQube不仅易于设置和配置,而且具有丰富的内置规则集,包括:编码标准、最佳实践和各种安全规则。在实际应用中,SonarQube可以让用户标准化自己的代码,可视化审查的代码覆盖率,从而提高代码的可维护性、整体质量和审查工作量。StyleCop:用于.NET代码样式的可配置工具StyleCop是一种本机代码分析器,可对源代码强制执行样式和一致性规则检查。它允许开发人员从以下三种形式的自定义规则中进行选择:StyleCopVisualStudio扩展(https://visualstudiogallery.msdn.microsoft.com/5441d959-387f-4cb2-a8c0-9998dd1fa49f):VisualStudio中的任何文件、项目或无需修改任何源代码的解决方案。StyleCop.MSBuild(https://www.nuget.org/packages/StyleCop.MSBuild):在.NET4.0以上的项目中运行。StyleCop.ReSharper(https://github.com/StyleCop/StyleCop.ReSharper):是一个插件,可用于将ReSharper配置为使用与StyleCop规则匹配的默认设置。性能分析与管理在开发过程中,如果遇到性能问题,我们往往需要收集与问题相关的各种详细信息。使用如下工具,.NET开发人员可以跟踪计算机性能并找出问题背后的原因。PerfCollect和PerfView:标准的.NET性能优化工具箱PerfCollect(https://raw.githubusercontent.com/dotnet/corefx-tools/master/src/performance/perfcollect/perfcollect)是一个用于自动数据收集的Bash脚本,而PerfView(https://github.com/Microsoft/perfview#perfview-overview)是一个基于Windows的性能工具。您可以使用PerfCollect捕获性能跟踪文件,然后使用PerfView对其进行分析。除了调整CPU和内存分配,PerfView还有以下优点:无需安装,只需将应用程序复制到要从中捕获性能数据的Windows主机,配置需要分析的内容,即可开始捕获。无需修改应用程序或降低性能即可进行分析。可以以与Chrome性能工具类似的方式呈现各种结果。JetBrains的dotTrace和dotMemory:性能和内存分析dotTrace(https://www.jetbrains.com/profiler/)和dotMemory(https://www.jetbrains.com/dotmemory/?gclid=Cj0KCQjwkoDmBRCcARIsAG3xzl8Tqjd2pnIRvxGDqXSTcZX33zS9MNEL7OVFXHjLJMyf_UgCRkXco8oaAsZZEALw_wcB&gclsrc=aw.ds)可跟踪和分析.NET应用程序性能和内存问题。它们能够处理大量数据并将其以全面的方式呈现给用户。dotTrace的功能包括:性能瓶颈检测、调用堆栈分析、性能时间线报告以及许多其他类型的分析操作。dotMemory的功能包括:远程分析、内存问题自动检测、内存流向分析、内存快照对比。BenchmarkDotNet:用于基准测试的强大.NET库作为一个开源项目,BenchmarkDotNet(https://benchmarkdotnet.org/)消除了对性能的猜测,并且能够通过自动隔离每个基准迭代来多次运行和测试。它是一种小型编程工具,使用户能够通过各种示例测量和比较其算法的性能,从而获得可靠的结果并提高生产率。测试工具VisualStudioMSTest:一种流行的单元测试框架,MSTest框架在VisualStudio产品家族中占有独特的地位。由于.NET模式下的单元测试会为每个生产项目准备一个单独的测试项目,您可以直接在MSTest中通过File->NewProject来生成。测试时,可以在IDE中观察测试结果。NUnit:出色的测试工具NUnit(https://nunit.org/)非常适合在非Microsoft平台上以交互方式运行和自定义测试。它不仅可以实现快速测试和测试标记,还可以轻松对给定测试的多个输入进行标准化。但是,NUnit不能像MSTest那样无缝集成到VisualStudio中。同时,由于NUnit支持范围广泛的自定义属性,用户可以方便地根据不同的参数分类进行测试。此外,NUnit可以借助控制台运行器轻松地将测试集成到CI流程中。xUnit.NET:创新的.NET单元测试工具xUnit为测试语言创建了一组直观的术语。它将测试分为“事实”和“理论”,这又分别区分了“始终为真”和“正确数据为真”的情况。作为扩展,xUnit可用于开发.NETCore。JetBrainsdotCover:AcodecoveragetoolforcontinuoustestingdotCover(https://www.jetbrains.com/dotcover/)是一个代码覆盖工具,可以分析用户代码并生成单元测试覆盖报告。作为ReSharper包的一部分,dotCover既可以独立于ReSharper,也可以与ReSharper结合使用。用户可以将dotCover与JetBrains的TeamCityCI服务器一起用作持续集成过程的一部分,以查看单元测试的代码覆盖率。其他有用的工具LINQPad:用于连接数据库的多用途工具LINQPad(https://www.linqpad.net/)是一个轻量级的.NET应用程序,可用于在没有IDE的情况下以交互方式编写C#代码。该工具不仅可以实现一系列查询操作,还具有集成调试器、自动补全(支持IntelliSense)等功能。通过其数据库查询功能,LINQPad可以将各种执行转换为纯SQL,以便用户修改数据和转换数据库的模式。此外,用户还可以使用LINQPad开发自定义计费平台,实现快速原型制作、算法测试、LINQ查询验证等功能。dotnet-script:简单的实验脚本Dotnet-script(https://github.com/filipw/dotnet-script)是一个具有IntelliSense的跨平台.NETCore工具。它可以直接在VisualStudioCode中调试各种脚本。由于NuGet包的支持,dotnet-script代码可以相互关联并存储在同一个文件中。如何选择自己的.NET工具集?那么我们如何在.NET项目的各种可用工具集中进行选择呢?下面是一些经验和建议:根据项目目标和简单性原则,我们不应该在选择工具上花太多时间,而是应该关注工具本身的易用性。根据日常工作中的实际需要,避免开发过程中的重复性工作。可以轻松部署到生产环境中,影响最小。在业界和社会上有着良好的口碑。无论是提供免费试用还是完全免费。学习曲线陡峭且复杂吗?原标题:Top23Toolsfor.NETDevelopment:TheExperts'Choices,作者:KseniiaBezugla
