miércoles, 25 de noviembre de 2009

Evolución Tecnológica... ¿10 años no son nada?


La evolución Tecnológica en la Última Década

Es de común conocimiento el hecho de que la informática es una ciencia en constante evolución. Sin embargo, en los últimos 10 años fuimos testigos de un grado de avance tal que desbordó en la capacidad de adquirir conocimientos a no pocos profesionales en sistemas.

Uno de los hitos de este avance tan marcado fue el lanzamiento de la plataforma tecnológica Microsoft dotNet. No es mi objetivo en este momento describir dicha plataforma tecnológica, pero podemos hacer un resumen de su evolución:
¡Seis versiones en 8 años!

Como si esto fuera poco, Microsoft .Net no es un único producto, sino que es toda una plataforma de desarrollo que incluye una serie de lenguajes de programación, un IDE integrado para todos ellos, compiladores, un runtime unificado, una librería de clases, etc.

A esto hay que sumarle un importante conjunto de tecnologías subyacentes, como ser:
  • WCF: Windows Comunication Foundation
  • WPF: Windows Presentation Foundation
  • WWF: Windows Workflow Foundation
  • VSTO: Visual Studio Tools for Office
  • LINQ
  • Silverlight
  • Entity Framework (ORM)
  • Etc.
Todo lo enunciado trae aparejado dos consecuencias importantes:
  1. Un marcado avance en el desarrollo de aplicaciones.
  2. Una complejidad creciente para dominar la tecnología.
El primer punto es positivo, sin lugar a dudas. Hoy en día pueden construirse una importante cantidad de soluciones diferentes utilizando una misma herramienta (Visual Studio):

El segundo aspecto trae aparejada la realidad intrínseca de que es muy difícil que un mismo profesional pueda dominar todas las tecnologías.

Lo más recomendable es enfocarse en algunos de los tipos de soluciones posibles sin intentar abarcar todas ellas, capacitarse a fondo en los puntos seleccionados, utilizar frameworks que permitan desarrollar más fácil y rápidamente, asociarse con colegas que dominen otros tipos de soluciones, asistir a seminarios para tener al menos una noción de todo lo que puede llegar a hacerse con estas herramientas, aunque al momento de llevar a cabo un proyecto tengan que subcontratar el desarrollo.

Lic. Oscar Valente
CTO ItSouth Consultores
www.itsouth.com.ar

Fuentes:

martes, 24 de noviembre de 2009

Framework para desarrollo de aplicaciones? (high level frameworks)


¿Qué es un Framework de Desarrollo?

Framework, es una palabra muy en boga entre los desarrolladores. No obstante no estoy muy seguro que todos los que desarrollan puedan dar una definición concreta de lo que esta palabra significa.
Seguramente podrán esbozar un par de conceptos que podremos dar por válidos. Pero posiblemente también será incompleto. Y no está mal, dado que es una palabra muy amplia con muchas acepciones y connotaciones.

Si fuésemos a dar una definición tipo “diccionario”: podríamos decir que Framework es, independientemente de la tecnología empleada, el marco de trabajo o esquema arquitectónico bajo el cual se desarrolla y luego se ejecuta una aplicación de Software.

Cuando ese Framework cubre necesidades que van más allá de la infraestructura y del marco arquitectónico y aborda aspectos tales como la capa de presentación de una aplicación, estamos frente a un Hight Level Framework (generalemente se asocia a los High Level Frameworks también con el desarrollo rápido de aplicaciones, dado que hacen simple tareas de programación rutinaria ganando mucho tiempo).

Nota: lo de “High Level” no se trata de una categorización respecto al tipo de calidad que se obtenga, sino a la poca especialización que requerirá por parte de los desarrolladores para la realización de tareas rutinarias como: CRUD (Abm’s), Reportes y Procesos sencillos.
En próximas entregas seguramente vamos a ir cubriendo más aspectos de este tipo de Frameworks, así como también analizando pros y contras, centrándonos en tecnologías multicapas (potentes pero altamente complejas) como Microsoft .Net.

Como adelanto, hay muchos aspectos a considerar para lograr un buen marco de trabajo, no obstante los más importantes podríamos enumerarlos como:
  • Confiable: debe proveer todas las funcionalidades esperadas de una forma previsible y segura.
  • Completo: debe cubrir todos los aspectos estructurales necesarios para el desarrollo de una solución basada en este marco.
  • Robusto: debe estar depurado y manejar eficientemente los potenciales errores de ejecución.
  • Escalable: debe permitir ampliaciones de la funcionalidad ofrecida de una manera eficiente, manejando todos los aspectos de un diseño orientado a objetos (tales como herencia, polimorfismo y encapsulamiento).
  • Amigable: la interfaz con el usuario debe ser fácil de usar, eficiente y personalizable.
  • Documentado: debe proveer toda la documentación técnica, de programación, de instalación y mantenimiento, de usuario, necesaria para entender y utilizar esta tecnología.

En próximas entregas seguiremos analizando este y otros temas que hacen a la actualidad tecnológica del desarrollador.

Lic. Adrián Flols
Director Ejecutivo ItSouth Consultores
www.itsouth.com.ar


http://www.startpoint.com.ar/index.php/framework.html