2015-03-10

.NET Programming Tools

There are a set of tools that I use for .NET Programming. I am pretty conservative about buying tools, so there needs to be a lot of bang for the buck to make a tool worth paying for. Free is always good. Here is the set of tools that I use:

Visual Studio is, of course, the primary environment for developing .NET code. As mentioned in a previous blog post, Microsoft has now made Visual Studio Community Edition free for small companies. Before that I was buying the Professional Edition, which is essentially the same. I wish it had a few features that are in the more expensive editions, but it does almost everything I want.

Reflector is an essential tool. It allows decompiling a .NET assembly into its source code. This is useful in many ways. I've used this to see how something was implemented, seeing what the name of the actual resource is inside an assembly, checking .NET libraries for security issues, and translating C# into Visual Basic code, among other things. I can't imagine working without it.

StyleCop is a tool that complains about bad coding practices in C# code. It produces warnings about bad formatting problems, security problems, internationalization problems and so forth. It can complain about comments and formatting, which Code Analysis cannot. It can be extended. I have added several rules that are not in the standard set.

StyleCop+ is an addition to StyleCop that adds additional rules. The defaults, particularly capitalization, are not exactly compatible with my coding style, but everything is configurable. By changing a number of rules, this helps with formatting the code better.

Atomineer is a tool for reducing the tedium of documenting source code. It does a great job of putting the headers on every file, class, method, property, and everything else. It has rules for what it constructs. It's not perfect, but it is a great start for the documentation that needs to be put in place. The cost is well worth it. There's a free tool called GhostDoc, but it is not as good as Atomineer.

Resharper is a tool a lot of people swear by. I'm actually not its biggest fan. However, it does make certain operation much easier, such as resorting methods and properties.

Caliburn.Micro is a library that makes programming WPF and Silverlight much, much easier. It's free from NuGet. I've posted a number of articles about using it.

NLog is a logging tool for .NET. Free from NuGet. It allows you to log stuff to many different places by just changing the config file.

InstallShield Limited Edition is distributed free with Visual Studio. You can pay more for the full version. I find the limited version does what I need. In a few cases I have to clobber it into doing what I want. I created a program that modifies the config file when I do a release. I also need to do a network share back to the local machine to solve one problem with file locations. With a few workarounds, though, it does the job.

HTML Help Workshop is an ancient tool for creating help files. It hasn't changed in probably 20 years, and there still doesn't seem to be anything from Microsoft that's any better. Creating help files has always been way more trouble than it should be. Still, with this tool and Microsoft Expression Web, I can get the job done.

Microsoft Expression Web is a tool that is now abandoned by Microsoft. However, you can still find it on their web site for free. I only use it for working on help files, for which it works just fine.

GIMP is a free image manipulation program. I use it for creating icons, bitmaps, gifs, and jpegs for use in programs. It does everything that I used to use Photoshop for, but for a much better price. It takes a little getting used to, but works pretty well for what I need.

Team Foundation Server using VisualStudio.com. This allows me to perform project source code control and bug tracking. I have previously run this on my own server, but I find it more convenient to let Microsoft run the server, since I am sometimes on the road, and getting the proper holes punched into the firewall to allow remote access is difficult.

Code Contract Tools is a free download from NuGet that adds Code Contracts to .NET. This is a very useful tool for proving code is correct. It requires a lot of work to get set up right, but it's found a lot of very subtle problems in my code.

Productivity Power Tools is a free extension to Visual Studio that adds a number of features that I use. Available from NuGet.

StopOnFirstBuildError is a simple free tool that does just what it says. The moment it gets a build error, it stops the build. I am not interested in continuing the build past the first error. Available from NuGet.

XAML Styler is a free Visual Studio extension that reformats XAML code to be much nicer. Available from NuGet.

No comments :

Post a Comment