Windows Communication Foundation ( WCF ), anteriormente conocida como Indigo , es un entorno de ejecución gratuito y de código abierto y un conjunto de API en .NET Framework para crear aplicaciones conectadas y orientadas a servicios . [1] [2]
.NET Core 1.0 , lanzado en 2016, no admitía código del lado del servidor WCF. La compatibilidad con WCF se agregó a la plataforma con soporte para .NET Core 3.1, .NET 5 y .NET 6 en 2022. [3]
WCF es una herramienta que se utiliza a menudo para implementar e implementar una arquitectura orientada a servicios (SOA). Está diseñada utilizando principios de arquitectura orientada a servicios para admitir la computación distribuida donde los servicios tienen consumidores remotos . Los clientes pueden consumir múltiples servicios; los servicios pueden ser consumidos por múltiples clientes. Los servicios están acoplados entre sí de forma flexible. Los servicios suelen tener una interfaz WSDL (lenguaje de descripción de servicios web) que cualquier cliente WCF puede utilizar para consumir el servicio, independientemente de la plataforma en la que esté alojado el servicio. WCF implementa muchos estándares avanzados de servicios web (WS) como WS-Addressing , WS-ReliableMessaging y WS-Security . Con el lanzamiento de .NET Framework 4.0, WCF también proporciona servicios de sindicación RSS , WS-Discovery , enrutamiento y mejor soporte para servicios REST .
Un cliente WCF se conecta a un servicio WCF a través de un punto final . Cada servicio expone su contrato a través de uno o más puntos finales. Un punto final tiene una dirección (que es una URL que especifica dónde se puede acceder al punto final) y propiedades de enlace que especifican cómo se transferirán los datos.
El mnemónico "ABC" se puede utilizar para recordar la dirección / enlace / contrato . El enlace especifica qué protocolos de comunicación se utilizan para acceder al servicio, si se deben utilizar mecanismos de seguridad y similares. WCF incluye enlaces predefinidos para los protocolos de comunicación más comunes, como SOAP sobre HTTP, SOAP sobre TCP y SOAP sobre colas de mensajes, etc. La interacción entre el punto final de WCF y el cliente se realiza mediante un sobre SOAP. Los sobres SOAP están en formato XML simple, lo que hace que WCF sea independiente de la plataforma. Cuando un cliente desea acceder al servicio a través de un punto final, no solo necesita conocer el contrato, sino que también debe cumplir con el enlace especificado por el punto final. Por lo tanto, tanto el cliente como el servidor deben tener puntos finales compatibles.
Con el lanzamiento de .NET Framework 3.5 en noviembre de 2007, Microsoft lanzó un codificador que agregó soporte para el formato de serialización JSON a WCF. [4]
Los comportamientos son tipos que modifican o amplían la funcionalidad del servicio o del cliente. Los comportamientos permiten al desarrollador crear un procesamiento, una transformación o una inspección personalizados que se aplican a los mensajes a medida que se envían o reciben. Algunos ejemplos de usos de los comportamientos son:
Los comportamientos implementan la IServiceBehavior
interfaz para extensiones de servicio, IEndpointBehavior
para puntos finales, IContractBehavior
para contratos de servicio o IOperationBehavior
para operaciones. Los comportamientos de servicio se utilizan para el procesamiento de mensajes en todo un servicio, en lugar de un procesamiento que sería específico para una sola operación.
WCF admite la interoperabilidad con aplicaciones WCF que se ejecutan en la misma máquina Windows o con WCF que se ejecuta en diferentes máquinas Windows o con servicios web estándar creados en plataformas como Java que se ejecutan en Windows u otros sistemas operativos. Además de SOAP, WCF 4 admite XML, RSS , JSON y formatos binarios que no sean SOAP para la comunicación externa a través de HTTP o HTTPS . [6]