Dot Net development tools?
February 8, 2013 9:16 AM   Subscribe

Any suggestions for good Dot Net development tools? I'm interested in suggestions for a wide range of tool types, for example (but not limited to) unit testing, code coverage, style enforcement, bug finders, profiling, code/API documentation generation, installer/distributable packagers, continuous integration, build systems, report generators, static code analysis, decompilers, IDE enhancements, etc., etc.

Free or cheap is preferred, but not essential.

I'll be doing both backend stuff and GUI stuff, mostly for the desktop environment but probably with a little bit of web server stuff too.

I'll be using Visual Studio 2012 Professional, and targeting version 4.0 of the Framework. Likely almost exclusively using C#, maybe with a little bit of C++ and maybe a tiny sprinkling of ASP (or whatever the modern Dot Net ASP-like thing is).

I am (I believe) a competent programmer with experience in a wide range of languages, development environments, etc., but I'm pretty new to Dot Net. I was expecting to get into it a few years back, and looked into it for a little while, but then moved on to other things before getting very far. So I do know a little about it, but not a lot, and I imagine that what I do know is now out of date. It's now once again looking like I'm going to be getting into it, though.
posted by Flunkie to Computers & Internet (11 answers total) 10 users marked this as a favorite
posted by djb at 9:21 AM on February 8, 2013 [1 favorite]

I second ReSharper...
posted by Fidel Cashflow at 9:39 AM on February 8, 2013

Yes, Resharper is essential. Not free, but totally worth it if you're developing professionally.

I'm using TeamCity for continuous integration (free for small numbers of projects) - which is also from JetBrains, the makers of Resharper. I bought dotTrace, a profiler, from them before Christmas in their End-of-the-world sale - I've heard good things about it, but haven't any personal experience of it yet.

NUnit is a slightly better unit test framework than the standard MS test framework.

The modern ASP-like thing is ASP.NET MVC. ASP.NET WebForms also exists, but I wouldn't start a new project in it.

You'll also want to look at NuGet - the .NET package management system.
posted by siskin at 10:11 AM on February 8, 2013 [5 favorites]

Seconding ALL of siskin's recommendations.
posted by mkultra at 10:18 AM on February 8, 2013

WiX is much better than VS deployment projects for making MSIs. You might want NAnt for doing stuff in TeamCity or running your unit tests from the command line if you are that kind of developer. You might want PostSharp to do fancier aspect-oriented programming, but I'd probably hold off on that until you know you need it. If you're doing anything with JSON you may want to look at Json.NET.
posted by inkyz at 10:59 AM on February 8, 2013

EAZfuscator.NET obfuscator.
Inno installer.
posted by Dansaman at 11:57 AM on February 8, 2013

The popular Nuget package list will help you with libraries to use in code.

The popular Visual Studio 2012 addins page will help with IDE enhancement.
posted by blue_beetle at 2:59 PM on February 8, 2013

Selenium for automated web testing, fakeiteasy is a good mocking framework, open cover is a free test coverage too, dot peek is a free assembly decompiler.

If you are building web sites or services you may want to look into alternative frameworks than what MSFT provide -nancyfx is a Sinatra inspired web micro framework, ServiceStack ormlite is a nice alternative to entity framework.

You can customize the VS editor fonts and colors with settings files from
SublimeText 2 is handy code editor when you don't want to crack open visual studio.
posted by askmehow at 7:42 PM on February 8, 2013

refactoring: ReSharper
style: StyleCop
scc: AnkhSvn for Subversion - other plug-ins around for GIt etc
ORM: the standard is Entity, but I prefer StackOverflow's Dapper.Net Library. Not actually an ORM, but pretty sweet generic methods for data access
Unit Test: NUnit is still around, but the built-in testing suite is, well, sweet
Mocking Library: Moq
Logging: Log4net
Lots of adaptable source at Microsoft Patterns and Practices Enterprise Library
For the Web: just forget about WebForms and learn the ASP.Net MVC Paradigm
Web Services: While WCF offers the greatest flexibility and 'tune-ability' the WebApi has a less significant learning curve
posted by j_curiouser at 11:13 PM on February 8, 2013

Pretty much everything I would say has been covered, but I'll repeat a bunch of stuff anyway. Resharper is great, I would say it is particularly great if you are relatively new to C# since it will point out flaws in your code and better ways of doing some things on top of all the refactoring stuff.

I use the VsVim plugin to Visual Studio, which gives you a pretty reasonable emulation of Vim.

GitExtensions was the best of the Windows Git GUIs when I looked, if you need such a thing, and it also comes with a plugin for VS. Not in anyway .net specific, but we also use GitHub and I'm a big fan.

I've recently been using Linqpad quite a bit just to play with new language features and try things out. It is billed more as a way of playing with LINQ or querying a DB, and it does that well, but you can also use it as a general .net scratch pad. Very handy for playing with how some new library works. It's free, or you can pay to get Intellisense (and nuget support at the upper level).

We use Teamcity for builds and I have no complaints. NUnit for tests, NSubstitute for mocks and I like FluentValidation, which allows you to write Car.Wheels.Count().Should().Be(4) instead of Assert.AreEqual(4, Car.Wheels.Count()) in your tests.

I'm also a big fan of Caliburn.Micro if you're after a MVVM framework for WPF and I believe the new Win 8 stuff.

We use Castle Windsor for IoC, and it is very powerful, although I think some of the API is a bit arcane. I'd be tempted to use Autofac if I was starting something new.

For test coverage and profiling I'm using the JetBrains stuff for the same reason as siskin, they had a big sale. They're handy to have but I could probably live without them. And they have a free decompiler, dotPeek, that integrates nicely with Resharper.

Resharper is the one thing that I have absolutely no regrets about buying with my own money when management were dragging their feet over paying for. And I happily buy the new versions as they come out. Truly a fantastic bit of software.
posted by markr at 2:09 AM on February 9, 2013

ASP.NET MVC with Razor templates all the way - so much more straightforwards and less crud than Webforms.
posted by Artw at 6:13 AM on February 9, 2013

« Older Is there a secret to a perfect...   |  Sorry for the anonymous post. ... Newer »
This thread is closed to new comments.