I've been working on a suite of user management controls for .Net web applications. I have been building a paged, sortable grid that lists users and allows you to click on them and edit them in another page. I am building in all sorts of features like password resets, administrator user and profile editing etc.
So far I have used NHibernate and it has not been the best programming experience of my life! Mostly the problems I have with NHibernate relate to the poor documentation. The documentation on
http://www.hibernate.org/5.html is difficult to follow and rarely discusses the different approaches to real-world problems. For example, I had a lot of trouble working out how to save hierarchies of objects. I have ended up using a combination of the Flush(), Save() and SaveOrUpdate() methods. I have been using good old "trial and error" to work out which is the right approach whenever I want to save.
This leads me on to Microsoft's latest innovation, the Entity Framework. I have been taking a look at
http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx and it looks a lot simpler than NHibernate (from a programming point of view). I think my next step is going to be porting some of the Data Layer of my control suite over to the Entity Framework and see how it feels.
I like to support Open Source initiatives, but not when they make my life so hard...