¿Hay marcos o utilidades (en el espacio .NET) para generar automáticamente los objetos de transferencia de datos de objetos de negocio

StackOverflow https://stackoverflow.com/questions/2414312

Pregunta

Estoy buscando el mejor enfoque para la generación de objetos de transferencia de datos de objetos de negocio (la definición de tipo, no la cartografía de los datos) usando un conjunto de convenciones (por ejemplo, todas las propiedades públicas), y, posiblemente, configurable para determinar la profundidad a ir .

I cuenta de que esto no puede ser posible o incluso deseable para muchos casos en que las de dto no se parecen a los objetos de negocio (por ejemplo, cuando se aplana un número de objetos de negocio en un único objeto de transferencia de datos).

Sin embargo, en mi caso, un gran porcentaje de mis objetos de transferencia de datos son muy similares a sus objetos de negocio (especialmente para el DTO para la actualización de los datos).

Me preguntaba si hay herramientas de generación de código existentes (estoy en busca de soluciones específicas con las plantillas existentes, no sólo una herramienta de generación de código de propósito general, como CodeSmith), o herramientas de creación de ensamblaje dinámico (por ejemplo, utilizando la reflexión bajo el Emitir cubre)? O si esto es algo que ha hecho antes de que yo estaría interesado en escuchar acerca de qué técnica se utiliza para ayudar a decidir entre las diferentes opciones.

¿Fue útil?

Solución

Es probable que encontrar AutoMapper bastante útil: http://www.codeplex.com/AutoMapper

Editar, en respuesta a los comentarios del OP:

plantillas T4 está incluido en Visual Studio para la generación de código. Aquí está un puesto en la generación de código de entidad-a-DTO con T4:

http://weblogs.asp.net/cibrax/archive/2009/03/11/code-generation-with-t4-an-entities-to-dto-example.aspx

Otros consejos

Bueno, en cierta medida el marco .NET en sí mismo puede hacer esto con clases anónimas.

Por ejemplo, con LINQ a objetos (los objetos de negocio, por ejemplo) se puede "proyecto" Conjuntos de resultados en su (listas de clases) anónimos.

El principal inconveniente de esto es que en este momento no sería muy portátil, sin embargo, con .NET 4.0 y clases dinámicas Me atrevo a decir que no tendría que usar una solución de 3 ª parte, creo que tendría las herramientas con el propio marco .

También recomendaría Plantillas T4 . Puede utilizar la reflexión para alimentar en los metadatos y la plantilla actual es similar a ASP marcado. Este está integrado en VS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top