Sei sulla pagina 1di 3

Entonces qu es un 'framework'?

Siendo muy simple, es un esquema (un esqueleto, un patrn) para el desarrollo y/o la implementacin de una aplicacin. S, es una definicin muy genrica, pero tambin puede serlo un framework: sin ir ms lejos, el paradigma MVC (Model-View-Controller) dice poco ms que "separa en tu aplicacin la gestin de los datos, las operaciones, y la presentacin". En el otro extremo, otros frameworks pueden llegar al detalle de definir los nombres de ficheros, su estructura, las convenciones de programacin, etc.
Pongamos un ejemplo: una aplicacin web que utilice Java como lenguaje de programacin puede implementarse de multitud de formas, mediante servlets y JSPs. Hay algunas convenciones que es necesario seguir, como usar un fichero de configuracin web.xml, pero el programador sigue sin tener un patrn claro a seguir para la creacin de servlets, clases, JSPs, etc. En una primera estandarizacin, la utilizacin de una arquitectura MVC aconseja que separemos la lgica de la aplicacin (en los servlets) de la presentacin (usando JSPs); en concreto, no sera correcto codificar lgica de aplicacin o accesos a base de datos dentro de los JSP. Un paso ms all: utilizando Faces como framework, la estructura de la aplicacin queda todava ms definida: un nico servlet (FacesServlet) va a controlar el flujo de la aplicacin; adems, el uso de un fichero concreto (faces-config.xml) permite crear la navegacin de la aplicacin, definir los objetos (beans) pasados como parmetros, etc., todo ello sin necesidad de codificarlo en Java o JSP.

Los frameworks no necesariamente estn ligados a un lenguaje concreto, aunque sea as en muchas ocasiones. En el cada vez ms popular Ruby on Rails, 'Ruby' es el lenguaje de programacin y 'Rails' el framework; por otro lado, JavaServer Faces est orientado a desarrollos en Java. Sin embargo, nada impide definir el mismo framework para lenguajes diferentes: por ejemplo, existe un framework llamado Biscuit cuyo objetivo es prcticamente

convertirse en un "PHP on Rails". Eso s, cuanto ms detallado es el framework, ms necesidad tendr de ceirse a un lenguaje concreto. Tambin es posible que el framework defina una estructura para una aplicacin completa, o bien slo se centre en un aspecto de ella. Siguiendo con los ejemplos, Ruby on Rails ofrece un marco para el desarrollo completo de una aplicacin web, mientras que JavaServer Faces est ms orientado a la interfaz de usuario.

Qu ventajas tiene utilizar un 'framework'? Las que se derivan de utilizar un estndar; entre otras:

El programador no necesita plantearse una estructura global de la aplicacin, sino que el framework le proporciona un esqueleto que hay que "rellenar". Facilita la colaboracin. Cualquiera que haya tenido que "pelearse" con el cdigo fuente de otro programador (o incluso con el propio, pasado algn tiempo!) sabr lo difcil que es entenderlo y modificarlo; por tanto, todo lo que sea definir y estandarizar va a ahorrar tiempo y trabajo a los desarrollos colaborativos. Es ms fcil encontrar herramientas (utilidades, libreras) adaptadas al framework concreto para facilitar el desarrollo.

Y si no necesito o no quiero utilizar un 'framework'? Por supuesto, un desarrollador puede crear toda una aplicacin sin seguir ningn framework conocido; puede que sea tan pequea que no lo considere necesario, que no conozca ninguno que se adapte a sus necesidades, o simplemente no desee dedicar tiempo a seleccionar y utilizar uno. Sin embargo, a medida que la aplicacin crece, un programador competente procurar seguir unas determinadas pautas que le faciliten su trabajo de desarrollo y mantenimiento: separacin de presentacin y lgica, una sintaxis coherente, etc. La evolucin natural sera hacia que, de algn modo, se construir su propio framework. Y en vez de definir un estndar, por qu no utilizar uno ya definido, y aprovechar el trabajo de otros muchos desarrolladores? Hacer un desarrollo crptico y difcil de interpretar puede ser til en un concurso de cdigo ofuscado o para presumir de "gur", pero es muy poco til para desarrollar y mantener una aplicacin. El coste inicial (la curva de aprendizaje) de utilizar un framework se compense probablemente en cuanto el trabajo de desarrollo crezca mnimamente.

De acuerdo; pero qu 'framework' utilizo? Buscando en la red se encuentra mucha informacin sobre los frameworks existentes para las diferentes plataformas y lenguajes. Posiblemente uno de sus principales problemas es que haya demasiados: ya se sabe, lo bueno de los estndares es que hay muchos para elegir . Sin embargo, la eleccin del framework concreto a utilizar vendr marcada por:

El tipo de aplicacin a desarrollar El lenguaje de programacin y otras tecnologas concretas: base de datos, sistema operativo, etc.

Como introduccin a los frameworks, Ruby on Rails me parece una buena opcin para desarrollar una aplicacin web y como ejemplo de lo que es unframework. Dentro del mundo Java, Struts parece uno de los ms extendidos.

En conclusin La utilizacin de un framework en el desarrollo de una aplicacin implica un cierto coste inicial de aprendizaje, aunque a largo plazo es probable que facilite tanto el desarrollo como el mantenimiento. Existen multitud de frameworks orientados a diferentes lenguajes, funcionalidades, etc. Aunque la eleccin de uno de ellos puede ser una tarea complicada, lo ms probable que a largo plazo slo los mejor definidos (o ms utilizados, que no siempre coinciden con los primeros) permanezcan. Y si ninguno de ellos se adapta a las necesidades de desarrollo, siempre es mejor definir uno propio que desarrollar "al por mayor".
http://msdn.microsoft.com/es-bo/library/zw4w595w(v=vs.90).aspx

Potrebbero piacerti anche