2010-03-16 38 views
6

Estoy tratando de entender qué es WCF, pero no puedo obtener una comprensión visual de cómo agrega valor (leer msdn no ayuda). He trabajado con COM en el pasado, y sé sobre servicios web. ¿Puede alguien arrojar algo de luz sobre lo que es WCF y sus pros y contras (tal vez cómo se relaciona con COM o reemplaza a COM, etc.)?¿Qué es WCF (y pros y contras)?

Si puedo visualizar el diseño de la arquitectura, puedo comenzar a entender qué componente hace qué función.

Los enlaces a sitios web de referencia también serían geniales.

Gracias

Respuesta

7

No recomiendo comparar WCF a COM.

Windows Communication Foundation tiene que ver con la comunicación: en particular, desde el sitio web de WCF, "proporciona un modelo de programación unificada para crear rápidamente aplicaciones orientadas a servicios que se comunican a través de la web y la empresa".

Es realmente un enfoque diferente para la comunicación entre procesos, unificándolo. Lo hace para que pueda utilizar una API limpia y orientada a servicios para todas las comunicaciones entre procesos, y cambiar fácilmente la tecnología subyacente utilizada por los servicios (es decir, cambiar de HTTP a TCP a Tuberías, etc.).

Al aprovechar WCF, puede realizar procesos que se comuniquen entre ellos de una manera limpia y consistente. La misma API se puede usar para hablar con servicios web, pasar datos entre dos aplicaciones de escritorio o la comunicación entre el escritorio y un servicio en un sistema. En todos los casos, puede cambiar fácilmente los protocolos utilizados, etc.

Esto proporciona una gran flexibilidad con un solo kit de herramientas.


En cuanto a ventajas y desventajas en comparación con otras opciones - Hay un montón de ventajas, sobre todo en términos de ser capaz de utilizar un modelo de desarrollo unificado. Personalmente, utilizo WCF para todas mis necesidades actuales de IPC, ya que prácticamente se reemplaza la comunicación remota como la API preferida para IPC en .NET.

El problema principal sería el rendimiento en algunos escenarios específicos. El uso de WCF agrega una sobrecarga (leve), por lo que, en algunas situaciones, realizar su propio desarrollo de socket de bajo nivel tendrá un mejor rendimiento. A menos que esté escribiendo un juego en tiempo real o algo así, el esfuerzo de desarrollo involucrado en un protocolo de comunicación de bajo nivel no vale la pena.

+0

WCF se puede comparar con DCOM, creo que eso es lo que el autor quiso decir – Andrey

+0

@Andrey: Bueno, realmente reemplaza la necesidad de DCOM, pero yo personalmente creo que el modelo mental es lo suficientemente diferente como para pensar en la terminología de DCOM realmente duele ser capaz de asimilar WCF ... –

+0

¿Puede alguno de ustedes dar un ejemplo del mundo real donde WCF podría ser utilizado, y cómo esa situación sería menos eficiente si WCF lo hiciera? ¿no existe? – user279521

1

WCF es un marco muy general para las comunicaciones Interproceso/Intermachine. Eso es. Para las opciones de .net son: red de comunicación personalizada, servicio web, .Net remoto. WCF sustituye el servicio web (compatible con versiones anteriores) y .Net remoto (no compatible con versiones anteriores) por la demostración de un amplio conjunto de opciones y funciones de comunicación. Puede usar diferentes capas de transporte: tcp, servicio web, msmq