I'm starting a new project at a client tomorrow, and I think I'm going to go with a lot of Alt.Net stuff on it. Specifically, I'm looking into using:
- Visual Studio 2008 SP1
- .NET 3.5 SP1
- PostSharp (for AoP)
- Rhino Commons (for simplifying access to NHibernate and such)
- Castle Windsor (IoC and DI)
- Rhino Mocks (Test Mocks)
- NHibernate (Database Access)
- MbUnit (Unit Testing)
- NLog (or log4net)
I actually would really have liked to try Linq, but I'm using an Oracle database so that goes right out the window. I don't even want to try to use EF as I don't need that much of a hammer on this...
I've only got a nominal amount of database reading and writing, so I think I'm going to front this access with the Rhino Commons and Castle Active Record. I really don't want to write any ADO.NET or NHibernate XML files, so this looks like a good way to go. I also want to use DI to be able to inject either database mocks or actual data classes into tests. I want to also be able to run this in disconnected mode, so some mock data would be great when provided through DI.
I've used MbUnit before, so I'm staying with that, although I'm going to move up to the new version which apears to have some more features.
The big thing I want to move into is the AoP model (as well as DI). I just got the latest version of PostSharp installed and it worked great, at least with initial tests. I'm big on logging in the applications, but I really have been wanting to do cross-cutting instead of explicitly coding it all over the place. This looks like it will solve this nicely for me, as well as combined with some DI I should be able to inject null loggers into the system for optimization.