内容简介:【51CTO.com快译】为了深入了解.NET工具的不同特点,我们采访了Microsoft、EPAM、AltexSoft、SocketLabs和其他技术公司的工程师们。让他们从软件开发、代码质量分析、调试、以及其他任务等方面,分享了他们认为最好的23种.NET工具。我们将这些工具分为了七组,它们分别是:IDE和代码编辑器、调试器和反编译器、包管理器、格式化工具、性能分析、管理工具、以及测试工具。Visual Studio是由Microsoft所提供的全功能开发平台,它涵括了程序代码的创建、修改和转换等全部过
【51CTO.com快译】为了深入了解.NET工具的不同特点,我们采访了Microsoft、EPAM、AltexSoft、SocketLabs和其他技术公司的工程师们。让他们从软件开发、代码质量分析、调试、以及其他任务等方面,分享了他们认为最好的23种.NET工具。
我们将这些 工具 分为了七组,它们分别是:IDE和代码编辑器、调试器和反编译器、包管理器、格式化工具、性能分析、管理工具、以及测试工具。
.NET的IDE和代码编辑器
Visual Studio IDE:Microsoft开发的最佳IDE
Visual Studio是由Microsoft所提供的全功能开发平台,它涵括了程序代码的创建、修改和转换等全部过程。Microsoft通过IDE的多步支付计划( https://visualstudio.microsoft.com/vs/pricing/ ),能让更多的个人和企业使用到其丰富的工具集。它拥有一个Visual Studio社区,免费向个人开发者、以及仅有五个用户的非企业组织进行开放。
- 代码自动完成。该平台的IntelliSense代码编辑器( https://code.visualstudio.com/docs/editor/intellisense )支持基于语言语义和源代码分析的自动完成,并提供针对代码的提示和API代码的编辑。
- 存储库集成。开发人员使用Team Explorer( https://docs.microsoft.com/en-us/visualstudio/ide/connect-team-project?view=vs-2019 )将Visual Studio连接到项目或存储库中。该工具过去主要与Microsoft TFS合作,如今则提供了一整套丰富的选项来向GitHub、GitLab和Bitbucket,提供Git存储库方面的合作。另外,Team Explorer 也提供了简单、精细的图形化界面,方便用户在不离开Visual Studio窗口的情况下,开展大量日常任务。
- 数据库开发。SQL Server Explorer( https://visualstudio.microsoft.com/vs/features/ssdt/ )是一款VS工具,可直接用于构建Visual Studio和管理 SQL 数据库。因此,它显著地简化了数据库的各项操作。
- 生产环境故障排除。如果您怀疑出现了内存泄漏或死锁问题,那么通过捕获内存dump,并在Visual Studio中进行分析,就能够找到明确的答案。凭借着VS优势,您只需右击任务管理器,便可方便地使用本地计算机上的工具选项进行分析。而此类分析对于生产环境中的主机几乎不产生任何影响。
- 调试。使用Visual Studio IDE,开发人员还可以访问到大量的调试工具。
总之,如果您是首次上手.NET编程的话,Visual Studio是一个绝好的开始。
Visual Studio代码:适用于代码编辑的轻量级版本
如果您觉得Visual Studio过于庞复,而只需要代码编辑器的话,则可以选择轻量级的Visual Studio Code( https://code.visualstudio.com/ )。它是免费的,可用于许多工程场景的跨平台开发之中(如:Linux、Mac OS和Windows)。与Visual Studio类似,Code也能够完全支持IntelliSense的编码、调试、Git集成、以及扩展。与其他诸如JetBrains的Rider的代码编辑器相比,Visual Studio Code具有更好的可扩展性。它不仅可被用于.NET和C#,而且支持几乎任何一种编程语言。
JetBrains的Rider:一种全新的IDE
Rider是一款相对较新的.NET IDE,虽然只提供30天的试用,但是Rider能够支持Windows、Mac OS X和 Linux 上的.NET和.NET的核心应用。Rider具有运行速度较快,版本控制集成、以及广泛的反编译功能。Rider能够提供各种项目所需的控制台、Web和库。同时,它还包含有导航、搜索、重构、代码检查、快速修复、以及与版本控制系统无缝集成等功能。
与Visual Studio相比,JetBrains' Rider不但体验更好、性能更佳,而且其许可证的第一年只要139美元,而Visual Studio专业版每年的费用高达1,199美元,企业版更是每年5,999美元。
Visual Studio扩展
JetBrains的ReSharper:VS的必备附加组件
JetBrains的另一款产品是ReSharper( https://www.jetbrains.com/resharper/?gclid=CjwKCAjw7_rlBRBaEiwAc23rhvE2g2LuCdK1ErMYNIz1ZzMMwUsWeuYX8mQRUt315EIA5Y1ZTx2r4BoCe6MQAvD_BwE&gclsrc=aw.ds )。作为一种流行的开发扩展工具,它改进了重构、代码片段、模板引擎,并增加了额外的静态代码分析功能。另外,ReSharper可以检测各种错误、提供大量的自动修复、能够简化代码的修改,以及允许开发人员快速地浏览其代码。
通过分析代码的质量,ReSharper能够优化代码的性能、避免内存的泄漏、以及创建构造函数、条件块和新的类。
NDepend:彻底进行代码分析的绝佳工具
作为Visual Studio的插件,NDepend( https://www.ndepend.com/ )是另一种可以根据用户的特殊需求进行定制化代码分析的工具。它可以快速、准确地检查源代码、及其依赖项,并提供详细、精确的各类指标。
Visual Studio Cloud Explorer:能与Azure云交互的解决方案
Cloud Explorer( https://marketplace.visualstudio.com/items?itemName=ms-azuretools.CloudExplorerForVS )工具允许用户在Visual Studio里直接管理Azure云资源、检查其属性、以及执行开发人员的各项诊断操作。由于不需要访问Azure门户,用户完全可以在VS中看到所有的Azure云内容,因此大幅节省了时间。
包管理器
包管理器能够通过支持托管用户的各种包、模块、以及库,来实现整个团队的工作流,并在构建与发布上持续交付。因此,它是.NET生态系统的重要补充。
NuGet:用于创建、共享和使用.NET库的通用工具
NuGet( https://www.nuget.org/ )包管理器、及其Gallery是一个能够与.NET一起使用的集中式包存储库。它拥有大约15万个独特的软件包,和超过150万个包的不同版本。由于NuGet将.NET框架、库和模块引入到了.NET项目中,因此您最好将它与其他资源管理器工具一起使用。
NuGet Package Explorer:一种交互、浏览和发布NuGet包的新方法
该开源产品具有友好的用户界面,可用于创建、浏览、调试和分析NuGet包。同时,它拥有简洁且图形化的用户界面。
.NET库也适用于npm
近年来,为了方便给Web开发提供源代码,Microsoft Visual Studio还增加了对于npm的支持。同时各种现代化的Web实践工具,以及开源的代码,也都能够使用.NET Core在后端进行编写了。
调试和反编译工具
通过调试工具,开发人员能够查看代码,并在任何开发阶段识别问题的根本原因。为了进行排障,我们可以使用反编译工具,将已编译的第三方代码转换回C#程序。
WinDbg:适用于Windows的独立调试工具
由Microsoft分发的WinDBg( https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools ),是专为调试Windows应用程序而构建的。不同于使用调试工具内置的IDE这一传统方式,WinDbg可以在Visual Studio之外被运行。因此它更适合那些喜欢开源和免费软件的开发人员。
该工具用于调试内核模式和用户模式代码,检查故障转储和CPU寄存器。
JetBrains的dotPeek:一款不错的免费反编译工具
dotPeek( https://www.jetbrains.com/decompiler/ )是一款可靠的基于ReSharper的反编译器,它适用于调试第三方程序的代码集合。使用dotPeek,您可以在不直接访问源代码的前提下,检查第三方组件中出现的问题。可见,它是一款简单、高效且全面的工具。如果您需要根据某个应用程序特定版本的DLL文件,来恢复已有的代码,那么dotPeek就能够在最短的时间内恢复那些丢失的代码。
- LSpy:可以替代.NET Reflector
- LSpy( https://github.com/icsharpcode/ILSpy/releases )是一个.NET assembly浏览器与反编译器。它一款免费的工具,完全可以替代.NET Reflector。该工具可以将任意.NET DLL反编译回Visual Basic或C#。因此,如果您丢失了源代码,ILSpy可以让您了解各种框架DLL背后的代码工作机制。同时,您也可以通过各种插件( https://github.com/icsharpcode/ILSpy/wiki/Plugins )来增强其基本包。
格式化工具
格式化工具可以帮助用户通过遵循某些一致性的代码样式,来检测并修复各种样式上的漏洞。同时,您也可以在IDE中进行设置,以便它能够在您输入的时候,实时进行运作。
SonarQube:一种维护代码质量的简便工具
SonarQube( https://www.sonarqube.org/ )是一种开源的静态代码审查工具,它是由一组静态分析工具、数据集市、以及门户所组成,您既可以在其中管理技术债(technical debt),又能够分析.NET的托管代码。除了具有强大的社区支持,SonarQube还能够以添加插件的方式,提供各种额外的分析工具。SonarQube不但易于设置与配置,而且具有丰富的内置规则集,包括:编码标准、最佳实践、以及各种安全规则。
在实际应用中,SonarQube允许用户标准化其代码、并可视化已审查的代码覆盖率,进而提高了代码的可维护性、整体质量、以及审查的工作量。
StyleCop:.NET代码样式的可配置工具
StyleCop是一个本地代码分析器,它能够对源代码强制执行样式、以及一致性规则的检查。它允许开发人员选择如下三种形式的自定义规则:
- StyleCop Visual Studio扩展( https://visualstudiogallery.msdn.microsoft.com/5441d959-387f-4cb2-a8c0-9998dd1fa49f ):可以在Visual Studio中的任何文件、项目或解决方案上运行,无需修改任何源代码。
- StyleCop.MSBuild( https://www.nuget.org/packages/StyleCop.MSBuild ):运行在.NET 4.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来捕获perf的跟踪文件,然后使用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/ )消除了用户对于性能的猜测,并能够通过自动隔离每一个基准,来运行并测试多次迭代。它是一个小型编程工具,通过各种示例,用户能够测量和比较自己的算法性能,进而得到可靠结果,并提高生产率。
测试工具
Visual Studio MSTest:一种流行的单元测试框架
MSTest框架在Visual Studio产品系列中占据着独特的位置。由于.NET模式的单元测试会为每个生产项目准备一个单独的测试项目,因此您可以直接在MSTest中通过File->New Project来生成。而在测试时,您可以在IDE中观察到测试结果。
NUnit:优秀的测试工具
NUnit( https://nunit.org/ )非常适合在非Microsoft平台、以及自定义的测试中互动式运行。它不但能够实现快速的测试和对测试进行标注,而且可以针对给定测试的多个输入进行简单的规范化。不过,NUnit不能像MSTest那样,可以被无缝地集成到Visual Studio中。
同时,由于NUnit支持广泛的自定义属性,因此用户可以根据不同的参数分类,轻松地开展测试。此外,凭借着控制台运行程序,NUnit可以被轻松地将测试集成到CI流程中。
xUnit.NET:一种创新的.NET单元测试工具
xUnit为测试语言创建了一套直观的术语。它将测试划分为“事实”与“理论”,进而分别区分“始终为真”和“对于正确数据为真”等情况。作为一种扩展,xUnit可被用来开发.NET Core。
JetBrains dotCover:针对持续测试的代码覆盖工具
dotCover( https://www.jetbrains.com/dotcover/ )是一个代码覆盖工具,它可以分析用户的代码、产生单元测试的覆盖范围报告。作为ReSharper软件包的一部分,dotCover既可以独立于ReSharper工作,也可以与ReSharper协同工作。
用户可以将dotCover作为持续集成流程中的一部分,与JetBrains的TeamCity CI服务器一起使用,以查看单元测试的代码涵盖率。
其他实用工具
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的跨平台.NET Core工具。它可以直接在Visual Studio Code中调试各种脚本。由于支持NuGet包,dotnet-script代码可以实现相互关联,并存放在同一个文件中。
如何选择自己的.NET工具集?
那么我们该如何在.NET项目的各种可用工具集中进行选择呢?下面是一些经验与建议:
- 根据项目目标与简单化原则,我们不应在选择工具上花费太多的时间,而应注意工具本身的易用性。
- 根据日常工作中的实际需求,在开发过程中避免重复性的工作。
- 能轻松地部署到生产环境中,且带来的影响最小。
- 在业界和社区里有良好的声誉。
- 是否提供免费试用或完全免费。
- 学习曲线是否陡峭复杂。
原文标题:Top 23 Tools for .NET Development: The Experts' Choices,作者:Kseniia Bezugla
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
【责任编辑:庞桂玉 TEL:(010)68476606】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 高效文本标注工具如何成为 NLP 发展的强力助推器?
- iOS 端强力专业的 HTTPS 抓包分析工具 - Thor v1.1.0 开始 TF 公测
- React的ref是啥?强力一波
- 云资讯 高性能计算——数据大爆发时代的强力引擎
- 给 Swagger-Bootstrap-UI 加一个强力功能
- 重磅发布:最新产品发布强力扩展 MongoDB 数据领导力
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learn Python the Hard Way
Zed A. Shaw / Addison-Wesley Professional / 2013-10-11 / USD 39.99
Master Python and become a programmer-even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's re......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!