Lest my previous post is interpreted as my not liking the .NET platform, here’s a collection of things that are great (and which you will have to prise from my cold dead fingers).
- Lambdas, Extension Methods and the Enumerable and Queryable classes. How did we ever live without them?
- ReSharper. Visual Studio is merely my ReSharper hosting environment. Please JetBrains, write a .NET IDE.
- TestDriven.NET. So much faster than anything else out there for running unit tests. Does one thing, does it amazingly well.
- Gallio and MbUnit. You can just tell when using it that it’s written by people who rely on it. My unit testing framework of choice.
- StructureMap. I’ve used a number of DI frameworks but StructureMap is the easiest to use and extend. Contains magic in all the right places.
- NHibernate. Admittedly not the easiest ORM to learn, but there’s no real challenger in terms of capabilities on the .NET platform.
- .NET Reflector. Not an every day tool, but invaluable for a variety of complex problems that would otherwise be major roadblocks. Highlights one of Microsoft’s wiser decisions (to not obfuscate the framework assemblies). Often the best option for examining an assembly even if you have the source code.
- ASP.NET MVC. Watching the development of this framework was an enormously positive thing, that kind of responsiveness to input and openness should be the standard for framework development not the exception. Plus it’s enormously superior to the mis-abstraction that is ASP.NET.
- AutoMapper. One of those “why didn’t I think of that” ideas that makes you feel like an idiot. Given how many errors I’ve found in handwritten mapper classes recently I’m not going back.