Estoy manteniendo un servicio web SOAP (ASP.NET versión 2.0) y tengo que hacer algunos cambios que modificarán los valores de devolución de métodos particulares.¿Cuál es la mejor manera de Versión un servicio web ASP.NET 2.0?
¿Cuál es el método generalmente aceptado para hacer esto sin romper las implementaciones existentes?
Mi idea inicial es que todo lo siguiente sería posible.
a) Proporcione métodos específicos de la nueva versión dentro del servicio web existente, p. getPerson_v1.4
b) Proporcione una copia completa del archivo .asmx con un nuevo número de versión, p. http: /www.example.com/AdminWS_V1_4.asmx. Esta no es una idea que disfruto ya que el servicio tiene más de 50 métodos y copiar ese código para cambios a 2/3 métodos parece demasiado código duplicado.
c) Anule el constructor del servicio web para permitir el paso de un número de versión. Esto no parece funcionar, y en la reflexión no estoy seguro de cómo se representaría en un WSDL
¿Existe una forma generalmente aceptada de hacer esto, o las personas tienen consejos basados en sus experiencias en esta área.
Creo que esta es una buena forma de hacerlo y muchas organizaciones usan este método. Esto muestra claramente que el usuario está accediendo a una versión diferente del servicio. – BobbyShaftoe
Lo habría incluido en mi lista, ya que parece una opción razonable; sin embargo, el servicio web se integra con una gran cantidad de otros códigos y todos nuestros usuarios existentes harán referencia al sitio "principal" (es decir, sin versiones) –
@Steve Weet, ¿eso no se resolvería si continuamos con el ejemplo y creamos una dirección: http://www.example.com/soap/current/, que se correlacionaría con la versión más nueva? Poner números de versión en los métodos hace que la API sea complicada para los nuevos usuarios que no están interesados en todo el historial ... – Thies