Versión de WCF, URL de nombre y punto final

8

Tengo un servicio WCF y un Main Lib1.

Digamos que tengo un servicio Guardar perfil. WCF obtiene datos (con contrato de datos predefinido) del cliente y los pasa a la clase principal Lib1, genera una respuesta y la envía de vuelta al cliente.

Método WCF: SaveProfile (perfil ProfileDTO)

ProfileDTO de la versión actual 1.0 tiene el siguiente nombre de usuario Contraseña Nombre DOB (en cadena aaaa-mm-dd) CreatedDate (en cadena aaaa-mm-dd)

La siguiente versión (V2.0) ProfileDTO tiene el siguiente nombre de usuario Contraseña Nombre DOB (en UnixTimeStamp) CreatedDate (en UnixTimeStamp)

La versión 3.0 ProfileDTO tiene lo siguiente (con cambio en el nombre de usuario y la validación de la longitud de la contraseña) Nombre de usuario Contraseña Nombre DOB (en UnixTimeStamp) CreatedDate (en UnixTimeStamp)

En simple, tenemos DataContract y Workflow change entre cada versión 1. ¿Cómo nombro los métodos en WCF Service y Main Class Lib1? 2. ¿Debo seguir algún patrón específico para facilitar el desarrollo y el mantenimiento? 3. ¿Tengo que tener diferentes puntos finales para diferentes versiones?

En el ejemplo anterior tengo un método llamado "SaveProfile". ¿Tengo que nombrar los métodos como "SaveProfile1.0", "SaveProfile2.0", etc. Si ese es el caso cuando no hay cambio entre la Versión "3.0" y "4.0", entonces habrá dificultades en el mantenimiento. Estoy buscando un enfoque que ayude a facilitar el mantenimiento

Vinothkumar VJ
fuente
Otra cosa que debe considerar es elevar la noción de puesta de sol de versión, por lo que está estableciendo una expectativa clara de cuánto tiempo estará disponible una versión.
Kevin

Respuestas:

1

Hay dos formas de tener diferentes versiones del mismo contacto. El primero es usar espacios de nombres y el segundo usar diferentes nombres de servicio . Personalmente, prefiero el enfoque de espacio de nombres diferente simplemente porque encapsula la "versión" con un título de espacio de nombres y permite que las personas que llaman sean específicas sobre sus requisitos contractuales.

Sin embargo, la creación de nuevas versiones de contrato tiene el riesgo de romper la compatibilidad con las personas que llaman existentes.

Chris Mylonas
fuente