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:

  1. Definir el contrato.
  2. Implementar el contrato.
  3. Configurar el servicio.
  4. Diseñar una aplicación hosting del servicio.
  5. 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