WCF: descripción general
WCF son las siglas de Windows Communication Foundation. La característica elemental de WCF es la interoperabilidad. Es una de las últimas tecnologías de Microsoft que se utiliza para crear aplicaciones orientadas a servicios. Basado en el concepto de comunicación basada en mensajes, en el que una solicitud HTTP se representa de manera uniforme, WCF hace posible tener una API unificada independientemente de los diversos mecanismos de transporte.
WCF se lanzó por primera vez en 2006 como parte del marco .NET con Windows Vista y luego se actualizó varias veces. WCF 4.5 es la versión más reciente que ahora se usa ampliamente.
Una aplicación WCF consta de tres componentes:
- Servicio WCF,
- Host de servicio WCF y
- Cliente de servicio WCF.
La plataforma WCF también se conoce como modelo de servicio.
Conceptos fundamentales de WCF
Mensaje
Se trata de una unidad de comunicación que consta de varias partes además del cuerpo. Las instancias de mensajes se envían y reciben para todos los tipos de comunicación entre el cliente y el servicio.
Punto final
Define la dirección donde se enviará o recibirá un mensaje. También especifica el mecanismo de comunicación para describir cómo se enviarán los mensajes junto con la definición del conjunto de mensajes. Una estructura de un punto final consta de las siguientes partes:
Habla a
La dirección especifica la ubicación exacta para recibir los mensajes y se especifica como un identificador uniforme de recursos (URI). Se expresa como esquema: // dominio [: puerto] / [ruta]. Eche un vistazo a la dirección que se menciona a continuación:
net.tcp: // localhost: 9000 / ServiceA
Aquí, 'net.tcp' es el esquema del protocolo TCP. El dominio es 'localhost', que puede ser el nombre de una máquina o un dominio web, y la ruta es 'ServiceA'.
Unión
Define la forma en que se comunica un punto final. Se compone de algunos elementos vinculantes que conforman la infraestructura de comunicación. Por ejemplo, un enlace establece los protocolos utilizados para el transporte como TCP, HTTP, etc., el formato de codificación del mensaje y los protocolos relacionados con la seguridad y la confiabilidad.
Contratos
Es una colección de operaciones que especifica qué funcionalidad expone el endpoint al cliente. Por lo general, consta de un nombre de interfaz.
Hosting
El hospedaje desde el punto de vista de WCF se refiere al hospedaje del servicio WCF que se puede realizar a través de muchas opciones disponibles como autohospedaje, hospedaje IIS y hospedaje WAS.
Metadatos
Este es un concepto importante de WCF, ya que facilita la interacción entre una aplicación cliente y un servicio WCF. Normalmente, los metadatos para un servicio WCF se generan automáticamente cuando están habilitados, y esto se realiza mediante la inspección del servicio y sus extremos.
Cliente WCF
Una aplicación cliente que se crea para exponer las operaciones del servicio en forma de métodos se conoce como cliente WCF. Esto puede ser alojado por cualquier aplicación, incluso la que hace el servicio de alojamiento.
Canal
El canal es un medio a través del cual un cliente se comunica con un servicio. Se apilan diferentes tipos de canales y se conocen como pilas de canales.
JABÓN
Aunque se denomina "Protocolo simple de acceso a objetos", SOAP no es un protocolo de transporte; en cambio, es un documento XML que consta de una sección de encabezado y cuerpo.
Ventajas de WCF
Es interoperable con respecto a otros servicios. Esto contrasta claramente con .NET Remoting en el que tanto el cliente como el servicio deben tener .Net.
Los servicios WCF ofrecen una mayor confiabilidad y seguridad en comparación con los servicios web ASMX (Active Server Methods).
La implementación del modelo de seguridad y el cambio de enlace en WCF no requieren un cambio importante en la codificación. Solo se requieren algunos cambios de configuración para cumplir con las restricciones.
WCF tiene un mecanismo de registro integrado, mientras que en otras tecnologías, es esencial realizar la codificación necesaria.
WCF ha integrado AJAX y soporte para JSON (notación de objetos JavaScript).
Ofrece escalabilidad y soporte para los próximos estándares de servicios web.
Tiene un mecanismo de seguridad predeterminado que es extremadamente robusto.