Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 punto de conexión de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS o puede ser un servicio hospedado en una aplicación. Un punto de conexión puede ser un cliente de un servicio que solicita datos de un punto de conexión del servicio. Los mensajes pueden ser tan simples como un solo carácter o una palabra enviadas como XML, o tan complejas como un flujo de datos binarios. Algunos escenarios de ejemplo incluyen:
Un servicio seguro para procesar transacciones empresariales.
Servicio que proporciona datos actuales a otros usuarios, como un informe de tráfico u otro servicio de supervisión.
Un servicio de chat que permite a dos personas comunicar o intercambiar datos en tiempo real.
Una aplicación de panel que sondea uno o varios servicios para obtener datos y los presenta de manera lógica.
Exponer un flujo de trabajo implementado mediante Windows Workflow Foundation como servicio WCF.
Era posible crear esas aplicaciones antes de la existencia de WCF, pero WCF hace que el desarrollo de puntos de conexión sea más fácil que nunca. En resumen, WCF está diseñado para ofrecer un enfoque manejable para crear servicios web y clientes de servicios web.
gRPC como alternativa a WCF
gRPC es un marco RPC moderno que es una alternativa popular a WCF. gRPC se basa en HTTP/2, que proporciona una serie de ventajas sobre WCF, entre las que se incluyen:
- Rendimiento: gRPC es mucho más eficaz que WCF, especialmente para las conexiones de larga duración.
- Escalabilidad: gRPC está diseñado para escalar a un gran número de clientes y servidores.
- Seguridad: gRPC admite una variedad de mecanismos de seguridad, como TLS y autenticación.
- Multiplataforma: gRPC es independiente de la plataforma y se puede usar con una variedad de lenguajes de programación.
Para obtener más información sobre el desarrollo o la migración de aplicaciones WCF a gRPC, consulte:
- ¿Por qué se recomienda gRPC para desarrolladores de WCF?
- Comparación de WCF con gRPC
- Introducción a gRPC para desarrolladores de WCF
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 del servicio
Una consecuencia del uso de estándares WS es que WCF permite crear aplicaciones orientadas a servicios . La arquitectura orientada a servicios (SOA) es la dependencia de los servicios web para enviar y recibir datos. Los servicios tienen la ventaja general de estar acoplados de forma flexible en lugar de codificarse de forma rígida de una aplicación a otra. Una relación de acoplamiento flexible implica que cualquier cliente creado en cualquier plataforma puede conectarse a cualquier servicio siempre que 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, consulte Interoperabilidad e integración.
Patrones de varios mensajes
Los mensajes se intercambian en uno de varios patrones. El patrón más común es el patrón de solicitud y respuesta, donde un punto de conexión solicita datos de un segundo punto de conexión. y el otro extremo responde. Hay otros patrones, como un mensaje unidireccional en el que un único punto de conexión envía un mensaje sin ninguna expectativa de respuesta. Un patrón más complejo es el patrón de intercambio dúplex en el que dos puntos de conexión establecen una conexión y envían datos de vuelta y vuelta, 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, consulte Contratos.
Metadatos del servicio
WCF admite la publicación de metadatos del 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 a través de HTTP y HTTPS o mediante el estándar de Intercambio de metadatos del servicio web. Para obtener más información, vea Metadatos.
Contratos de datos
Dado que WCF se construye con el .NET Framework, también incluye métodos compatibles con el código para definir los contratos que desea hacer cumplir. Uno de los tipos universales de contratos es el contrato de datos. En esencia, al codificar el servicio mediante Visual C# o Visual Basic, la manera más fácil de controlar los datos es mediante la creación de clases que representan una entidad de datos con propiedades que pertenecen a la entidad de datos. WCF incluye un sistema completo para trabajar con datos de esta manera fácil. Una vez que haya creado las clases que representan los datos, el servicio genera automáticamente los metadatos que permiten a los clientes cumplir con los tipos de datos que ha diseñado. Para obtener más información, consulte Uso de contratos de datos.
Seguridad
Los mensajes se pueden cifrar para proteger la privacidad y puede requerir que los usuarios se autentiquen antes de poder recibir mensajes. La seguridad se puede implementar mediante estándares conocidos como SSL o WS-SecureConversation. Para obtener más información, consulte Seguridad.
Varios transportes y codificaciones
Los mensajes se pueden enviar en cualquiera de varios protocolos de transporte integrados y codificaciones. El protocolo y la codificación más comunes es enviar mensajes SOAP codificados de texto mediante el Protocolo de transferencia de hipertexto (HTTP) para su uso en World Wide Web. Como alternativa, WCF permite enviar mensajes a través de TCP, canalizaciones con nombre o MSMQ. Estos mensajes se pueden codificar como texto o usar un formato binario optimizado. Los datos binarios se pueden enviar de forma eficaz mediante el estándar MTOM. Si ninguno de los transportes o codificaciones proporcionados se adapta a sus necesidades, puede crear su propio transporte personalizado o codificación. Para obtener más información sobre los transportes y las codificaciones compatibles con WCF, vea Transportes.
Mensajes confiables y en cola
WCF admite el intercambio de mensajes confiable mediante sesiones confiables implementadas a través de mensajería de WS-Reliable y mediante MSMQ. Para obtener más información sobre la compatibilidad con mensajería confiable y en cola en WCF, consulte Colas y sesiones de confianza.
Mensajes duraderos
Un mensaje duradero es uno que nunca se pierde debido a una interrupción en la comunicación. Los mensajes de un patrón de mensaje duradero 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 restaura la conexión. También puede crear un mensaje duradero mediante Windows Workflow Foundation (WF). Para obtener más información, consulte Servicios de flujo de trabajo.
Transacciones
WCF también admite transacciones con uno de los tres modelos de transacción: WS-AtomicTransactions, las API del System.Transactions espacio de nombres y el Coordinador de transacciones distribuidas de Microsoft. 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 web 2.0 en evolución. WCF se puede configurar para procesar datos XML "sin formato" que no se encapsulan en una envoltura SOAP. WCF también se puede ampliar para admitir formatos XML específicos, como ATOM (un estándar RSS popular) e incluso formatos no XML, como notación de objetos JavaScript (JSON).
Extensibilidad
La arquitectura WCF tiene una serie de puntos de extensibilidad. Si se requiere funcionalidad adicional, hay 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 Extensión de 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 era Windows Workflow Foundation (WF). Los flujos de trabajo simplifican el desarrollo de aplicaciones mediante la encapsulación de 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 ha integrado con WCF. Esto permitió que cualquier flujo de trabajo se hospede 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 utiliza WCF como tecnología de comunicación. BizTalk está diseñado para recibir y transformar datos de un formato estandarizado a otro. Los mensajes deben entregarse a su buzón central de mensajes, donde el mensaje se puede transformar utilizando una asignación estricta o mediante una de las funciones de BizTalk, como su motor de procesamiento de flujos de trabajo. BizTalk ahora puede usar el adaptador de línea de negocio (LOB) de WCF para entregar mensajes al cuadro de mensaje.
Las características de hospedaje del servidor de aplicaciones AppFabric de Windows 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 enriquecidas y opciones de configuración diseñadas específicamente para aplicaciones habilitadas para WCF.