Beruflich Dokumente
Kultur Dokumente
Contenido
Contenido................................................................................................................................2 Introduccin............................................................................................................................3 Desarrollo................................................................................................................................4 Framework..........................................................................................................................4 Ventajas y Desventajas de utilizar Framework...................................................................6 Ventajas de utilizar framework.......................................................................................6 Desventajas de utilizar Framework.................................................................................7 Caso de Estudio: Symfony..................................................................................................7 Caractersticas principales de Symfony..........................................................................8 Aplicaciones de Symfony...............................................................................................8 Conclusin.............................................................................................................................10 Bibliografa...........................................................................................................................11
Introduccin
El concepto de framework, lo que traducido al espaol significa Marco de Trabajo, como su nombre lo dice, se define, desde el punto de vista del software, como un marco o ambiente de trabajo. Es un conjunto de bibliotecas y componentes reutilizables, para el desarrollo rpido de aplicaciones. La utilizacin de un framework trae diversas ventajas, como la agilidad en el desarrollo, reduccin de errores, facilidad en la mantencin, entre otras. Pero adems trae desventajas, como el tiempo requerido en aprender y familiarizarse al framework, posibles dificultades en la modificacin del framework, entre otras. Estas desventajas por lo general son despreciables en comparacin a las ventajas que un framework ofrece. Se puede considerar el framework Symfony como caso de estudio, este framework est dirigido a la creacin de aplicaciones Web. Fue desarrollado por Fabien Potencier en Octubre de 2005. Elaborado en PHP5, es compatible con gran parte de gestores de bases de datos, incluyendo MySQL, PostgreSQL, SQL Server y Oracle.
Desarrollo
Framework
El concepto de framework, lo que traducido al espaol significa Marco de Trabajo, como su nombre lo dice, se define, desde el punto de vista del software, como un marco o ambiente de trabajo. Es un conjunto de bibliotecas y componentes reutilizables, para el desarrollo rpido de aplicaciones. Para ello, un framework define, en trminos generales, un conjunto estandarizado de conceptos y se enfoca en un tipo de problemtica especfica que sirve como referencia para enfrentar, disear y solucionar nuevos problemas de carcter similar. En el desarrollo de software, el framework es una estructura conceptual y tecnolgica con soporte definido, en el cual otro proyecto de software puede ser desarrollado y organizado, dicho en otros trminos, es un molde, una base, que sirve de ayuda para la creacin y organizacin de nuevos proyectos software, y de esta manera, facilitar enormemente el desarrollo de software, permitiendo a los diseadores y programadores dedicar ms tiempo en la especificacin de requerimientos y en otras de las actividades del proceso de software. Los frameworks suelen incluir: Soporte de programas. Bibliotecas. Lenguaje de scripting, para desarrollar y unir los diferentes componentes de un proyecto.
Algunos frameworks ms conocidos: Biblioteca de Componentes Visuales (VCL) de CodeGear. Swing y AWT, para el desarrollo de aplicaciones en Java. Struts, para el desarrollo de aplicaciones web en Java. Ruby On Rails, para el desarrollo de aplicaciones web escrito en Ruby. Symfony (que ser nuestro caso de estudio).
Cabe destacar que, los frameworks simplifican el desarrollo de las aplicaciones mediante la automatizacin de muchas de las tareas frecuentes. Adems, un framework proporciona una 4
estructura predefinida del cdigo fuente, forzando al programador a crear cdigo ms robusto, legible y ms fcil de mantener.
Facilidad de instalacin y configuracin en una gran variedad de plataformas. Independencia de los sistemas gestores de base de datos. Adaptabilidad para el manejo de problemas complejos. Aplica la mayora de las buenas prcticas del diseo web. Facilidad de comprensin del cdigo, gracias a los comentarios de phpDocumentor.
Extensible, ya que permite la integracin de libreras desarrolladas por terceros. Automatiza caractersticas de proyectos web, como la traduccin de datos y de interfaz, as como la adaptacin local de los contenidos. Los formularios incluyen validacin automatizada y relleno automtico de datos para asegurar la obtencin de datos correctos. Se puede personalizar para cumplir con los requisitos de las empresas que disponen sus propias polticas y reglas para la gestin de proyectos y la programacin de aplicaciones.
Posee mdulos de pruebas unitarias y funcionales para desarrollo basado en pruebas. Lleva un registro en detalle de todas las actividades que se realizan en la aplicacin.
Aplicaciones de Symfony
Debido a que Symfony es un framework MVC full-stack para desarrollo en PHP [1], sus aplicaciones en la industria del desarrollo web son casi ilimitadas, ofreciendo herramientas para la construccin desde sitios webs personalizados tales como blogs, hasta aplicaciones y plataformas ms complejas y a gran escala, como e-commerce o sitios corporativos. Al pertenecer a la categora de framework MCV (Model-Control-View) full-stack, Symfony ofrece para sus aplicaciones, un ambiente con fuertes convenciones, cohesin, buenas prcticas y por ende un desarrollo en base a componentes robustos que facilitan el 8
trabajo de grandes equipos de trabajo en aplicaciones complejas[1]. Estas caractersticas han hecho de Symfony el framework de eleccin por prestigiosas compaas como Yahoo!, en el desarrollo de su plataforma Yahoo! Answers.
En este ejemplo se muestra la pgina de Yahoo Answers[2] y demuestra que symfony puede ser utilizado en la construccin de aplicaciones web complejas. Otros casos de estudios incluyen Yahoo! Bookmarks, del.icio.us y Dailymotion, todas aplicaciones web de complejidad avanzada.
Conclusin
En la actualidad el uso de frameworks es muy frecuente en el desarrollo de aplicaciones, facilitando enormemente las labores de desarrollo, lo que permite agilidad y eficacia en la entrega de proyectos. Aunque el uso de los framework supone de algunas desventajas que suceden principalmente durante las primeras implementaciones, suelen ser menospreciadas en comparacin con las ventajas que posee y la manera en la que optimiza el desarrollo de una aplicacin. Debido a esto, es porque los frameworks son tan populares y estn siendo elegidos para la ejecucin de un gran nmero de proyectos. Aun as, no hay que olvidar que, aunque los framework ofrezcan muchas facilidades en el desarrollo, en algunas ocasiones lo mejor ser comenzar desde cero y hacer un software a la medida de lo que exijan los requerimientos. Symfony es un framework para aplicaciones web desarrollado en base a PHP5 y soporta la mayora de motores de base de datos. Symfony es de cdigo abierto, para que cualquiera pueda modificarlo para cumplir con sus necesidades o contribuir en su desarrollo. Symfony automatiza varias prcticas repetitivas o de bajo nivel para aplicaciones web, por lo que facilita el desarrollo y mantencin de aplicaciones complejas, desviando la atencin de problemas orientados al lenguaje, a problemas orientados a la aplicacin o proyecto en s. Symfony, pertenece a la categora de framework MCV (Model-Control-View) fullstack, se observa su optimizacin para proyectos de grandes escalas gracias a que facilita herramientas y componentes de trabajos estndares para el equipo de desarrollo. Symfony al ser un framework full-stack, elimina la capacidad de utilizacin de libreras externas que no siguen sus convenciones, al contrario de los glue frameworks, que s permiten esto. Ejemplos de glue frameworks son Monk Framework [3] y Zend Framework[4]. Symfony, si bien tiene una amplia cohesin, lo robusto de su estructura viene tambin con un alto nivel de acoplamiento, ya que una de las caractersticas de los Frameworks Full-stack, es que sus componentes dependen unos de otros y por ende varias secciones de cdigo no pueden ser deshabilitadas a libre discrecin.
10
Bibliografa
[1] [2] SENSIOLABS, Getting Started Symfony 1.4. Symfony, 08 de Abril, 2011. Dustin Whittle, Yahoo! Answers powered by Symfony. [en lnea] <http://symfony.com/blog/yahoo-answers-powered-by-symfony> [consulta: 08, Abril, 2011] CytrusByte, Monk the Glue Framework, [en lnea] <http://monkrb.com/> [consulta: 08, Abril, 2011] Zend Framework Web Page [en lnea] <http://framework.zend.com/> Ralph E. Johnson. Frameworks = (Components+Patterns), COMMUNICATIONS OF THE ACM, Octubre 1997. <http://www.inf.ufsc.br/~vilain/framework-thiago/p39-johnson.pdf> http://www.maestrosdelweb.com/editorial/el-framework-symfony-una-introduccion-practica-i-parte/ http://www.yiiframework.com/forum/index.php?/topic/14300-advantagesand-disadvantages-of-framework-programming/ http://jordisan.net/blog/2006/que-es-un-framework http://es.wikipedia.org/wiki/Framework
[3]
[4] [5]
11