Boletín Oficial #3

 GRATIS!! CON ESTA EDICION, RECLAME SET DE HERRAMIENTAS PARA DESARROLLO DHTML (DOM, CSS, RSS Y MAS!!) 


Chupetín Topolín: golosina argentina que
venía acompañada de un juguete (regularmente
una miniatura de una juguera o un xilofón)

 

 No  me gusta publicar dos boletines seguidos en el blog, porque suena que empiezo a hacer "la fácil" con mi bitácora (qué palabrita tan fina) y a sólo comentar acerca de lo que otros hacen, sin aportar un valor genuino. Pero lo cierto es que en estos días me encuentro abocado a un post acerca de Web 2.0 y para ello estoy investigando y consumiendo información de diversas fuentes (libros, artículos, audios, etc) de modo de sintetizar algo entendible por nosotros -porque en realidad hay muchos conceptos no técnicos que hacen a Web 2.0, que se deben entender también para captar la oportunidad que se nos abrió con esta nueva movida-

Pues bien, en lo que al boletín respecta ha corrido tanta agua bajo el puente en este último mes (digamos, entre los 15 de Abril y Mayo) que, como siempre me pasa, me dolió sacar la tijera y la tentación de decir "mah, sí, vo meté todo" era altísima

Pero no es la idea de este boletín. No. La onda es contarte 10 cosas interesantes que tenés a mano para profundizar, para que tengas una idea de lo que Microsoft está haciendo con su plataforma -la uses o no- con la intención de que conozcas lo que tenés disponible para lograr aplicaciones empresariales de misión crítica en una forma sensata (y especialmente, ojalá, placentera!!)

Como premio al mejor lector, esta vez te estoy arrimando una herramienta que, si vos o tus desarrolladores se estaban volviendo bizcos punteando tags HTML en sus páginas web, te va a venir al pelete. Se trata de la barra de herramientas para el desarrollador que se cuelta del Internet Explorer (versiones 5 en adelante) y te permite explorar y modificar el árbol DOM del documento que estés desplegando (no por agregar o sacar nodos pero sí de modificar sus atributos). También vas a poder ubicar un elemento específico en una página (sea por nombre o marcándolo visualmente y que te lo señale en el árbol), bosquejar los bordes de las tablas invisibles, validar gramáticas HTML, CSS, RSS y otras presentes en tu página (porque por mucho que se desplieguen bien, capaz que en Firefox, Opera o Safari no se ven bien), trabajar las imágenes embebidas en la página y con todo esto no te conté ni la mitad de todas las cosas que esta herramienta hace

Bueno, ahora sí, aquí están, estos son

 1 

Pariendo A Windows Server 2008: Salió la Beta 3
Allá por 1993 aparecía Windows NT, un windows para correr en servidores (hasta ese momento el networking de Microsoft se venía dando en forma peer-to-peer mediante la llamada edición Windows for Workgroups, también conocida como Windows 3.11)
En un principio hubo algo de descreimiento de que un servidor hecho por Microsoft pudiera destronar a UNIX. Aunque eso fue lo que finalmente pasó. No obstante el surgimiento de Linux hizo pensar en algún momento que el liderazgo del servidor Windows (que fue mutando de nombre, de NT pasó a llamarse "Windows 2000" a secas y ahora Windows Server -actualmente 2003 pero en un año más 2008-) podía verse perjudicado (y ni que contar de la suerte de UNIX, siendo que Linux estaba basado en UNIX pero además -excepto algunas distribuciones- no tiene costo). En los hechos algo de eso hubo: Linux se había empezado a comer parte de la torta de Microsoft y varias empresas distribuidoras de UNIX desaparecieron. Inclusive, durante la crisis conjunta que Latinoamérica padeció a principios de este siglo, varias empresas y también organismos gubernamentales tomaron la iniciativa de pasar a software de código abierto. Pero hoy esa tendencia parece haberse detenido y en varios casos, empresas que habían ido a Linux o que habían, incluso, iniciado con Linux, comenzaron a migrar a Windows Server (si bien aún quedan las que planean el camino recíproco)
Te dejo acá varias guías paso a paso. Y un webcast de las novedades y demos interesantes

 2 

Zachman o TOGAF? La de Gartner o la Federal? Una Sesión con Roger Sessions
Yo sé que no hay que recomendar las cosas por quién las hace sino por lo que son. Pero es que este artículo no sólo es muy revelador… El autor es un grosso, un monster of rock. Es director de IASA (algo así como el gremio de lo sarquiteto de computación). Escribió seis libros de modelado de arquitecturas (cuchame, yo apenas si escribo este blogcito), es MVP (most valuable professional, una distinción que Microsoft otorga a los que hacen cosas grossas con la plataforma de Billy y dirige un newsletter, ObjectWatch, que ya va por su décimo tercer aniversario (y pensar que el otro día yo estaba orgulloso de que mi blog cumplió un año)
En esta ocasión el muchacho se la toma con (no contra) las metodologías de modelado de arquitecturas empresariales (ojo al piojo, no estoy hablando de modelado en capas de una aplicación, sino del modelo completo de procesos de una organización -esto es, incluyendo cualquier aplicación Cliente/Servidor, en capas, etc: todo-). Las describe, compara y contrasta. El estudio es valiosísimo en sí. Pero encima, hecho por Sessions clap

 3 

MIX Remixado y Remasterizado
Si estás leyendo este blog es porque hablás castellano. Si hablás castellano es porque seguro (con un margen de error inferior al 1%) que tu patrón o vos mismo decidiste no ir a MIX, el evento más "Web 2.0" de Microsoft, que reúne desarrolladores de aplicaciones con diseñadores, porque el round trip salía muy caro. Me equivoqué? Si te sirve de consuelo, yo tampoco soy el nieto de Rockefeller pero por suerte, como ya había ocurrido el año pasado, las sesiones están disponibles (ojo, si bien está la lista de todas, las van subiendo por tandas y es posible que si visitas el sitio en estos días que publiqué el boletín, tengas la mala suerte de que querés ver una que no subieron aún, pero lo que no esté va a estar)
Lo novedoso es que Microsoft se come su propio pesto (en inglés a esto se lo llama eating your own dogfood, o "comerse la propia comida para perros" que es cuando consumís lo que vos mismo producís para mostrar que no te vas a morir ni te vas a envenenar) porque las sesiones se pueden ver online mediante Silverlight: un entorno gráfico (vectorial) y multimedial (audio y video) que se acopla a los browsers más conocidos en la misma forma en que Flash (originalmente de Macromedia, hoy de Adobe) lo hace. Es que Microsoft enfiló fuerte a pelear contra Adobe en ese terreno -Flash es hoy indiscutidamente usado en forma masiva (por mencionar algún clientito, Youtube, uno chico seguramente)-
Paralelamente, y porque de Web 2.0 se trata, las sesiones están también para Windows Media Player, iPod, Zune (ah, sí: el iPod de Microsoft, te conté? Microsoft enfiló fuerte contra Apple smile_embaressed) y, por último, en formato Powerpoint 2007 (OpenOffice y Google enfilaron fuerte contra Microsoft smile_tongue)
Si no tenés Office 2007 y necesitás abrir documentos de esta versión desde versiones previas de Word, Excel, etc, hacé click acá
Volviendo al MIX -porque ya mezclé demasiados temas, dicho sea de paso- las sesiones están muy bien agrupadas por tracks: tomadores de decisión, desarrolladores y diseñadores de interfaces

 4 

Programación en Biztalk… Y Ahora me lo Dicen?
Puede que tengas mucha o poca experiencia con Biztalk, que ya hayas implementado proyectos o que apenas si estés proyectando incursionar. Pero hay metidas de pata que solemos cometer no de inexpertos sino por no razonar lateralmente, no cuestionarnos si no habrá una forma mejor de hacer las cosas. Y después, como decía Nicolino Locche (una gloria del boxeo argentino), "la experiencia es un peine que recibís el día que te quedaste pelado"
Este artículo consiste en ocho paraguas a tener a mano para distintas tormentas que se pueden asomar mañana, aunque hoy todo se vea exitoso. Te va a servir aunque sea echarle un vistazo aunque no tengas nada que ver ni con Biztalk ni con la plataforma Microsoft, porque lo que más me decidió a seleccionar este artículo es la reusabilidad de varias de sus recomendaciones

 5 

Windows Compute Cluster Server: la Patota de Microsoft
Venís apurado? Tenés que correr procesos de misión crítica que no pueden esperar, llenos de cálculos complejos que te mandan la CPU al 100%? Ponete en onda, jovatón, te quedaste en el tiempo vos! No sabés que existe una versión de Windows para Cómputo de Alto Rendimiento (High Performance Computing o HPC)? Esta versión provée elementos para que procesos complejos puedan separar partes medianamente independientes para que se procesen en paralelo en diferentes procesadores (los que componen el cluster o súper computador)
Quince años atrás estos equipos eran tan caros que normalmente los gobiernos o las empresas más grandes podían darse el lujo de contar con esta tecnología. Hoy los costos han caído sobremanera y están accesibles para cualquier empresa mediana y/o proyecto científico -viste que normalmente los científicos se quejan de que nadie financia proyectos de investigación, no?-
Esta presentación te muestra en forma integral no sólo cómo trabaja el sistema operativo, sino también cómo se opera, administra y también -jé, sos desarrollador, no? Cómo se debuguea en paralelo con Visual Studio 2005-

 6 

Y Dale con Object/Relational Mapping: Ahora ADO.NET Entity Framework
Una presentación integral de la próxima versión de ADO.NET, aquella que extiende .NET mediante el agregado de mecanismos de consultas sobre objetos (LINQ o lenguaje integrado de consultas -integrado al framework .NET, se entiende-)
El presentador muestra también las extensiones a Visual Studio para mapear tablas y objetos en forma visual. No va de lleno a detalles tales como lazy loading (carga perezosa) para evitar sobrecarga de objetos pero tengo sabido que la futura versión de ADO.NET lo contempla (es interesante leer las revelaciones de Pablo Castro, Project Manager de ADO.NET, al respecto)

 7 

Conozcan Al Buchón de la Clase: System Center Operations Manager 2007
Muchachos, estamos en problemas. Porque System Center Operations Manager 2007, sucesor de Microsoft Operations Manager 2005, proyecta continuar la linea de su antecesor, deschavando el estado general del sistema (como ser "qué servidor se cayó", "cuál se está por caer", "qué proceso se está comiendo la CPU", etc
A los que desarrollan software .NET les quiero decir que si hacen uso inteligente de la biblioteca de Instrumentación, sus aplicaciones van a poder ser monitoreadas por Operations Manager. Esa biblioteca permite generar eventos Windows Management Instrumentation (WMI) que son capturados por el sistema operativo. Operations Manager se suscribe a estos eventos de manera de -como buen alcahuete- disparar alarmas (para más info al respecto, click acá. No obstante, te sugiero mucho que en lugar de usarla directamente le echés un vistazo a lo que los chicos de Patterns and Practices han hecho con el Logging and Instrumentation Application Block)

 8 

Objetos en JavaScript
JavaScript suele dar una mano piola, especialmente cuando se trata de evitar correrse un pique hasta el servidor web para validaciones menores y otras cosas que puedan degradar la experiencia del usuario (user experience o UX)
Lo que varias veces escuché, y compartí sobre JavaScript es que sí abrazaste el paradigma de Orientación a Objetos… bueno, acá de todo eso nada. JavaScript maneja un conjunto básico de objetos (Window, Navigator, y otros relacionados con browsers y HTML). Ahora, le preguntás de herencia (inheritance) a JavaScript y te contesta que sus antepasados no le dejaron un mango. Le preguntás si tiene algo para decir de polimorfimo y te dice "sí, polis: mucho, morfi: comer; polimorfismo es la facultad de tener varias comidas al día, no?"
Esto, obviamente, hacía que algunos developers pierdan el interés en este lenguaje de scripting y lo menospreciaran. Si estás en ese grupo, este artículo te va a mostrar cómo simular varias características de objetos (herencia, constructores, propiedades, etc) mediante el tipo function()

 9 

Negro el 11: El Journal de Arquitectura Número 11 Está Entre Nosotros
El amigo Simon nos arrima una edición más del magazine para Arquitectos de Software. Esta vuelta el eje pasa por Infraestructura para Aplicaciones de Misión Crítica
Vas a encontrar artículos sobre hosts escalables, computación de alto rendimiento (HPC, como te contaba en el punto 5), uno que me llamó muchísimo la atención porque aplica conceptos de Test-Driven Development (esto es, desarrollo de software, no infraestructura) para planear la plataforma (hardware, software de base)
También, como en todos los journals ocurre, siempre hay uno o dos artículos extra al tópico de la edición. En este caso se trata de un tema que es recurrente en orientación a servicios: el versionado. Porque, seh, el proveedor de un servicio está desacoplado del consumidor del mismo, sólo comparten el contrato por lo cual la implementación del servicio puede versionarse cuando se quiera sin necesidad de desplegar nada en los clientes y bla bla bla… Ahora… si lo que cambia es el contrato? (El contrato se compone de los mensajes de entrada y salida del servicio). Recorcholis, Batman!
Espero que te guste esta edición y, cualquier cosa, cuidadito con criticar que el director es mi jefe (el pájaro nunca le apunta a la escopeta, no sabías eso vos?)

 10 

Policy Injection Application Block: Aspect-Oriented Programming (AOP) en .NET?
Los amigos de Patterns and Practices no dicen eso directamente, pero si leés este artículo describen a este nuevo bloque de aplicación (incluído en la versión 3.0 de la Enterprise Library liberada el pasado 5 de Abril) como un proxeador transparente de objetos. Tecnicamente hablando, no es AOP. Pero si vamos a los bifes, AOP es un instrumento para resolver el problema del código enredado (tangled code, también llamado spaghetti code) al replicar en clases de negocio la lógica de ciertos intereses globales a toda la aplicación (autorización, por ejemplo, trazabilidad, etc). A estos intereses globales se los conoce como cross-cutting concerns
Un lenguaje se decía que era orientado a aspectos o AOP si al separar los intereses en componentes cohesivos(separation of concerns), permitía luego definir reglas de tramado (weaving rules), algo así como un surcido invisible que nos permita que al invocar directamente un método de una clase, algún otro aspecto como los que te mencionaba (seguridad, etc) se interponga en la llamada y haga lo que necesitemos que haga, pero sin que llamador o llamado se involucren directamente en esto
En realidad, .NET siempre permitió interceptar llamadas mediante un mecanismo, por decirlo suave y que no me rajen, cuestionable: la clase interceptada tenía que heredar de ContextBoundObject. Esto no es muy atractivo por cuanto nos hace perder grados de libertad siendo que .NET no permite herencia múltiple
Para ilustrar mejor lo que no me gusta del enfoque: qué pasa si la clase a interceptar es ClientePersonaJuridica que hereda de la clase abstracta Cliente? Si hago que ClientePersonaJuridica herede de ContextBoundObject voy a tener que copypastear todos los metodos de Cliente (lo que va a decantar en doble mantenimiento). Si no, hago que Cliente herede de ContextBoundObject (si no heredaba más que de Object aún, de lo contrario traslado ese problema al antecesor de Cliente). Qué querés que te diga… no digo que sea el apocalipsis pero no me gusta el approach
Otra cosa, perdón que esté criticón con la empresa que me da de comer, que no me gustaba del enfoque era que la intercepción se definía mediante atributos ContextAttribute en el código (o sea, no por configuración). Se suponía que la onda era desenredar el código al quitar llamadas a métodos de intereses globales en clases de negocio. Contame qué diferencia entre llamar a un interés al ppio o final del método, o decorar el método con un ContextAttribute. Quiero decir, el código va a seguir estando enredado (ya alguna vez me saqué la bronca de mi discrepancia con ese approach para simular AOP en un post memorable)
Bueno, este application block mejora sensiblemente ese enfoque. Si bien podés seguir definiendo pointcuts mediante atributos (que ahora basta con que implementen una interfaz llamada ICallHandler), también lo podés hacer -es más, hacelo así- mediante el archivo de configuración de la aplicación que usa Enterprise Library (y por ende, lo podés configurar con la herramienta que te permite mantener ese archivo sin tener que editarlo directamente). Es interesante la forma en que definís puntos de corte, porque puede ser mediante un pipeline de handlers (lo que garantiza el orden de intercepción, algo que no vas a poder predecir si usás atributos en el código), o mediante reglas de concordancia (matching rules). Con estas últimas vas a poder interceptar conjuntos más amplios, como por ejemplo "todos los métodos del espacio de nombres Cobranzas que devuelvan Pago" (qué me contás). En términos de AOP, en esas reglas tenés tus weaving rules
Respecto de las clases interceptables, al principio me sonó a más de lo mismo cuando ví algo como que debían heredar de MarshallByRef (.NET Remoting). Pero estaba ya por mandar mi "aaaaandá a cantarle a Gardel" cuando ví que eventualmente podés definir una interfaz con los métodos interceptables y que la clase a interceptar implemente la interfaz (eso no atenta contra la herencia múltiple, por cuanto una clase sí puede implementar varias interfaces). De nuevo, andate por esa alternativa: no te sugiero extender MarshallByRef. Además, interface-based programming es una práctica saludable
Bueno, si querés ver todo esto en acción hay un webcast de poquito más de una hora que te lo muestra

Mucho te conté en este boletín, mucho me ha quedado afuera (AJAX, Windows Communication Foundation, Seguridad, Performance, interoperabilidad con UNIX, Java, …). Pero todo eso lo podés seguir en mi otro blog: el MSDN Architecture Center smile_shades

Abrazo y hasta el próximo bulletin

Esta entrada fue publicada en Boletines de Arquitectura. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s