Bueno, un debate sin fin :-)
Sí, creo firmemente EF4 es definitivamente listo para el prime time - Microsoft ha hecho un trabajo excepcional de hacer frente a casi todas las molestias y problemas con la versión 1.0 de EF.
Está listo para el horario de máxima audiencia, si necesita todas sus características.
Linq-to-SQL es un mapeador OR sencillo, sin lujos, sin sentido, que mapea una tabla de base de datos a un objeto CLR, y eso es todo. Muy básico, muy directo, pero una capa bastante delgada sobre SQL Server.
EF4 por otro lado es mucho más
- un modelo conceptual de datos en su espacio objeto
- un modelo de datos de almacenamiento en su capa de base de datos
- una capa de mapeo entre la base de datos de dos
- -independiente
Así que si realmente necesita soporte para múltiples bases de datos (y no solo SQL Server), o si usted realmente necesita poder transformar la estructura de la base de datos en un modelo de objetos totalmente diferente: EF4 es un gran lugar para comenzar.
Si tiene una aplicación sencilla y sencilla de tamaño pequeño a mediano que solo necesita poder mapear fácil y rápidamente tablas 1: 1 a objetos, entonces no creo que EF4 se acerque aún más en términos de simplicidad y rendimiento a Linq-to-SQL.
EF4 es genial, ¡y si necesita potencia, vaya con eso!
Pero si sus requisitos son mucho menores, podría ser demasiado: continúo utilizando Linq-to-SQL (lo haré) y estaré contento con él. No veo ninguna buena razón para descargar Linq-to-SQL, todavía está totalmente disponible en .NET 4, ha sido bendecido con algunos bug fixes and improvements incluso, y estará disponible por al menos un par de años más.
¿Por qué tiene que ser uno de esos dos? ¿Por qué no NHibernate, subsónico, etc.? –
@mgroves, me estaba enfocando en la tecnología incorporada en .NET Framework, pero tienes razón, definitivamente existen otras tecnologías que podrían ser tan buenas o incluso mejores. – devuxer
Me gusta la forma en que Microsoft integra sus paquetes ORM con el IDE. Los proyectos de código abierto tienden a no hacer esto también. –