Principales respuestas
Como implementar WebServices que publiquen un modelo de dominio?

Pregunta
-
Tengo el siguiente problema que no se como resolver sin destruir la rquitectura de mi modelo de dominio:
Existe una libreria DLL que contiene todo el modelo de dominio, basicamente la entendemos como una clase Factory de una clase interna, y una interfaz, en la DLL solo publicamos la interfaz y la Factory, de esa forma en el cliente, hacemos algo como:
IClaseInterna=objFactory.CrearNuevaClaseInterna();
De esa forma encapsulamos logica, y ofrecemos interfaces homogeneas y escalables.
El problema se da cuando quiero usar un WebService(WS) para publicar mi modelo de dominio en una red. a mi WS le implemento un metodo CrearClaseInterna() que devuelva una clase abstracta a modo de interfaz (por q no podemos publicar interfaces por WS(????)) y por dentro hace la llamada a mi factory.
Quien iba a pensar que al ejecutar esto aparece un error en el WS en run-time diciendo que no puedo ejecutar semejante cosa dado que mi clase Internal es justamente NO-PUBLICA!! incluso a pesar de estar enmascarada en una clase abstracta PUBLICA.
La preguna es:
Alguien sabe como puedo implementar el WS manteniendo mi modelo de dominio lo mas intacto posible? si no se entiende esto avisen que mando el codigo
Gracias y Saludos!
Respuestas
-
hola
en el servicio web que objetos estas devolviendo ? es una de tu dominio
lo que suelo hacer en estos caso es crear clases de transporte, o sea si tiene una clase cliente, crear una de nomre dtoCliente, y devolver esta en el servicio web
lo malo de esto es que hay que mapear y despmapear cada objeto, ya que en el servicio web neceistas consulta a tu dominio, recuperar el Cliente, y luego transformar este a dtCliente
pero podrias ayudarte con algo como esto
AutoMapper: the Object-Object Mapper
o sea el problema esta en que estas pasando en el servicio objetos de tu dominio directo, lo cual no es recomendable
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator lunes, 3 de mayo de 2010 14:34
- Marcado como respuesta JPSharp lunes, 3 de mayo de 2010 15:10
Todas las respuestas
-
hola
en el servicio web que objetos estas devolviendo ? es una de tu dominio
lo que suelo hacer en estos caso es crear clases de transporte, o sea si tiene una clase cliente, crear una de nomre dtoCliente, y devolver esta en el servicio web
lo malo de esto es que hay que mapear y despmapear cada objeto, ya que en el servicio web neceistas consulta a tu dominio, recuperar el Cliente, y luego transformar este a dtCliente
pero podrias ayudarte con algo como esto
AutoMapper: the Object-Object Mapper
o sea el problema esta en que estas pasando en el servicio objetos de tu dominio directo, lo cual no es recomendable
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator lunes, 3 de mayo de 2010 14:34
- Marcado como respuesta JPSharp lunes, 3 de mayo de 2010 15:10
-
-
asi es exactamente, serian tus clases de transporte, de esta forma desacoplas tu dominio con la implementacion del envio de la info por el web servicecomo comente el trabajo laborioso es mapear y desmapear las entidades, en donde el 90% del timpo tendran la misma estructura
pero con algunas tools podrias hacerlo ams simple
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
si, ahi estaba leyendo los links! vaya cantidad de recursos que tenes man!
en cualquier caso, muchas gracias, =mente me queda pendiente saber por que no podria yo publicar mi interfaz definida en mi dominio de manera publica y feliz, a traves de un WS!
saludos!