Windows Communication Foundation ( WCF ), anteriormente conocida como Indigo , es un tiempo 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 el código del lado del servidor WCF. Se agregó compatibilidad con WCF 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ñado utilizando principios de arquitectura orientada a servicios para admitir la informática 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 débilmente acoplados entre sí. 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 de servicios web (WS) avanzados, como WS-Addressing , WS-ReliableMessaging y WS-Security . Con el lanzamiento de .NET Framework 4.0, WCF también proporciona servicios de distribució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 vinculantes que especifican cómo se transferirán los datos.
El mnemotécnico "ABC" se puede utilizar para recordar dirección / vinculación / contrato . El enlace especifica qué protocolos de comunicación se utilizan para acceder al servicio, si se deben utilizar mecanismos de seguridad, etc. 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 quiere acceder al servicio a través de un punto final, no sólo necesita conocer el contrato, sino que también debe cumplir con el vínculo especificado por el punto final. Por 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 procesamiento, transformación o 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, la IContractBehavior
interfaz para contratos de servicio o IOperationBehavior
para operaciones. Los comportamientos de servicio se utilizan para el procesamiento de mensajes en un servicio, en lugar del procesamiento que sería específico de una sola operación.
WCF admite la interoperabilidad con aplicaciones WCF que se ejecutan en la misma máquina Windows o WCF que se ejecuta en diferentes máquinas Windows o 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 formatos XML, RSS , JSON y binarios que no son SOAP para comunicación externa a través de HTTP o HTTPS . [6]