miércoles, 2 de julio de 2008

[WCF] Introducción

Bueno... voy a empezar con este una serie de posts dedicados a WCF, uno de los grandes pilares del framework 3 y que a mi, personalmente, me encanta...
Que es WCF? Bueno... pues resumiendo podriamos decir que se trata de una nueva API para la comunicación de aplicaciones o procesos. Sï, sí... una nueva API más. Hombre, la primera pregunta que uno se hace es si es necesaria otra API más, ya que en la historia microsoft relativamente reciente (vamos .NET) tenemos ya un buen número de APIs que se encargan de comunicar procesos de alguna manera u otra:
  1. System.Messaging: Para el uso de colas de mensajes, donde ni emisor ni receptor deben estar on-line.
  2. Servicios web asmx: Para la realización de servicios web en ASP.NET, que permiten interoperar aplicaciones realizadas en distintas tecnologias.
  3. WSE: Añade mejoras a los servicios web de ASP.NET para permitir el soporte de estándares más avanzados.
  4. .NET Remoting: Para el uso de aplicaciones .net basadas en objetos distribuidos.
  5. Enterprise Services: Para el uso de servicios COM+
En resumen... 5 APIs distintas para realizar lo mismo: comunicar procesos. Claro está que cada una tiene sus características y debe evaluarse cual debe usarse en cada caso... y ahí radica el primer problema: cuando arquitecturamos una aplicación tenemos que decidir cual de esas APIs vamos a usar para comunicar la aplicación con el exterior. Ojo, que son APIs completamente distintas, así que si nos equivocamos, cambiar de una a otra no es fácil.
Y ahora, aparece una nueva API... qué podemos decir de ella?
Pues básicamente que WCF es a las APIs de comunicaciones lo que el Anillo Único es en los Anillos de Poder: es una API para dominarlas a todas.

Para entendernos: WCF unifica todas las APIs de comunicaciones previamente existentes en una de sola. Da igual si vamos a usar web services, COM+, objetos distribuidos en .NET o colas de mensajes asíncronas: usaremos WCF para desarrollar la aplicación. Eliminamos pues la decisión de que API usar. A grosso modo podríamos decir que no hay necesidad en el framework 3, de usar ninguna de las otras APIs existentes (que evidentemente se mantienen): todo podemos hacerlo usando una sola API, usando WCF.

A los que tengais experiencia en la creación de aplicaciones distribuidas en .NET, esto igual os suena un poco a quimera: conceptualmente Servicios Web asmx y System.Messaging se parecen como un huevo a una castaña... ¿cómo se han podido unificar? Pues tranquilos: veremos que se ha podido y como se ha hecho ;-)

De momento vamos a quedarnos con dos conceptos clave:
  1. WCF unifica todo el resto de APIs de comunicaciones que existían en el universo .NET
  2. WCF es una API orientada a servicios: Los servidores exponen servicios que los clientes consumen.
En el próximo post vermos lo que los anglosajones llaman el ABC de WCF...

Saludos!

1 comentario:

Nicolas dijo...

Muchas Gracias! Copado el articulo, esperando el proximo post!