2012-01-02 9 views
5

Solo buscaba desarrollar .NET WCF API. Es posible que necesitemos actualizar frecuentemente las API.Despliegue de API de WCF Versiones

¿Cómo administrar varias versiones de despliegue de API?

+0

en primer lugar, su pregunta carece seriamente la calidad. Para empezar, hace tres preguntas separadas, por lo que debe crear tres preguntas. En segundo lugar, de las ocho preguntas que se han respondido, solo ha otorgado la respuesta a dos de ellas.Esto desalentará a las personas de ayudarte. Por favor revise estas preguntas y otorgue la respuesta según corresponda. –

+0

Gracias hugh! He actualizado la pregunta para reducirla. Para las respuestas que he recibido hasta ahora, he otorgado la respuesta a las preguntas donde las encuentro como solución, el resto de ellas son sugerencias que no conducen a ninguna solución adecuada. Espero que entiendas. –

+0

Si ninguna de las respuestas que recibió lo llevó a una solución, entonces lo correcto es publicar la solución a la que llegó y marcarla como la respuesta. Entonces las personas que lleguen a su pregunta al menos pueden ver cómo logró resolverlo. –

Respuesta

6

Controlar sus servicios es un gran tema con muchas consideraciones y directrices.

Para empezar, hay diferentes clases de cambios que puede realizar; rotura completa, semi-rotura y sin rotura.

cambios

de no separación (no hay cambio necesario para los clientes existentes) incluyen:

  • cambiar la implementación interna del servicio, manteniendo el contrato expuesta sin cambios
  • cambiar los tipos de contrato de una manera que no lo hace romper clientes, por ejemplo, agregando campos a sus tipos de devolución de operaciones (la mayoría de los serializadores generarán un evento en lugar de arrojar una excepción al encontrar un campo inesperado en deserialización)
  • exponer polimórficamente nuevos tipos (utilizando el atributo ServiceKnownType)
  • cambiar la configuración de administración instancia del servicio (por llamada a Singleton, sin sesión a sessionful etc, aunque a veces esto requerirá cambios en la configuración o incluso de código)

cambios semi-ruptura (por lo general pueden ser configurados en el cliente) inlcude:

  • cambiar la ubicación de un servicio
  • cambiar el tipo de transporte de un servicio se expone a través de (aunque el cambio de un bi-direccional para un transporte unidireccional - por ejemplo, http a MSMQ - puede ser un cambio total)
  • cambiar la disponibilidad del servicio (a través del uso de ventanas de servicios, etc)

cambios totalmente rotura (necesitará una nueva versión del cliente) incluyen:

  • cambiantes Firmas de operación de servicios
  • cambiantes tipos expuestos de manera discontinua (eliminación de campos, etc.)

Cuando vaya a realizar un cambio de rotura parcial o total, debe evaluar la mejor manera de hacer esto. ¿Obliga a todos sus clientes a actualizar para usar la nueva versión, o coorganiza ambas versiones del servicio en diferentes puntos finales? Si eliges lo último, ¿cómo controlarás y administrarás la propagación de las diferentes dependencias de versionning que esto puede introducir?

Llevado al extremo, podría examinarse la resolución de punto final dinámica, mediante la cual el cliente resuelve el punto final adecuado para llamar en tiempo de ejecución utilizando algún tipo de servicio de resolución.

Hay una buena lectura sobre esto aquí: http://msdn.microsoft.com/en-us/library/ms731060.aspx

+0

Gracias hugh! Esto dará un comienzo. Déjame entrar en más detalles. Estoy planeando implementar un servicio que será consumido por aplicaciones móviles nativas. Me gustaría utilizar algún número de versión cuando acceda a la URL del servicio, es decir, www.example.com/MiServicio/1.0/. Es posible que deba actualizar periódicamente las aplicaciones nativas y agregar/actualizar métodos dentro de mi servicio y desplegarlo con un número de versión diferente para que pueda tener múltiples versiones de aplicaciones móviles y servicio funcionando y luego puedo pensar en retirar la versión anterior de la aplicación móvil y el servicio de tiempo al tiempo. –

Cuestiones relacionadas