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
fuente
Respuestas:
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.
fuente