C# is a widely used programming language in enterprises, especially those that are heavily Microsoft-dependent. If you build apps using C#, you most likely use Visual Studio and have explored some of its extensions to supercharge your development. However, this list of tools might just change the way you write C# code for good.
Best tools for C# programming in the following categories:
- VS Extensions
- Compilers, Editors & Serializers
- Decompilers & Code Conversion Tools
- Build Automation & Merge Tools
- Version Control
- Testing Tools & VS Extensions
- Deployment Automation
Visual Studio Code is the most popular code editor for C# development. You can use Visual Studio Code with the C# extension for powerful editing, plus full support for C# IntelliSense and debugging.
- Excellent auto-complete with context-aware suggestions
- Built-in Git integration for better version control
- Huge list of extensions to further enhance the platform
Developed by Xamarin, MonoDevelop has many of the similar features as VS Code and is also cross-platform. With MonoDevelop, you can quickly write desktop and web applications on Windows, Linux, and Mac OS X.
- Standard features like code completion and debugging
- Also ships with Unity, a game engine, which enables advanced C# programming for apps like video games
- Code completion support for C#
- Code templates and code folding
- Multiple language support
A free, open source IDE for C#, VB.net, and Boo projects, #develop (SharpDevelop) is a lightweight alternative to VS Code.
- The usual features offered by Visual Studio including code editing, compiling and debugging
- A few advanced features include context actions and background syntax check
From the comprehensive Jet Brains suite of products, Rider is a cross-platform .NET IDE that’s based on the IntelliJ platform and ReSharper.
- Integrates seamlessly with other JetBrains products
- 2000+ code checks
- Context actions
- Support for the Unity game engine
- Supports both .NET Framework and .NET Core
Visual Studio Extensions
Provided by Microsoft, this is a great extension to quicken development with Visual Studio.
- Middle-click scrolling
- Solution error visualizer
- Intuitive interface
- Other versions are available for older Visual Studio versions
A productivity extension that simplifies coding with the popular jQuery framework, jQuery Code Snippets offers more than 130 snippets for Visual Studio 2012, 2013, 2015, and 2017.
- 130+ jQuery code snippets
- Support for all versions of Visual Studio
- Great for novice jQuery developers who can learn the ropes using this extension
CodeMaid is an open-source VS extension that can help you cleanup and simplify code in a variety of supported languages in addition to C#.
- Gets rid of unnecessary characters like white space from your code
- Reorganize your code
- Navigate code easily using a tree view hierarchy
- Supports multiple languages
- Comment formatting
Make your C# code easier to read and fix common errors with Refactoring Essentials, a VS extension with built-in code converters for C# and VB.
- Fix common typos and coding errors
- Find every style mismatch across your codebase
- Open source code so you can extend or improve it for your purposes
Compilers, Editors & Serializers
SlickEdit is a code editing tool that can boost productivity and improve the quality of your code. It’s a cross-platform code editor that supports more than 60 languages (including C#) on nine platforms.
- Compiles and debugs your code showing all errors for quick access
- Can handle very large files of code, as big as 2 TB
- Syntax expansion and indenting
- Keystroke emulations
- Backup history
- Multiple cursors and selections
- Standard and Pro editions available to accommodate your needs
Rextester (which stands for Regular Expression Tester) is a simple online compiler for C#.
- 5 seconds of CPU time per each piece of code
- 150 MB of memory for each piece of code
- Code runs in an appdomain with basic execution, reflection, thread control and web privileges only
11. C# Pad
C# Pad is a handy REPL tool for C#. It’s simple to use: simply enter your code and click “Go” to evaluate it.
- Quickly test C# code online
- Includes code completion
- Can be embedded on other websites
Another lightweight code compiler, Jdoodle supports 63 languages (including C#) and allows you to save your programs and share them with others with a URL. You can embed code created in Jdoodle to your website, use it for collaboration, online interviews, and more.
- Quickly test small pieces of code online without having to open the IDE
- Easy to share your code with others
- API coming soon
13. .NET Fiddle
A popular fiddle tool for C#, .NET Fiddle was inspired by JSFiddle.net and meant for quick, simple code testing without the need to open Visual Studio and create a new project.
- Lets you write, save, and collaborate on C# code
- Supports 4 project types: Console, Script, MVC, Nancy
- Also, supports VB.NET and F#
14. Telerik Fiddler
Telerik Fiddler lets you execute code online. It offers a range of functionality including web debugging, web session manipulation, performance testing, security testing, and more.
- Runs a series of tests like performance tests, web debugging, and security tests
- FiddlerCore lets you embed the Fiddler app into your own application so you can avoid the entire Fiddler UI, and yet get all the functions of Fiddler
Json.NET is a popular JSON framework for .NET. With it, you can create, parse, query and modify JSON, convert between XML and JSON, and more, while running it from anywhere (Windows, Windows Store, Windows Phone, Mono, and Xamarin).
- Serialize and deserialize .NET objects
- Query JSON databases
- Create, parse, query, and modify JSON with JObject, JArray and JValue objects
- Open source
A simple online editor to write and execute C# code, Scriptcs is designed with simplicity in mind to avoid hindering your productivity with overly complex tools and solutions.
- Avoids the bloat of a full-blown IDE
- Gives you flexibility and speed for simple C# coding tasks
- Manage dependencies with NuGet
- Relaxed C# scripting syntax
Decompilers & Code Conversion Tools
dotPeek lets you decompile .NET assemblies into C#. A free, standalone tool offered by JetBrains, dotPeek is based on ReSharper’s bundled decompiler.
- Powerful search and navigation features
- Decompile any .NET assembly into equivalent C# or IL code
- Supports multiple formats (.dll, .exe, .winmd)
- Save decompiled assemblies as Visual Studio projects
An open source decompiler based on Red Gate’s .NET Reflector, which was discontinued in 2011, Ilspy requires .NET Framework 4.0.
- Browse assemblies and decompile them to C#
- Save an assembly as a C# project
- Intuitive search and navigation features
- Navigation history
- Supports C# 5.0 “async”
- Decompilation to VB and C#
A capable decompiler from Telerik, JustDecompile is a free, open-source decompilation engine.
- Extensible with an open API
- Fast code navigation
- Easily switch between methods and assemblies in tabs
- Bookmark usages in loaded assemblies
- Create a Visual Studio project from a decompiled assembly
- Visual Studio extension for decompiling within VS projects
Telerik Code Converter converts VB code to C# and vice versa. A simple, yet powerful tool, Telerik Code Converter is easy to use, with an intuitive, straightforward interface.
- Cloud-based conversion that’s quick and hassle-free
- Uses NRefactory library for complex code conversions
- Built with Telerik UI for ASP.NET AJAX
Build Automation & Merge Tools
21. Cake Build
Cake (C# Make) is a C# version of the open source Make build automation tool. A cross-platform build automation system, Cake uses a C# DSL for tasks such as compiling code, running unit tests, copying files and folders, compressing files, and building NuGet packages.
- Available on Windows, Linux and OS X
- Built to behave in the same way as other CI systems
- Supports build tools including MSBuild, MSTest, xUnit, NUnit, NuGet, ILMerge, WiX, and SignTool
- Very extensible
MSBuild was launched by Microsoft in 2008. It’s not part of the Visual Studio platform, but it’s a good resource for your C# development toolkit for certain use cases, such as when you’re building code projects apart from a solution.
- Coming from Microsoft, it was widely used by many MS shops
- Microsoft has baked it into Visual Studio ensuring it doesn’t get orphaned
- Build multiple projects
- Build Win32, x86, x64 or any CPU platforms
- Build multiple configurations for multiple platforms
FinalBuilder is a great commercial option for a build automation tool. With FinalBuilder, you don’t need to edit XML or write scripts to automate your build process.
- Makes builds easy by including visual debugging
- Visually define and debug your build scripts
- Schedule scripts with Windows scheduler
- Integrates with Continua CI, Jenkins or any other CI Server
SemanticMerge understands your code and is designed to handle code that has been moved or modified, making it a powerful tool for team collaboration.
- Enables collaboration and a distributed approach to development
- Starts with structural merge, and then moves to more specific text based merge when conflicts occur
- Merges based on structure rather than location
- Deals with language-specific conflicts
- Avoids incorrectly identified automatic merges
- Maintain cleaner code and understand changes
Git really needs no introduction. It’s a free, open-source version control system – and the most popular version control system used today.
- Modern version control tool for today’s geographically distributed teams
- Includes strong defaults for conflict resolution, auto recovery, and more
- Cheap local branching
- Convenient staging areas
- Multiple workflows
TF Version Control is Microsoft’s alternative to Git, and it’s well-integrated into Visual Studio. It’s enterprise-ready, so it’s a good choice for teams of any size working with VS projects.
- Leverages Visual Studio features to provide a native experience
- Tracks code changes across branches
- Provides feedback before code is checked in
- Integrates with the most popular tools for CI and build automation
BitBucket is Jira’s alternative to Git and is also a capable version control tool – “the only collaborative Git solution that massively scales.”
- Collaborate faster with inline commenting options
- Host it yourself as the code is open sourced, or let Jira manage it for you
- Pull requests allow for more efficient code review approvals
- Uninterrupted access with BitBucket Data Center
- Unlimited private repositories
SourceTree is another Jira offering, a free Git client for Windows and Mac, with a simple Git GUI for managing your respositories.
- Supports Windows and Mac
- Visually interact with your repositories
- Simplified distributed version control
- Simple enough for beginners; powerful enough for experts
Testing Tools & VS Extensions
A tool to instantly test code snippets in C#, F#, and VB, LINQPad lets you query databases interactively.
- Has its own query language – LINQ, which is a powerful way to query databases quickly
- Great for learning C# as it gives you many of the features of an IDE without the bloat
- Query databases in LINQ (or SQL) — SQL/CE/Azure, Oracle, SQLite, and MySQL
- Rich output formatting
- Script and automate in your preferred .NET language
Selenium is one of the most popular testing tools available today. It automates web browsers so you can run tests at scale and with precision.
- Automate boring web-based administration tasks
- Create robust regression automation suites and tests
- Scale and distribute scripts across environments
- Build your own Selenium server or use a vendor-provided hosted option
ReSharper, created by JetBrains, is a Visual Studio extension for .NET developers. Use it to analyze code quality on the fly, eliminate errors, safely change the code base, and more.
- Provides on-the-fly code analysis
- Quick fixes for errors
- Assists with complex refactoring
- Multiple code-editing helpers
OzCode is a Visual Studio extension for C# offering powerful debugging tools so you can spend more time developing and less time debugging.
- Makes it easier to find and fix bugs right within Visual Studio
- Works great with ReSharper
- Figure out complex expressions with Magic Glance
- Powerful search, reveal and compare features
CodeRush helps you find and fix issues easily and, like several other testing tools in this section, is a VS extension.
- Visually highlights problems across the codebase and helps you spot issues quickly
- Quickly create new tests and test suites with shortcuts
- Easy refactoring
A lightweight developer tool for .NET and Java, Prefix shows you logs, errors, queries, and more in real-time. It works within your existing workstation – and it’s free.
- Provides a detailed trace of every web request
- No messy config or code changes
- Instant download; get immediate code insights
- View logs by request
- Find hidden exceptions
- View SQL queries
- Quickly pinpoint suspicious behavior
dotTrace, from JetBrains, is a profiler that helps troubleshoot performance issues and speed up applications.
- Understand how SQL queries and HTTP requests affect application performance
- View line-by-line profiling data and get specific performance metrics
- Get data on calls execution time
- Profile SQL queries and HTTP requests
- Profile static methods and unit tests
- Profile and visualize results within Visual Studio
ANTS Performance Profiler is a profiling tool for .NET code, including C#, that provides line-by-line profiling statistics.
- View performance data for SQL queries and HTTP requests
- Provides line-by-line results
- Shows historic performance over time
- Get insight into long-term performance
37. N Profiler
A fast, accurate performance profiler, N Profiler provides rich .NET performance data to save you up to 90% of optimization time.
- Find out the exact cause for performance issues – database queries, or long I/O times
- Performance metrics are organized in a Call Tree and can be viewed at the overview or details level
Retrace is the only developer tool that combines APM, logs, errors, metrics, and monitoring in a single platform to help you build better. It’s designed for production and pre-production servers and starts at just $10 per month.
- Collects performance data at the code level
- Application and server logging
- Application metrics from a variety of sources
- Error tracking and monitoring
- Works out of the box with your existing stack
- Free Trial
The leading deployment automation tool for C#, Octopus takes the reins where your CI tool ends, making it possible to automate complex application deployments.
- Provision and configure new machines to deploy your app
- Integrates with CI servers to extend build automation and CI processes into deployment
- Promote releases between environments
- Repeatable, reliable deployments
A CI build server that takes care of not just builds, but deployments too, Appveyor is robust, secure, and requires no setup to get started.
- End-to-end solution for builds, testing, and deployment
- Easy to use and requires no setup
- Isolated build environments
- Developer-friendly build configs using UI or YAML
- Built-in deployment and NuGet server
- Multi-branch builds
AppHarbor does more than deployment: it’s a fully-hosted .NET Platform-as-a-Service. It’s used to host everything from personal blogs to high-traffic web apps.
- Takes code from a source code repository and deploys it on its own hosted platform
- Instantly deploy and scale .NET applications using your favorite versioning tool
- Don’t worry about scaling your infrastructure to keep up with load, AppHarbor takes care of it all for you
More than a deployment automation tool, Jenkins is the most popular CI server that’s extending its reach to the deployment and delivery phases as well.
- Rich collection of extensions to suit every stack
- End-to-end solution from build to deployment
- Hundreds of plugins to support building, deployment, and automation
Docker.DotNet is a C# client library for the Docker API. With it, you can interact with the Docker Remote API programmatically.
- Can be installed via the NuGet library manager for Visual Studio
- Enables fully asynchronous, non-blocking, object oriented code in .NET
A powerful tool to containerize C# applications, Distelli helps you automate your container workflow from end to end. See this helpful tutorial for how to build and deploy a C# application with Distelli. This tutorial provides step-by-step instructions for building and deploying a Docker C# application.
- Automate your container workflow end-to-end using Distelli
- Deploys to Kubernetes for state-of-the-art container orchestration
With C# and .NET Core poised to be huge in 2018 and beyond, honing your C# skills will serve you well in the next few years. We hope you’ve found a tool or two that you can put to use today and improve the quality and productivity of your C# development. Let us know if there’s any tool we missed out on that deserves a spot in this toolkit.