My default stack

Before you write this off as one of those ego posts that… no, it’s pretty much an ego post. I offer it in the chance that may be useful to somebody somewhere.

This is a list of the software / libraries I use for new projects.

The basics

  • Visual Studio 2010
  • ReSharper 5.1
  • .NET 4.0
  • ASP.NET MVC 2.0 - I use a number of open source libraries which haven’t yet updated to MVC 3.0 Beta
  • Reflector - is it possible to survive without this?

Database

  • MongoDB - I’m a recent convert from SQL Server. The so-called NoSQL debate goes on, but for most web projects MongoDB makes a lot of sense.
  • NoRM - .NET driver for MongoDB

ASP.NET

  • As mentioned above, ASP.NET MVC 2.0
  • Spark view engine
  • dotless - I’ll generally use this if I’m writing the CSS myself
  • Microsoft Ajax Minifier - I use the MSBuild task at compile time (by the way, was there ever a worse name? It minifies JS and CSS, and really has nothing to do with AJAX)

Code

  • Dependency injection: Managed Extensibility Framework (MEF). I used to use Ninject, and still love it, but in most cases MEF is enough, and it’s built-in to .NET 4.0.
  • DynamicImage - A not-well-known (so far) but excellent library from Sound in Theory which takes care of all image manipulation.

Testing

  • NUnit - Don’t really need to say much about this one.
  • dotTrace?topDT
  • I don’t use a coverage tool yet, but I’m a big fan of JetBrains, so I’ll probably check out dotCover soon.

Deployment

  • MSBuild script to build solution, run NUnit tests, and call msdeploy to sync with live (or staging, depending on the project) IIS website
  • TeamCity running on build server to detect changes in source code repository and run MSBuild script