We all have our opinions on what we think are essential tools, practices, etc. Here are the ones that help me get things done right now:
Resharper – I couldn’t live without this anymore. Productivity just goes through the roof. My last employer wouldn’t buy it so I bought my own copy (and then found another job!)
Nuget – The Visual Studio Add-in. Makes managing library references a doddle.
Automapper – A great way of mapping between domain objects and DTOs. I use it mainly with IDataReader when having to work with stored procs in my current job.
NHibernate – Great ORM but steep learning curve. At one time I wanted to use it everywhere. Over time I’ve mellowed a little bit and, especially with the move toward CQRS architectures, I realize that I can leave ORMs behind forever. Of course, you can still use an ORM with CQRS but it’s nice to have the option not to.
Castle ActiveRecord – Many times now, where quick data driven web sites are required, I see more value in what the Ruby on Rails guys are doing with ActiveRecord. For this approach I tend to believe Castle ActiveRecord (built on top of NHibernate) is the better way to go. Of course, it’s all about trade-offs, etc. and losing POCO or violating SRP in exchange for a massive productivity boost is okay by me as long as the app itself is not that complex.
Castle Windsor – IMHO, the best inversion of control container around.
NUnit – The one and only TDD tool I need. I even tend to do the BDD context/specification style with nothing but NUnit. It’s all I need.
NServiceBus – A fantastic ESB that once you grasp the basics, opens up a whole new world of possibilities.
So, those are mine but I’m open to suggestions for others that I’ve missed or am unaware of.