Archivo

Archivo para la categoría ‘Desarrollo’

[Evento] Porque hay todo un mundo nuevo más allá de C#…

Miércoles, 30 de Septiembre de 2009 jgamba View Comments

… Los invitamos a un evento virtual de la comunidad ALT.NET Hispano con el tema “La explosión delenguajes sobre .NET”. Esto será el próximo viernes 2 de octubre a la hora internacional 17:00 GMT/GTU (Greenwich), con una duración aproximada de 2 horas.

En esta ocasión, nuestro expositor principal invitado es Martín Salías, quien tiene más de 25 años de experiencia trabajando como desarrollador y arquitecto de software, período durante el cual ha trabajado sobre diversas plataformas y lenguajes de programación. Además, Martín posee la distinción MVP de Microsoft, es miembro de la Agile Alliance y vicepresidente del Grupo de Usuarios Microsoft de Argentina.

Respecto a lo que podemos esperar en su exposición, el mismo Martín comenta:

mi idea es charlar un poco entre todos sobre el
florecimiento de los lenguajes en entornos manejados. Me parece que no es
coincidencia que en el ambiente Java esté pasando algo similar a lo que
tenemos en .NET.

Lenguajes Dinámicos:
JVM: Jython, JRuby, Groovy
.NET: IronPython, IronRuby

Lenguajes funcionales:
JVM: Scala, Clojure
.NET: F#, C# (¡cada vez más!)

Otros:
Ioke (JVM/.NET), Boo (.NET)

Y ni hablar de todos los proyectos del Maestro: ajSharp, ajBasic, ajProlog,
ajTalk, ajScheme, ajSharpure, ajLogo…   :D

Me parece interesante repasar juntos los objetivos y desarrollo histórico
del CLR, el DLR, y cómo impactó en esta nueva tanda de lenguajes la
influencia del ambiente Open Source, que es tan cercano al espíritu Alt.NET.

Como pueden notar, son temas que nos interesan a todos los desarrolladores que trabajamos sobre la plataforma .NET. Si desean, pueden participar en la discusión previa al evento con sus comentarios.

El estilo de nuestras reuniones es el de desconferencia, por lo que procuramos la participación activa de los asistentes que deseen intervenir durante el desarrollo de la reunión, no solo con el planteamiento de preguntas, sino también con la exposición y opinión en algunos aspectos. Hay más detalles del estilo y cómo atender nuestras reuniones en nuestra página Descripción de Reuniones.

Para atender la reunión deben usar el programa Microsoft Office Live Meeting 2007 client, abriendo el enlace http://snipr.com/virtualaltnet. Consulte la hora que corresponde con su localidad, en la página Equivalencias Horarias, o si lo prefiere puede acceder a nuestro calendario Google o bien descargar el iCal de este evento en particular para importarlo a Outlook u otro calendario.

Por último, les dejo la lista de recursos compartidos de los que disponemos en la comunidad:

Categories: ALT.NET, Desarrollo Tags: ,

[Evento] Viendo la luz respecto a “Generación de Código”

Jueves, 24 de Septiembre de 2009 jgamba View Comments

La comunidad ALT.NET Hispano realizará un evento virtual con el tema Generación de Código, con la exposición principal del reconocido especialista y maestro en desarrollo de software Angel “Java” Lopez. Será el día sábado 26 de septiembre a la hora internacional 18:00 GMT/GTU (Greenwich), con una duración aproximada de 2 horas. Para atender la reunión deben usar el programa Microsoft Office Live Meeting 2007 client, abriendo el enlace http://snipr.com/virtualaltnet.

Angel “Java” Lopez, poseedor de la distinción MVP, se declara “un entusiasta de la generación automática de código” y tiene con qué demostrarlo, por un lado, están sus múltiples publicaciones y cursos sobre la materia y hasta un proyecto Open Source llamado AjGenesis que genera prácticamente de todo tipo de objetos para una aplicación.

El estilo de nuestras reuniones es el de desconferencia, por lo que procuramos la participación activa de los asistentes que deseen intervenir durante el desarrollo de la reunión, no solo con el planteamiento de preguntas, sino también con la exposición y opinión en algunos aspectos. Hay más detalles del estilo y cómo atender nuestras reuniones en nuestra página Descripción de Reuniones.

Angel nos presentará al comienzo algunas ideas, trabajos y ejemplos, orientados a generar código desde un modelo, esto sin duda incluirá demostraciones con AjGenesis. El también recomienda leer los siguientes artículos:

Sobre la generación de código
Diez reglas principales en generación de código
La generación de código y el trabajo de desarrollo de software

Consulte la hora que corresponde con su localidad, en la página Equivalencias Horarias, o si lo prefiere puede acceder a nuestro calendario Google o bien descargar el iCal de este evento en particular para importarlo a Outlook u otro calendario. También puedes consultar nuestras reuniones anteriores, en video en Historial de Reuniones.

Adiconalmente, pueden plantear sus comentarios e inquietudes sobre el tema de la reunión en la discusión Invitación a VAN Hispano Sábado 26 de septiembre – “Generación de código” con Angel “Java” Lopez, en nuestra lista de correo.

Por último, les dejo la lista de recursos compartidos de los que disponemos en la comunidad:

Tu oportunidad para aclarar todas las dudas sobre ORM

Viernes, 18 de Septiembre de 2009 jgamba View Comments

La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un evento virtual con el tema ORM – teoría (Object-relational mapping), a cargo de Fabio Maulo (Team Leader de NHibernate). Será el día sábado 19 de septiembre a la hora internacional 18:00 GMT/GTU (Greenwich), con una duración aproximada de 2 horas. Para atender la reunión deben usar el enlace http://snipr.com/virtualaltnet el cual les demandará el uso del programa Microsoft Office Live Meeting 2007 client.

Los temas que se tratarán son:

  • Conceptos básicos de ORM
  • Técnicas de POID
  • Técnicas de mapeo de herencia
  • Técnicas de mapeo asociaciones/agregaciones
  • Implementaciones de Concurrencia
  • Uso de StoredProcedure/Triggers
  • Características destacadas de un PersistentLayer

El estilo de nuestras reuniones es el de desconferencia, por lo que procuramos la participación activa de los asistentes que deseen intervenir durante el desarrollo de la reunión, no solo con el planteamiento de preguntas, sino también con la exposición y opinión en algunos aspectos. Hay más detalles del estilo y cómo atender nuestras reuniones en nuestra página Descripción de Reuniones.

Consulte la hora que corresponde con su localidad, en la página Equivalencias Horarias, o si lo prefiere puede acceder a nuestro calendario Google o bien descargar el iCal de este evento en particular para importarlo a Outlook u otro calendario. También puedes consultar nuestras reuniones anteriores, en video en Historial de Reuniones.

Adiconalmente, pueden plantear sus comentarios e inquietudes sobre el tema de la reunión en la discusión Invitación a VAN Hispano Sábado 19 de septiembre – ORM con Fabio Maulo, en nuestra lista de correo.

Por último, les dejo la lista de recursos compartidos de los que disponemos en la comunidad:

¿Te gustaría preguntarle algo al Team Leader de NHibernate?

Viernes, 22 de Mayo de 2009 jgamba View Comments

… Este Domingo 24 de Mayo tendrás la oportunidad.

Fabio Maulo (Team Leader de NHibernate) estará este Domingo en una reunión VAN (Virtual ALT.NET) de la comunidad ALT.NET Hispano, por supuesto, el tema será NHibernate, hay una gran variedad de temas que se podrán tratar, aunque de seguro dará para una serie de varias ‘VAN Hispano’, la discusión de los temas a incluir en esta primera reunión se encuentra en la entrada Van sobre NH de la lista de correo de nuestro grupo de usuarios, discusión en la que aún se puede participar.

Es importante mencionar que el estilo de la reunión será Desconferencia, por lo que la participación de los asistentes no solo es posible sino deseable, de modo que si alguien puede no solo formular preguntas, sino también dar sugerencias, exponer sus puntos de vista, experiencias y hasta compartir recursos como código fuente, sitios web o documentos, en fin, será una reunión muy abierta, aunque por supuesto, conservando cierto orden.

La hora del encuentro será las 3:00 p.m. (GMT –3) y su duración será aproximadamente dos horas, algunos ejemplos de horas locales correspondientes son:

    Zona Horaria (GMT) Ciudades Hora correspondiente
    -6 Ciudad de México 12:00 p.m.
    -5 Bogotá, Lima, Quito 1:00 p.m.
    -4 La Paz, Santiago 2:00 p.m.
    -3 Buenos Aires, Montevideo 3:00 p.m.
    +2 Madrid 8:00 p.m.

El lugar, por supuesto es virtual, usaremos Microsoft Office Live Meeting 2007, el enlace para unirse a la reunión es http://snipr.com/virtualaltnet. Para usar Live Meeting se debe descargar e instalar un complemento, por lo que se sugiere ingresar antes de la hora de la reunión, accediendo por el enlace indicado, si el complemento no está instalado, aparecerán las instrucciones para descargarlo.

Hasta el momento ya se han realizado 5 reuniones ‘VAN Hispano’, el detalle de cada una de estas (algunas incluyen video), se encuentra en la wiki de la comunidad, específicamente en la página Historial de reuniones. Para una mejor comprensión del movimiento ALT.NET se puede consultar la página ¿Qué es ALT.NET?.

Pueden suscribirse a la lista de correo AltNet-Hispano de Google Grupos para estar enterados y participar en las discusiones de las reuniones VAN Hispano.

El Software Ideal, Software “LEGO”*

Viernes, 23 de Enero de 2009 jgamba View Comments

¿Han soñado alguna vez con disponer de un software que se pueda amoldar a casi cualquier tipo de negocio, al menos los más comunes, y que según vayan surgiendo nuevos requerimientos como un nuevo negocio, aplicación, módulo, ventana, proceso o lo que sea, simplemente tengan que desarrollar un(os) sencillo(s) bloques de software que utilicen los bloques que ya estaban hechos, quizá removiendo o remplazando algunos y que todos estos bloques integrados conformen una sola estructura estable y coherente?

Ahora permítanme hacer una analogía con algo muy sencillo para que me comprendan mejor. Recuerdo que en mi infancia, mi juego favorito era uno llamado Armotodo, un sistema de fichas tipo LEGO*, seguramente ustedes están familiarizados con dicho juego y por eso no es necesario que me extienda en su descripción, baste con decir que se compone de un conjunto de piezas o bloques de distintas formas y colores que se podían unir para conformar lo que uno quisiera; de hecho parte del Jingle (lema con melodía) decía “todas las figuras que tu quieras construir”.

Seguramente eso les dará una idea la idea tras este tipo de software, pero antes de detallar sus posibles características, analicemos algunos de los problemas y necesidades que trataría de subsanar. Frecuentemente a la hora de encararnos a un nuevo proyecto de desarrollo buscamos reutilizar lo que ya teníamos, recurriendo a copiar, pegar y modificar código, haciendo esto sucesivamente se va creando redundancia y el desarrollo se va haciendo inmantenible.

¿Qué hacer entonces?, bueno, volviendo al Armotodo, este sistema aplica muchas ideas y principios útiles que deben balancearse de manera equilibrada.

Principios

Cada clase de bloque del Armotodo (componente) es única, su forma, color, tamaño y otros, hacen que tenga un propósito definido y diferente o complementario a los demás. En el software, se requiere que los componentes sean fuertemente cohesivos, en su interior pueden suceder muchas cosas, pero al resto de componentes no les debe interesar esto, solo sus propiedades y comportamiento, esto es, un acoplamiento débil. Los bloques conservan una interfaz común (taches y hendiduras) Los componentes deben respetar un lenguaje común aplicando estándares materializados en interfaces efectivas.

Lo único constante es el cambio y eso se puede asimilar con dos cosas reutilización y extensión, el primero es claro, debemos lograr crear componentes no perfectos pero si muy estables, algunos de propósito común como la autenticación de usuarios, encriptación y así por el estilo, otros con una finalidad muy específica, pero siempre pensando en que sean un bloque que podamos volver a incluir en un sistema diferente o en otra parte del mismo para no perder el conocimiento que ya hemos desarrollado. en cuanto a la extensión, siempre deberíamos buscar, en lo posible, no alterar nuestros componentes, de la misma manera que un niño no buscaría aserrar sus bloques para conseguir lo que busca sino que más bien consigue el bloque con las características esperadas y lo agrega a su estructura, para nosotros, crear o mejorar nuestras aplicaciones debe implicar extender.

Los términos claves hasta ahora han sido componente, cohesión fuerte, acoplamiento débil, reutilización y extensión, pero esto necesariamente debe ir acompañado de mantenibilidad o capacidad de mantenimiento, volviendo otra vez a la analogía, seguramente hemos visto como algunos niños comienzan a apilar un bloque encima de otro hasta que la columna finalmente se descompone al caer; debemos vigilar como construimos nuestra estructura para que al tiempo que construimos la afiancemos para que en el futuro sea fácil y efectivo efectuar ajustes.

Cuidados

Hay que ser razonables y tener cuidado para no terminar armando un Sistema o software Frankeninstein, de la misma forma que algunos pueden construir obras de arte con piezas LEGO*, otros hacen cosas sin sentido, hay que tener cierto talento y organización para mantener coherencia y estabilidad en nuestros desarrollos, haciendo selección cuidadosa de cada plan de desarrollo de un nuevo bloque o integración.

Recursos

Hay muchos estándares, prácticas, principios, técnicas y metodologías que se relacionan con las ideas que he expuesto en esta publicación, pero quisiera hacer mención especial de los Frameworks, hay para todo, por eso hay que tener cuidado en su selección, pero un tipo de Framework indispensable es de Inyección de Dependencia (DI) pues lo que nos permite pegar los componentes y/o intercambiarlos según las necesidades, haciendo uso de interfaces efectivas. En cualquier caso, hay que seleccionar cuidadosamente que recursos se emplean, pues algunos son muy compatibles entre sí, mientras que otros chocan.

Hay bastantes modelos, obviamente muchos otros ya han abordado la necesidad de software integrado, para citar un solo caso, el trabajo del grupo P&P (Patterns and Practices) con proyectos como Enterprise Library, SCSF, WCSF, WSSF y más recientemente Prism, todos ellos con una estructura modular, que aplica algunas de las ideas comentadas aquí.

Finalmente, quiero mencionarles que si bien este artículo ha sido muy general, pues no ha entrado en detalles para describir algunas tecnologías referidas en esta entrada, estos temas los estaré tratando más adelante, uno por uno progresivamente al tiempo que voy desarrollando unos tutoriales que serán más que simples Holamundos.

*LEGO es una marca registrada

Categories: Arquitectura, Desarrollo, Diseño Tags: