I am working in a Microsoft .NET shop where it is okay to use NHibernate or ADO.NET EF. What guidance should we be using about when you should choose one over the other?
For example, it seems like when writing a Silverlight app the EF -to-> ADO.NET Data Services -to-> Silverlight would offer a productivity boost, and provide you with a REST service API for no extra effort.
What other things should help guide you on an app by app basis?
UPDATE (based on comment):
This one is slightly useful What differentiates Nhibernate from other ORM’s? the others go off into weird tangents (like SubSonic) and don’t directly compare the two. I guess I’m specifically looking for people who use both, and decide on a project by project which one they will use.
In a nutshell, EF has no Persistence Ignorance support out of the box. When i first tried building a solution with EF last year, i was a bit annoyed that you can’t have POCOs in your application. I wanted a higher degree of decoupling with my model so i ended up switching to NHibernate. Since then, someone’s written an EF POCO adapter. http://code.msdn.microsoft.com/EFPocoAdapter – however its really just a codegenerator that generates an adapter layer to map your objects.
For some reason, my app ran a bit faster under NHibernate as well. Take that with a grain of salt because i was new to configuring either solution.