WCF

Windows Communication Foundation
Windows Communication Foundation



Windows Communication Foundation o WCF, (también conocido como Indigo), es la nueva plataforma de mensajería que forma parte de la API de la Plataforma .NET 3.0 (antes conocida como WinFX, y que no son más que extensiones para la version 2.0). Se encuentra basada en la Plataforma .NET 2.0 y de forma predeterminada se incluye en el Sistema Operativo Microsoft Windows Vista. Consiste en un número de bibliotecas de clase para desarrollar sistemas que envían mensajes entre servicios y clientes sobre diversos mecanismos de transporte.

Una panorámica histórica

Fue creado con el fin de permitir una programación rápida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (también conocido como SOA), con una API simple; y que puede ejecutarse en una máquina local, una LAN, o sobre la Internet en una forma segura. WCF permite a los programadores generar soluciones con transacciones seguras y de confianza, que se integren en diferentes plataformas y que interoperen con las inversiones existentes. Además está diseñado para ofrecer un enfoque manejable a la informática distribuida, interoperabilidad ancha y asistencia directa para la orientación sobre el servicio.

Una aplicación WCF está compuesta por:

  • Clientes: Son aplicaciones que inician la comunicación.
  • Servicios: Son aplicaciones que esperan los mensajes de los clientes y responden a los mismos.

Los mensajes son enviados entre Endpoints. Un Endpoint es un lugar donde un mensaje es enviado, o recibido, o ambos.

Con WCF, nos independizamos de los mecanismos de transporte y de los protocolos, ya que podemos tener un único servicio programado de una manera particular y exponerlo de diferentes formas, cada punto de contacto con el exterior de un servicio en WCF se conoce como Endpoint. Por lo tanto decimos que un servicio WCF tiene un número de Endpoints, cada cual diferenciado por dirección, puerto, protocolo de transporte, etc.


Ventajas

  • Proporciona un único modelo de programación tipado de aplicaciones distribuidas basadas en servicios.
  • Encapsula y simplifica el desarrollo de aplicaciones soportadas por las diversas tecnologías distribuidas. ASP.NET Web Services (incluyendo la WSE, Web Service Enhancements), Microsoft Message Queue, Enterprise Services/COM+, NET Remoting.
  • Permite el desarrollo de aplicaciones .NET capaces de interoperar con aplicaciones desarrolladas con otras tecnologías (java, php, etc.).

Fuentes