WCF – Windows Communication Foundation
Hola,
En este post vamos a tratar sobre WCF (Windows Communication Foundation) y vamos a ver algunas de sus características, funciones y especialidades.
Windows Communication Foundation es un marco de trabajo para aplicaciones orientadas a servicios. WCF es un producto Microsoft que se incluye en el .NET Framework desde la versión 3.0. Está diseñado bajo un modelo unificado de programación y tiene por objetivo que los desarrollares puedan trabajar con distintos tipos de aplicaciones distribuidas sin tener que aprender distintos tipos de programación. Todo ello, es posible gracias a que WCF tiene una arquitectura orienta a servicios (SOA), la cual logra unificar varios modelos de comunicación disponibles en versiones anteriores de .NET (Servicios web, DCOM+, Remoting, MSMQ, ASMX, WSE). Asimismo, podemos agregar que WCF es un conjunto de librerías que provee el .NET Framework para la construcción de aplicaciones orientadas a servicios.
Características de WCF
WCF está compuesto por:
Clientes: Aplicaciones que inician la comunicación.
Servicios: Aplicaciones que esperan los mensajes de los clientes y responden a los mismos. Estos mensajes son enviados entre endpoints(lugar donde un mensaje es enviado o recibido).
Un servicio expone uno o más application endpoints y un cliente genera un endpoint compatible con uno de los endpoints del servicio dado.Esta combinacón entre servicio y cliente compatible conforman un communication stack.
Para la creación de un servicio se deben de seguir 5 pasos:
- Definir el contrato.
- Implementar el contrato.
- Configurar el servicio.
- Diseñar una aplicación hosting del servicio.
- Diseñar una aplicación cliente del servicio.
Ventajas de WCF
- Facilidad de creación de servicios web interoperables y aplicaciones que hagan uso de los mismos.
- Permite el desarrollo de aplicaciones .NET capaces de interoperar con aplicaciones desarrolladas con otras tecnologías (J2EE, SAP).
- Permite el envío de datos asíncronos de un extremo del servicio a otro. Estos mensajes pueden desde un carácter que se envía como XML o complejos como una secuencia de datos binarios.
- Utiliza un motor de socialización predeterminado para convertir los datos en XML y viceversa.
- Los mensajes pueden enviarse con cualquiera de los protocolos y codificaciones integradas (HTTP y WWW, TCP)
- Compatible con Ajax y REST.
- Contine una extensión para formatos XML concretos: ATOM(RSS);
- Formatos que no son XML: JSON.
Desventajas de WCF:
- Seguridad del nivel de mensaje.
- La curva de aprendizaje es alta.
- Tecnología propietaria.
Ejemplos de uso de WCF:
- Servicio seguro para procesar transacciones comerciales.
- Servicio de reportes con diferentes tecnologías y ubicación.
- Un servicio de chat.
Diferencia entre WCF y Web Services
WCF | Web Services |
Puede ser utilizado por diferentes plataformas | Independiente de la plataforma y lenguaje elegidos |
Los servicios y datos compartidos están explícitamente especificados. | Independiente de quien lo consumirá. |
Permite ocultar los detalles de un error y sólo mostrar la información necesaria. Maneja los errores en ambos sentidos: los objetos de excepción y errores SOAP. | El protocolo HTTP tiene restricciones |
Puede ser alojado en: Self hosting, Windows Service, IIS y WAS | No mantiene los valores de sesión por defecto. Se crea una nueva instancia del web services en cada llamada. |
Las excepciones no controladas se devuelven al cliente como un elemento SOAP en formato XML. | |
Se aloja en IIS |