Free stuff for Open Source .NET development

Free stuff for Open Source .NET development

For the past few years that I've been been working on OpenCover I've had the opportunity to use a number of tools during its development, a few of those are commercial tools that have been made available for free to developers of Open Source projects or just to the project itself because I asked nicely.

Some of those tools I still use and some just carried the project through part of its journey so I thought it would be nice to give those tools a shout out and perhaps other developers of Open Source projects in this space may find them useful.

Development

Visual Studio - Community Edition - When I first started developing OpenCover I had been previously supporting PartCover which I had upgraded to support .NET4 so that we could use it for work. Then as I started planning/developing OpenCover I was lucky to have been given a free MSDN licence. Since those days however Microsoft have decided to release a Community Edition of Visual Studio that we developers (subject to some restrictions) can use the latest and greatest tooling and really keep ahead.

GitHub - Unless you've been living under a rock for the past few years you probably know what GitHub is; for those rock dwellers it is a source code repository for those using Git

Resharper - created by JetBrains and probably the mainstay of most .NET developer toolsets at work (after Visual Studio of course). If you have used ReSharper (or any of the JetBrains) tools you'll know just how more productive you become when you use their tools.

NDepend - was one of the earliest supporters of OpenCover. NDepend also consumes the coverage output from OpenCover (after converting it to the NCover format) and integrates that with its static analysis of your code to produce a wonderful dashboard of your code.

DependencyGraphSnapshot

BitBucket - similar to GitHub it is a source code repository but supports Mercurial as well as Git.

DotPeek - another great tool from JetBrains and is free. It integrates well with ReSharper but is missing some features such as show IL; when I need to go that low level I use ildasm or more often than not I use ILSpy.

Continuous Integration

Bamboo - another tool provided by Atlassian, this was the first build system used to build OpenCover based on commits pushed up to GitHub. It wasn't totally free as I still had to pay the compute usage of the windows image I was running in AWS but it rarely went over $5 a month so I can't really complain. It was quite configurable and as I already had a command line build script it was easy to set up and integrate. It was lacking a few features at the time such as building on pull requests etc but it was useful as it meant that I could check that anything I pushed would build on another developer's machine.

AppVeyor - is awesome, I can't rave enough about how great this CI system is for .NET developers. It's so easy to set up that I use it on some other .NET projects that I am involved with e.g. OpenCover.UI and AccountRight Live API SDK. It works with pull requests and the nicest thing is that it also integrates with Nuget/MyGet and GitHub so I automate the pushing of releases by just pushing the code to a specific branch.

Reporting

ReportGenerator - is a great tool for visualizing the output from OpenCover.

Coveralls.io - I use Coveralls to display online the test coverage of my projects, yes I actually use OpenCover to get coverage statistics of OpenCover. The online nature means that any contributors of pull-requests can get that coverage feedback.