En una capa de acceso a datos que consulta una base de datos y devuelve un objeto enumerable de resultados, ¿cuáles son las ventajas de devolver una lista de objetos Dog con propiedades Nombre, Edad, etc., en lugar de una DataTable con columnas como "Nombre "," Edad ", etc.¿Cuáles son las ventajas de utilizar POCO en DataTables?
Respuesta
algunos:
- seguridad Tipo
- serialización no sólo a XML pero JSON, binario ...
- legibilidad
- Más ligero
- posibilidad de añadir comportamientos
- Posibilidad de definir DataAnnotation y la lógica de validación
- Habilidad para usar ORMs
cuando menciona la serialización, ¿se refiere a alguna capacidad automática de .net para serializar? POCO, ¿pero no sabe cómo serializar DataTables? –
Eso es correcto. Serializar poco es automático, solo necesita usar el serializador correcto – Aliostad
Si usa una DataTable simple, termina con cadenas mágicas en todas partes (incluso si usa constantes). El código para extraer los valores termina siendo torpe y propenso a errores, básicamente porque terminan teniendo que suministrar datos (nombres, expresiones, etc.) donde realmente está tratando de expresar el código .
Cada vez que se llama a DataTable.Select
o DataTable.Sort
, o acceder al indexador DataRow
, imaginemos cuánto menos pelusa - y menos posibilidades de error - que habría si estuviera utilizando un modelo inflexible de tipos. Esto podría ser un conjunto de datos fuertemente tipado, por supuesto, pero incluso entonces encuentro que generalmente hay menos fricción con las POCO.
Además, las POCO generalmente requieren menos pelusa que el código de prueba que DataTables.
Parece que los POCO son superiores. ¿Por qué uno querría usar tablas de datos? ¿Son solo una reliquia del pasado? –
@TheMuffinMan: No del todo ... si en realidad no necesitas hacer nada con los datos aparte de mostrarlo en una grilla, por ejemplo, es más simple usar un 'DataTable'. O si está utilizando consultas con una forma dinámica. Si estás acostumbrado a Json.NET, es como usar 'JObject' en lugar de deserializar a una clase específica. –
Separa la lógica de su negocio de las capas de persistencia.
Así que su objeto "Perro", y la mayor parte del código que lo usa, solo puede preocuparse por Perros y Perversidad, y no se preocupe por cuál sabor de acceso a datos está de moda esta semana.
Si utiliza objetos en lugar de DataTables, obtiene resultados fuertemente tipados y hace que el código con los datos sea mucho más limpio. No tendrá que tener todo tipo de cadenas para acceder a lo que debería ser una propiedad de un objeto.
Además, si se utiliza una herramienta ORM como NHibernate, puede asignar desde la base de datos directamente a los objetos sin tener que llamar manualmente a la base de datos y hacer frente a SqlCommands, etc ..
- 1. ¿Cuáles son las ventajas de utilizar Rubinius
- 2. ¿Cuáles son las 'grandes' ventajas de tener Poco con ORM?
- 3. ¿Cuáles son las ventajas de Lazy Evaluation?
- 4. ¿Cuáles son las ventajas de usar Qt?
- 5. ¿Cuáles son las ventajas de usar Automapper?
- 6. ¿Cuáles son las ventajas de Perforce?
- 7. Cuáles son las ventajas de VistaDB
- 8. ¿Cuáles son las ventajas prácticas del currying?
- 9. ¿Cuáles son las ventajas de QAbstractItemModel en comparación con QStandardItemModel?
- 10. ¿Cuáles son las ventajas de Blocking Queue en Java?
- 11. ¿Cuáles son las ventajas de utilizar las bibliotecas de C++ Boost?
- 12. Android 3.0: ¿cuáles son las ventajas de utilizar las instancias de LoaderManager exactamente?
- 13. ¿Cuáles son las ventajas de utilizar StringIO en Ruby en lugar de String?
- 14. ¿Cuáles son las ventajas de las macros de esquema?
- 15. ¿Cuáles son las ventajas reales de las colecciones inmutables?
- 16. node.js - cuáles son las ventajas de usar jade
- 17. ¿Qué es NSZone? ¿Cuáles son las ventajas de usar initWithZone :?
- 18. ¿Cuáles son las ventajas y desventajas de usar boost :: iterator_facade?
- 19. ¿Cuáles son las ventajas de un MembershipProvider personalizado en ASP.NET?
- 20. ¿Cuáles son las ventajas de usar Prolog en otros idiomas?
- 21. cuáles son las ventajas de usar plpgsql en postgresql
- 22. ¿Cuáles son las ventajas de concurrent.futures sobre multiproceso en Python?
- 23. ¿Cuáles son las ventajas/desventajas de usar Maven?
- 24. ¿Cuáles son las ventajas y desventajas de usar esquemas XML?
- 25. ¿Cuáles son las ventajas de usar un errback?
- 26. ¿Cuáles son las ventajas de utilizar una relación de tabla uno a uno? (MySQL)
- 27. ¿Cuáles son las ventajas de utilizar la agrupación de transacciones con pgbouncer?
- 28. ¿Cuáles son las ventajas de un procesador de 64 bits?
- 29. ¿Cuáles son las ventajas de cargar DLL de forma dinámica?
- 30. ¿Cuáles son las ventajas del uso de Node.js vs PHP
El hecho de que a Poco le da una lista de objetos Dog con propiedades Nombre, Edad, etc., en lugar de una DataTable que tiene columnas como "Nombre", "Edad", etc. –