Ask any developer what makes her coding life easier, and she will list several tools in her toolkit that help her perform a certain task. Whether it’s an IDE, a plugin, or even just a dependency library, these tools can shave off hours of development time. Most tools reduce development time for redundant tasks, but others just make coding easier. We’ve compiled a list of tools that every C# developer should download. Even if you’re a loyal follower of a specific toolkit, you should give these tools a try for future projects.
Refactoring can be a major pain if you don’t account for all of the reference changes. For instance, suppose you change the method name in a controller but forget to change it in the view. ReSharper can tell you that your code is now broken. ReSharper is a tool that runs in real time as you code and helps you catch errors as you go. It can save you hours of troubleshooting especially during refactoring changes. For the time it saves, it’s a small investment. A basic ReSharper license costs $299/year.
2) .NET Reflector
What happens if you lose your source code? What if you have a customer who sends you a .NET executable or web DLLs and he doesn’t have the source code? .NET Reflector lets you decompile and analyze the code base even if you lose the source code. It’s a great addition to disaster recovery should you lose the source code or need to recover from a compiled version for a customer. You can also debug an executable as if you had it running in Visual Studio’s IDE. If you are using a DLL and you don’t have access to its source code, you can debug errors even if the decompiled code is a little hard to read.
There are times even as a backend coder that you’ll need to do minor tweaks to an image. You don’t always have the luxury of having a designer around to help you. You don’t have to be a designer to resize or crop an image. Basic image changes can be done with numerous tools. Designers have Adobe Photoshop, but that can be an expensive investment if you only use it a few times a year. A good free alternative is Paint.NET. It won’t give you the advanced features you’d find in Photoshop, but it allows you to make minor changes to high-end graphics without losing much of the quality.
Visual Studio has evolved to include change control even for basic, individual users, but change control (included in Team Foundation Server (TFS) for enterprise clients) doesn’t have the easy IDE for identifying changes in your code. It’s good if you need to see differences between a previous saved file and a current one, but it’s much easier if you incorporate WinMerge into your toolkit. It’s also free and open-source. With WinMerge, you review two files side by side and view the differences between the two documents. It’s good for changes that were made that aren’t included in change control or miscellaneous project files that you don’t have stored in your Visual Studio change control solution.
6) Microsoft MSDN
Microsoft Developer Network is the home of all Microsoft APIs and reference material. Any .NET developer knows that it isn’t the language that’s hard to learn: It’s the .NET library and code base with numerous classes. You can’t memorize them all, so Microsoft has its MSDN for reference. You can find any class from the .NET framework or get a complete list of classes and any methods and properties included in the class. MSDN has some examples as well to help you understand how to use the class.
We have no picture for this one because it’s a reference tool on Microsoft’s website. Just open the site and type your search to find your reference material.
Visual Studio and TFS work well together for a development team, but sometimes your code must be deployed to other teams or you might want to publish source code as open-source. Git is a source control and versioning system useful for enterprise environments where several teams might like to download and work with your code. TFS works with Microsoft Active Directory, but you don’t always want to give access to random teams on the network to a specific solution. You can deploy your code base to Git after developers are ready to deploy and let these external teams review and download it. It’s also good as a documentation repository and lets you build a community within the development industry based on your code.
8) VMware or Access to a Windows Version With Hyper V
VMware is a common application that lets you build virtual machines on a physical machine. In an environment where your application must support different Windows versions, you need a virtual machine solution to test your application, especially if it’s a desktop program. VMware has several different licensing options, and it’s good for older development environments such as Windows 7.
If you have Professional or Enterprise versions of Windows 10 or Windows 8, you have access to Hyper-V, which lets you create and manage virtual machines on the desktop. You can also use Hyper-V if you have access to a Windows 2012 Server.
Miscellaneous Tools and Software
There are numerous tools for a .NET developer, and each environment will require you to adapt to its own requirements. Depending on the way you work (either freelancing or through full-time employment), you need other basic software in your toolkit.
Of course, you need Visual Studio but it also helps to have the Pro version of both VS and the operating system. For instance, Visual Studio Pro lets you work with TFS for collaborative development. Pro and Enterprise operating systems give you more networking options to work with domains and allow you to set up Hyper-V.
You will probably need a communication tool such as Skype as well. Some development teams use BaseCamp for managing projects and updates and sharing files. Microsoft SharePoint gives you the ability to create a shared website with documentation and Wiki material for application customers or internal employees who need a tutorial to work with the application.
Alternatives exist for most of the tools in this post. Not every tool is right for every person or project, but give some of these a try to see if they make your coding life easier and help manage testing. There are free trial versions available, and all have affordable licensing once the trial is over.