¿Las mejores prácticas actuales de Microsoft para construir un nivel de datos .NET? ¿Y la realidad?

13

El equipo de desarrollo con el que estoy trabajando se mudará a .NET 4.0 pronto, sin embargo, la biblioteca de clases de acceso a datos que usamos todavía usa ADO.NET "clásico", lo que significa SqlDataReader , DataTable y similares. Mientras tanto, parece que Microsoft y probablemente el resto del mundo está avanzando con Entity Framework y WCF Data Services . No encontré nada en MSDN que indicara cuál de las tecnologías de acceso a datos Microsoft considera las mejores prácticas.

¿Microsoft tiene alguna preferencia? ¿Qué acceso a los datos usa la mayoría de las personas actualmente? ¿Hay buenas razones para quedarse con ADO.NET classic y no pasar a Entity Framework?

T. Webster
fuente
Buena pregunta. Una cosa: "capa de datos" puede ser un término más preciso. "Niveles" también pueden significar partes de un sistema distribuido ejecutable en cajas separadas.
azheglov
1
@azheglov, "capa de datos" fue mi primer pensamiento, pero luego miré esto y pensé en seguir cualquier terminología que vi en MSDN: msdn.microsoft.com/en-us/library/bb384398.aspx . Sin embargo, estoy de acuerdo en que la capa de datos es más precisa.
T. Webster
Webster: gracias por mirar hacia arriba y clarificación
azheglov

Respuestas:

4

En mi empresa estamos usando el EF. Es un buen ORM, adecuado para nuestro pequeño proyecto. En realidad, las personas usan EF o NHibernate. Ambos marcos son buenos. EF tiene un excelente soporte de MS y puede encontrar excelentes herramientas incluidas con Visual Studio. NHibernate se considera mejor que EF pero hay una "curva de aprendizaje" más grande, por lo que pasarás más tiempo adoptandola.

Creo que si estás en el "clásico" de Ado.Net prueba el EF. Cree un proyecto simple y reemplace algunos de los métodos DAL. Verifique cómo funciona y cómo puede administrar / modificar el código. Compárelo con los métodos simples "SqlDataReader" y decida cuál es mejor. Recuerde que cada cambio de tecnología necesita algo de tiempo para su adopción, por lo que debe calcular si este cambio será beneficioso para su empresa a largo plazo.

Michal Franc
fuente
5

A mi equipo le resulta un poco difícil la realidad de mudarse a EF. No es porque EF sea malo o no sea útil, sino que el alcance de convertir nuestras capas de datos existentes (bastante masivas) de conjuntos de datos fuertemente tipados que se originan de ADO.Net framework 2.0 a EF es solo un trabajo intenso que realmente no gana nosotros cualquier cosa Para cosas nuevas todavía estamos bastante desgarrados porque todos tenemos opiniones y objetivos. Para nuestros proyectos Silverlight, nos estamos centrando únicamente en los servicios EF y RIA, pero para los proyectos web (formularios web y MVC 3) estamos utilizando principalmente Linq2Sql.

Estamos encontrando menos dolores de cabeza y un desarrollo más rápido usando Linq2Sql, pero sé que Microsoft está impulsando la agenda de EF (particularmente con los servicios WCF y RIA). Linq2Sql no irá a ninguna parte, pero todos los juguetes nuevos y características interesantes se centrarán en EF. Diría que si tiene una opción desde el principio, EF sería un buen lugar para comenzar. Si ya está a mitad de camino, no sé que será muy fácil cambiar.

Joel Etherton
fuente
3

Entity Framework es el camino preferido. LinqToSql será compatible y mantenido, pero el enfoque de desarrollo en el futuro está en Entity Framework. Elección entre ADO.NET Entity Framework y LINQ to SQL

klir2m
fuente
y que usas actualmente
T. Webster
2
Creo que todos están usando linq2sql
cnd
@nCdy: Si bien algunos miembros de nuestro equipo han denunciado que Linq2Sql es demasiado "hablador", todos somos de la opinión de que EF genera automáticamente demasiada basura innecesaria que L2S simplemente pasa por alto.
Joel Etherton