2008-10-16 11 views
5

Los clientes de escritorio presionarán los datos mediante WCF a un servidor central.Manejo del control de versiones para clientes cuando se usa WCF

Cuando el esquema cambia, etc., digamos que 100 computadoras tienen la versión anterior del cliente de escritorio, mientras que el resto usa la versión más reciente.

¿Qué debo hacer en el extremo del servidor para manejar ambas versiones? ¿Creo 2 puntos finales en WCF o un único punto final inteligente que resolverá la versión y actuará en consecuencia?

nota: i estará pasando la información de la versión del cliente (si se requiere que sea)

Respuesta

4

usted tiene una opción:

En primer lugar usted debe estar versionar sus contratos de servicio de todas formas, con sus espacios de nombres; p.ej. http://idunno.org/2008/10/numpty cambiaría a http://idunno.org/2008/11/numpty si las operaciones del servicio tienen cambios de última hora.

Ídem con contratos de datos; sin embargo, si todo lo que hace con el contrato de datos es aditivo, puede marcar los nuevos campos como opcionales;

[DataMember(IsRequired="false")] 

Y los clientes antiguos funcionarán. Entonces, esto debería indicarle que los parámetros en un servicio y los parámetros eliminados también deberían ser contratos de datos; te da esa flexibilidad.

MSDN tiene more

+0

My sentiments exactly! –

+0

Esta es una gran respuesta, pero para los buscadores futuros solo quiero mencionar que IsRequired es en realidad falso de manera predeterminada, por lo que no es necesario configurarlo explícitamente. Un punto importante para recordar nunca es cambiar el indicador IsRequired del miembro existente de falso a verdadero, ¡y nunca establecer nuevos miembros en verdadero! Lo más importante es leer el enlace de MSDN :) – Joshua

Cuestiones relacionadas