Estoy un poco avergonzado de decir que nunca he usado un ORM; como recordarán, la mayor parte de mi experiencia profesional es piratear con Classic ASP y el pequeño .NET que hago tiende a ser solo de mantenimiento.Algunas sugerencias sobre qué .NET ORM para ver el aprendizaje
Para mi propia carrera, así como en la preparación de un nuevo proyecto en el trabajo (¡hecho finalmente en .NET!) Estoy buscando agregar un ORM a mi conjunto de habilidades: ser el masoquista que soy también lo voy a hacer mira TDD mientras estoy en esto para este proyecto.
De todos modos, estoy usando .NET 3.5 para el proyecto (o pienso hacerlo, de todos modos), así que estoy tratando de decidir qué ORM quiero elegir; como dije, no estoy realmente familiarizado con ellos, pero sé en general lo que se supone que deben hacer y cómo lo hacen. Mis elecciones se basan básicamente en NHibernate o LINQ/Entity Framework. No he usado ninguno, pero he visto algunas demostraciones de LINQ2SQL y de NHibernate.
Parece que NHibernate es más robusto en general (Linq2Sql ni siquiera es un "verdadero" ORM), así como muy utilizado en la comunidad ALT.NET, que quiero explorar más. Sin embargo, EF es la oferta de Microsoft y, como tal, será utilizada ampliamente por la mayoría de los equipos de desarrollo que usan lo que sea que Microsoft saque y no buscan ninguna alternativa.
He oído cosas buenas y malas sobre EF, pero quiero elegir algo que me brinde una buena base y que se vea bien para otros empleadores si/cuando encuentro un mejor trabajo en una empresa con una equipo de desarrollo real.
EDIT: Debo agregar que, si es importante para elegir un ORM, la aplicación tendrá que tratar con una base de datos existente.
EDITAR (15/02/2009 18:48): La única base de datos que usará es SQL Server 2005 Standard, ejecutándose en Windows Server 2003. Dado que esto es para un proyecto para el trabajo, mi objetivo es para elegir algo que no me tome mucho tiempo para ponerme al día (ya que voy a necesitar ser productivo y "Aprender una nueva herramienta" no se verá bien para administrarlo) pero algo que será mejor que lanzar mi propio DAL. En ese momento no he decidido si la aplicación será un cliente inteligente o una aplicación ASP.NET, pero una parte de ella probablemente se hará con ASP.NET MVC.
Lo uso y me gusta. Havent usó NHibernate, así que tal vez mi marco de referencia esté arruinado. – geofftnz