WCF Services


Tengo que hacer unos web services que usen https y se autentiquen con certificados X.509 y por lo tanto me puse a leer WCF para ver si me solucionaban parte del problema.

Para empezar elegí el libro Programming WCF Services y me lo compré en Amazon.
Está bueno, aunque son mas de 600 páginas de archivos xml de configuración y muchas lineas de código.

Me gustaron algunas frases:

Preface
In August 2001 I first learned the details of an effort in Microsoft to rewrite COM+ using managed code. Nothing much happened after that. Then, in July 2002, during a C# Strategic Design Review, the remoting program manager outlined in broad strokes plans to rework remoting into something that developers should actually use.


Es bueno que MS reconozca que en este tema tenian un producto bastante dificil de usar por los desarrolladores. Tuve la suerte de participar en un proyecto que usó (o intentó usar) Remoting (3 capas con .NET) y que no pudo se instalado en tres capas por problemas de deployment. Funcionó correctamente y sigue funcionando hasta el dia de hoy, en dos capas.

Apendix A

Me gustó el resumen que de la transicion assembler/3GL/Objetos/Componentes/Servicios.

Assembler
En este apendice explica la evolución de las diversas tecnologías que nos han acompañado. Empieza contando las maquinas para decifrar codigos de los alemanes, donde el hardware estaba pegado al diseño de la computadora.
Despues pasa al assembler, donde ya no hay que modificar hardware, para modificar el funcionamiento del programa o la maquina, pero los programas solo funcionan en una sola arquitectura de maquina. Si tengo algo programado para 8bits, no puedo hacerlo funcionar en una maquina de 16 bits.

3GL
Luego se pasa al COBOL/FORTRAN, donde se introducen los compiladores. Se eleva el nivel de abstraccion y es el compilador el que traduce a asembler de cada maquina.
El problema que surge aqui, es que estos programas con sus GOTO y JUMPS queda mezclado el codigo con la estructura del programa.

Programación estructurada
En los 70 aparecen C y Pascal y la programacion estructurada. Es por esa epoca que se empieza a hablar de reutilizacion y la minima unidad de reutilizacion es la funcion.
El problema que surge aqui es que la funcion esta atada a los datos y si los datos son globales, un cambio en una funcion puede dañar a otra funcion en algun otro lado.

Orientacion a Objetos.
En los 80s, aparecen Smalltalk y C++, donde lo que se reusa son clases. Con ello aparecen la herencia y los problemas de serialización y persistencia.
Cuando se quiere distribuir una aplicación en varias maquinas, C++ tiene algunas limitantes, pues no se puede tener acceso directo la memoria de otras maquinas.

Componentes.
Al tener dichos problemas, aparecen las bibliotecas (.lib) y bibliotecas dinámicas (.dll) y luego COM.
Lo que se reusan aquí son las interfaces y se puede cambiar la implementación sin cambiar la interfaz.
Este modelo trae como problema que se necesita gran cantidad de esfuerzo en la configuración del entorno ("plumbing") para controlar la seguridad, versionado, transacciones, protocolos, concurrencia.

Orientación a Servicios.
La idea es concentrarse mas en programar la logica del negocio y menos en todo lo necesario para hacer que la aplicación funcione.
Una aplicación es la agregación de servicios, de forma parecida a que una aplicación orientada a objetos, es una agregación de objetos.

If you examine the brief history of software engineering just outlined, you notice a pattern: every new methodology and technology generation incorportates the benefits of its preceding thechnology and imporvew on the deficiencies of its preceding technology. However, every new generation also introduce new challenge. I say that modern software engineering is the ongoing refinement of the ever-increasing degrees of decoupling.

Comentarios

  1. Para hacer lo que quieres con WCF te recomiendo que vayas al sitio de esta mujer, que tambien escribio un libro, y te bajes los ejemplos del mismo. Particulrmente en el capitulo 7 tiene un ejemplo de lo que quieres implementar.
    http://www.thatindigogirl.com/LearningWCFCode.aspx

    ResponderBorrar
  2. Sebastian: Habia leido tu post http://sgomez.blogspot.com/2007/12/wcf-security-with-deklarit-membership.html, aunque no uso deklarit, me servia como referencia, para saber como estan resolviendo algunos problemas.

    El libro de Learning WCF parece estar bueno y los ejemplos tambien. Gracias por el link.

    Despues cuento como me fue.

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.