2009-09-23 10 views
8

Es una buena práctica hacer referencia a la biblioteca de clases de mi capa de dominio de aplicaciones web para la aplicación de servicio WCF.Modelo de dominio compartido con el servicio WCF

Haciendo eso me da fácil acceso a las clases ya existentes en mi modelo de dominio para que no necesitaré para volver a definir clases similares para ser utilizado por el servicio WCF

Por otra parte, yo no' me gusta el acoplamiento que crea entre la aplicación y el servicio, y tengo curiosidad de si podría crearme dificultades a largo plazo.

También creo que tener clases dedicadas para mi aplicación WCF sería más eficiente dado que esas clases solo contendrán los miembros que serán utilizados por el servicio y nada más. Si utilizo las clases de mi capa de dominio, habrá muchos campos en las clases que el servicio no utilizará y provocará una transferencia de datos innecesaria.

apreciaré si usted me puede dar a sus pensamientos de su experiencia

Respuesta

2

Enfado personalmente en pasar directamente los objetos de dominio a través de WCF. Como dijo Krzysztof, se trata de un contrato de datos y no de un contrato sobre el comportamiento de lo que está pasando por el cable.

normalmente hago esto:

  • Definir los contratos de datos en su propia asamblea
  • El servicio tiene una referencia tanto a los contratos de datos de montaje y los conjuntos de entidades de negocios.
  • Cree métodos de extensión en el espacio de nombres del servicio que correlacionan las entidades con sus contratos de datos correspondientes y viceversa.

Poniendo a un lado la pureza conceptual de lo que es un "Contrato de Datos". Si comienza a pasar entidades a su alrededor está configurando su entidad compartida para tirar en diferentes direcciones de diseño por cada lado del límite de WCF. Inevitablemente terminará con comportamientos que solo pertenecen a un lado, o incluso peor, tienen que exponer métodos que conceptualmente hacen lo mismo pero de una manera diferente para cada lado del límite de WCF. Puede llegar a ser muy complicado a largo plazo.

+1

Esto es perfecto; ¿podría tener un ejemplo o ver un ejemplo de esto implementado (enlace, blog, etc.)? Hay un par de preguntas para mí que podrían responderse si veo un pequeño ejemplo de esto en la implementación. – atconway

4

, no lo es. Las entidades tienen que ver con el comportamiento. datos contrato se trata de ... datos. Además, como mencionaste, no querrías juntarlos, porque eso te incapacitará para reaccionar al cambio muy pronto.

4

Para aquellos que todavía viene a través de este post, como si ....

Pedido esta site. Es una buena explicación sobre el tema.

Conclusión: Haga todo lo posible por mantener los límites de su arquitectura claros y limpios. Obtendrá algún crédito por ello algún día;)

Cuestiones relacionadas