¿Qué es Windows Communication Foundation?

Windows Communication Foundation (WCF) es un marco para compilar aplicaciones orientadas a servicios. Con WCF, puede enviar datos como mensajes asincrónicos de un punto de conexión de servicio a otro. Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación. Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio. Los mensajes pueden ser tan simples como un carácter o una palabra que se envía como XML, o tan complejos como una secuencia de datos binarios. A continuación se indican unos cuantos escenarios de ejemplo:

  • Un servicio seguro para procesar transacciones comerciales.

  • Un servicio que proporciona datos actualizados a otras personas, como un informe sobre tráfico u otro servicio de supervisión.

  • Un servicio de chat que permite a dos personas comunicarse o intercambiar datos en tiempo real.

  • Una aplicación de panel que sondea los datos de uno o varios servicios y los muestra en una presentación lógica.

  • Exponer un flujo de trabajo implementado utilizando Windows Workflow Foundation como un servicio WCF.

  • Una aplicación de Silverlight para sondear un servicio en busca de las fuentes de datos más recientes.

Aunque la creación de estas aplicaciones era posible antes de la existencia de WCF, WCF facilita más que nunca el desarrollo de puntos de conexión. En resumen, WCF está diseñado para ofrecer un enfoque administrable para crear servicios web y clientes de servicios web.

Características de WCF

WCF incluye el siguiente conjunto de características. Para obtener más información, vea Detalles de características de WCF.

  • Orientación a servicios

    Una consecuencia del uso de estándares WS es que WCF permite crear aplicaciones orientadas a servicios. SOA, la arquitectura orientada a servicios es el uso de servicios web para enviar y recibir datos. Los servicios tienen la ventaja general de estar débilmente acoplados entre una aplicación y otra en lugar de incluidos en el código. Una relación de acoplamiento débil implica que cualquier cliente creado en cualquier plataforma puede conectar con cualquier servicio siempre y cuando se cumplan los contratos esenciales.

  • Interoperabilidad

    WCF implementa estándares modernos del sector para la interoperabilidad del servicio web. Para obtener más información sobre los estándares admitidos, vea Interoperabilidad e integración.

  • Varios patrones de mensajes

    Los mensajes se intercambian mediante uno de los distintos patrones. El más común es el de solicitud/respuesta, en que un extremo solicita datos de otro extremo. y el otro extremo responde. Existen otros patrones, como un mensaje unidireccional, en que un único extremo envía un mensaje sin esperar ninguna respuesta. Un patrón más complejo es el patrón de intercambio dúplex donde dos extremos establecen una conexión y envían datos hacia delante y hacia atrás, similar a un programa de mensajería instantánea. Para obtener más información sobre cómo implementar diferentes patrones de intercambio de mensajes mediante WCF, vea Contratos.

  • Metadatos de servicio

    WCF admite la publicación de metadatos de servicio mediante formatos especificados en estándares del sector como WSDL, esquema XML y WS-Policy. Estos metadatos se pueden usar para generar y configurar automáticamente clientes para acceder a los servicios WCF. Los metadatos se pueden publicar sobre HTTP y HTTPS, o utilizando el estándar Intercambio de metadatos de servicios web. Para obtener más información, vea Metadatos.

  • Contratos de datos

    Dado que WCF se ha creado mediante .NET Framework, también incluye métodos descriptivos del código para proporcionar los contratos que desea aplicar. Uno de los tipos de contrato universales es el contrato de datos. Básicamente, mientras se escribe el código del servicio usando Visual C# o Visual Basic, la forma más sencilla de controlar los datos consiste en crear clases que representan una entidad de datos con propiedades que pertenecen a la misma. WCF incluye un sistema completo para trabajar con datos de esta manera fácil. Cuando se han creado las clases que representan los datos, el servicio genera automáticamente los metadatos que permiten a los clientes ajustarse a los tipos de datos que se han diseñado. Para obtener más información, vea Usar contratos de datos.

  • Seguridad

    Es posible cifrar los mensajes para proteger la privacidad, así como obligar a los usuarios a que se autentiquen antes de permitirles recibir mensajes. La seguridad puede implementarse utilizando estándares conocidos como SSL o WS-SecureConversation. Para obtener más información, consulte Seguridad.

  • Varios transportes y codificaciones

    Los mensajes pueden enviarse con cualquiera de los protocolos y codificaciones integrados. El protocolo y la codificación más comunes es enviar mensajes SOAP codificados con texto mediante el Protocolo de transferencia de hipertexto (HTTP) para su uso en el World Wide Web. Como alternativa, WCF permite enviar mensajes a través de TCP, canalizaciones con nombre o MSMQ. Estos mensajes pueden codificarse como texto o utilizando un formato binario optimizado. Los datos binarios pueden enviarse de manera eficaz utilizando el estándar MTOM. Si ninguno de los transportes o codificaciones proporcionados satisface sus necesidades, puede crear uno personalizado. Para obtener más información sobre los transportes y codificaciones admitidos por WCF, vea Transportes.

  • Mensajes confiables y en cola

    WCF admite el intercambio de mensajes confiable mediante sesiones confiables implementadas WS-Reliable mensajería y mediante MSMQ. Para obtener más información sobre la compatibilidad con mensajería confiable y en cola en WCF, vea Colas y sesiones confiables.

  • Mensajes duraderos

    Un mensaje duradero es aquel que nunca se pierde debido a una interrupción de la comunicación. Los mensajes que forman parte de un patrón de mensajes duraderos siempre se guardan en una base de datos. Si se produce una interrupción, la base de datos le permite reanudar el intercambio de mensajes cuando se restablezca la conexión. También puede crear un mensaje duradero mediante el Windows Workflow Foundation (WF). Para obtener más información, vea Servicios de flujo de trabajo.

  • Transactions

    WCF también admite transacciones mediante uno de los tres modelos de transacción: WS-AtomicTransactions, las API del espacio de nombres System.Transactions y Microsoft DTC (Coordinador de transacciones distribuidas). Para obtener más información sobre la compatibilidad con transacciones en WCF, vea Transacciones.

  • Compatibilidad con AJAX y REST

    REST es un ejemplo de una tecnología de la Web 2.0 en evolución. WCF se puede configurar para procesar datos XML "sin formato" que no están encapsulados en un sobre SOAP. WCF también se puede extender para admitir formatos XML específicos, como ATOM (un conocido estándar RSS) e incluso formatos no XML, como notación de objetos JavaScript (JSON).

  • Extensibilidad

    La arquitectura de WCF tiene una serie de puntos de extensibilidad. Si se necesita una función adicional, existen una serie de puntos de entrada que le permiten personalizar el comportamiento de un servicio. Para obtener más información sobre los puntos de extensibilidad disponibles, vea Extender WCF.

Integración de WCF con otras tecnologías de Microsoft

WCF es una plataforma flexible. Debido a esta flexibilidad extrema, WCF también se usa en otros productos de Microsoft. Al comprender los conceptos básicos de WCF, tiene una ventaja inmediata si también usa cualquiera de estos productos.

La primera tecnología para emparejar con WCF fue Windows Workflow Foundation (WF). Los flujos de trabajo simplifican el desarrollo de aplicaciones encapsulando los pasos del flujo de trabajo como "actividades". En la primera versión de Windows Workflow Foundation, un desarrollador tenía que crear un host para el flujo de trabajo. La siguiente versión de Windows Workflow Foundation se integró con WCF. Esto permitía que cualquier flujo de trabajo se hospedara fácilmente en un servicio WCF. Para ello, elija automáticamente el tipo de proyecto WF/WCF en Visual Studio 2012 o posterior.

Microsoft BizTalk Server R2 también usa WCF como tecnología de comunicación. BizTalk está diseñado para recibir y transformar datos de un formato normalizado en otro. Los mensajes deben entregarse en su cuadro de mensajes central, donde es posible transformar el mensaje utilizando una asignación estricta o mediante una de las características de BizTalk, como su motor de flujo de trabajo. BizTalk ahora puede usar el adaptador de línea de negocio (LOB) de WCF para entregar mensajes al cuadro de mensaje.

Microsoft Silverlight es una plataforma para la creación de sofisticadas aplicaciones web interoperables que permiten a los desarrolladores crear sitios Web con uso intensivo de contenidos multimedia (como la transmisión de vídeo por secuencias). A partir de la versión 2, Silverlight ha incorporado WCF como tecnología de comunicación para conectar aplicaciones de Silverlight a puntos de conexión de WCF.

Las características de hospedaje de Windows Server AppFabric application server están diseñadas específicamente para implementar y administrar aplicaciones que usan WCF para la comunicación. Las características de hospedaje incluyen herramientas enriquecciones y opciones de configuración diseñadas específicamente para aplicaciones habilitadas para WCF.

Consulta también