No es oro todo lo que reluce

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?

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

5 comentarios en “No es oro todo lo que reluce”

  1. Ibon
    efectivamente, algo tan simple como http://msdn2.microsoft.com/En-US/library/aa395208.aspx no deberia ser tan complicado (que juego de palabras mas extraño).

    Se que en .Net 3.5 hay mejoras y significantes para Indigo (upps) WCF y puedes ver un listadito aqui http://www.theserverside.net/blogs/thread.tss?thread_id=45946.

    Personalmente, creo que WCF, tal cual como tu dices, por su falta de simplicidad pierde muchos puntos. Pero tambien reconozco que prefiero WCF a aplicaciones, con WebServices o Remoting, o comunicaciones propietarias, o no se … lo q se le haya ocurrido al developer de turno.

    Saludos

  2. Sobre esto ya sabes de sobra lo que opino Ibon, de hecho por el proyecto en el que trabajamos hemos hablado de todos estos temas. Tienes mucha razón en algunas cosas pero a mi es que me molan los Ferraris y despues de un par de cursos de condución como llevas estoy seguro que no podrías vivir sin sus sensaciones….

    Con respecto a Orcas… más bien lo contrario, nuevos binding para soportar los ‘servicios durables’, no se si es una buena traducción, nuevos behaviors y pequeñitas cosas para dar soporte a estas cosillas que les gusta a los de UIx, ajax y mariconadas varias 🙂 🙂 jeje Hay que joderse que despues de hablar de lo que mejoramos con SOAP, validacion de esquemas la WS* tenemos que tragar Plain Old Xml, JSon etc.. etc..

    Una pena que la gira de Innovation Days no pasara por Bilbao así verías de ‘mi primera mano’ 🙂 las novedades de WCF y WF…

    Abrazos titán

  3. A Unai le mola los Ferraris (¡pero como te mola!).

    A mí me molan los Ferraris para una autopista.
    Para una carretera secundaria o comarcal, con un vehículo de menos prestaciones voy sobrado, el Ferrari sería demasiado arroz para tan poco pollo si le queremos poner otro refrán.

    Según leía tu post Ibón, estaba viendo que tal cuál, expresa mis primeras impresiones de WCF cuando me enfrenté a él.
    A mí me parece muy complicado, pero muy potente como bien dices. Quizás haya que dominarlo no bien, si no fabulosamente bien para que WCF no nos domine a nosotros.

    Supongo que es cuestión de gustos y de experiencia, pero poniéndome la gorra del novato de WCF para entender más y mejor a quién se enfrenta por primera vez a WCF como lo hice yo en su día, lo veo potentísimo… sí sí, pero muy complejo, y en proyectos sencillos, resulta a veces engorroso, pero terminaré con otro refrán (que me gustan mucho), nunca llueve a gusto de todos. 🙂

  4. Aunque quizá esta discusión se me pueda quedar un poco grande por mi poca experiencia con WCF, creo que la gran ventaja de WCF es el futuro.
    Y con esto quiero decir que la gran ventaja que le veo a WCF es que cualquier aplicación que desarrollemos debe ser extensible y estar abierta al futuro, contemplando nuevas posibilidades o simplemente mejorando las ya existentes.
    Y es en este punto donde creo que el hecho de usar un «Ferrari» para llevar a cabo una tarea, en un principio sencilla, puede en un futuro no muy lejano ayudarnos a hacer las cosas mejor y de manera más sencilla.
    Además debemos tener en cuenta que WCF, como todo lo nuevo, posee una curva de aprendizaje, y que una vez superada nos moveremos como pez en el agua.
    Un saludo 😛

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *