Con el lanzamiento del framework 3.0 de .NET se presentaba Windows Communication Foundation ( WCF ) como una verdadera revolución en el mundo de las comunicaciones.
En el número 37 de dotNetMania leía una entrevista a Ami Vora, Program Manager de .NET Framework 3.0, que decía:
«Creo que WCF es un API revolucionaria en muchos sentidos.Está pensada para facilitar la vida de los programadores, permitiendo que los programadores puedan mantener su foco en la lógica de la aplicación y no en las caracteristicas especiales que pueden necesitar como consecuencia de que la aplicacíón tenga que comunicarse con las demás.
Los programadores podrán añadir valor a sus aplicaciones haciendo que estén conectadas, de una forma sencilla, por una parte, y muy poderosa en sus posibilidades, sin tener que aprender distintas tecnologías en función del tipo de conectividad que se necesite en cada caso. Y todo esto sin importar el protocolo de comunicación, el lugar en donde tenga lugar esa comunicación o los mecanismos seleccionados en la transferencia.»
Ya llevo un tiempo trabajando con WCF y aunque sí que me parece una tecnología muy interesante y seguramente volvería a usarlo si empezara de un nuevo proyecto, no estoy de acuerdo con lo que se comenta en esta entrevista. No es oro todo lo que reluce.
Usar WCF no es tan sencillo como parece o como se dice. Es potente, sí, pero podríamos decir que en muchas ocasiones es demasiado potente. Esta potencia se vuelve contra nosotros y hace más complejo su uso.
Te dejar hacer cosas complejas de una manera «más sencilla» de como se podría hacer sin esta tecnología, pero en mi opinión se complica cuando lo que se quiere hacer no es tan completo. Si quieres hacer algo básico, sencillo, que no requiere de grandes aspavientos, no es tan sencillo como debería ser. En este punto creo que se ha optado por la potencia pero se ha olvidado que también debería ser sencillo de utilizar.
Podría ser como un Ferrari y un utilitario. WCF puede ser como un Ferrari, pero normalmente con un utilitario nos vale…Si para las situaciones habituales donde con un utilitario nos vale usamos un Ferrari las cosas se nos complican. Usar un Ferrari para ir a trabajar tiene que ser un poco complicado de aparcar. 🙂
He probado la «Web Service software Factory«, para ver si usándolo podría hacer más sencillo e intuitivo el uso de WCF pero nada. Está bien si se usa como referencia y para ver buenas prácticas a la hora de implementar una aplicación wcf, pero no pasa de ahí.
Por otro lado, tenemos que tener en cuenta que la gran mayoría de las decisiones de diseño y de arquitectura se toman en las fases iniciales del proyecto y entre estas decisiones se toman las decisiones referentes a las comunicacicaciones. Centrarse en la lógica de negocio olvidándonos de las comunicaciones se hace complicado y en muchos casos imposible. Por ello, aunque WCF te da una gran flexibilidad para cambiar la forma de comunicarse las aplicaciones rara vez se hará uso de esta flexibilidad.
Por último, tampoco considero que WCF nos abstraiga de las comunicaciones. Tienes que conocer muchos aspectos de las comunicaciones para poder hacer el diseño o la arquitectura de la aplicación y conocer bien cómo hacer funcionar correctamente un servicio; service Throttling, funcionamiento de las instancias, el manejo de sesión etc…
Por tanto, al «Cesar lo que es del Cesar». WCF es una tecnología interesante y potente, pero a la que en mi opinión le falta todavía algo para ser esa tecnología de la que habla Ami Vora en la entrevista. Sería interesante que Microsoft hiciera algo para Orcas pero parece que no será así o al menos no he leido nada sobre este tema.
Si habéis trabajado con WCF ¿ Qué os parece esta tecnología?¿Os parece sencilla?¿Estáis de acuerdo con las palabras de Ami Vora?