Comparativa Framework
Comparativa Framework
Comparativa Framework
COMPARATIVA FRAMEWORKS
Desarrollo de Aplicaciones Web II
E.P.S.Z 0
ndice
1. Introduccin y objetivos ........................................................................................................ 3 1.1. 1.2. 2. Qu es un framework web? ........................................................................................ 3 Objetivos ....................................................................................................................... 3
Investigacin y seleccin del lenguaje de desarrollo ............................................................ 4 2.1. 2.2. 2.3. Qu es PHP? ................................................................................................................ 4 Ventajas y desventajas .................................................................................................. 4 Por qu utilizar PHP y no otras opciones?................................................................... 5
3.
Investigacin y Comparativa de los Frameworks de Desarrollo ........................................... 5 3.1. CakePHP ........................................................................................................................ 5 Ventajas CakePHP ................................................................................................. 5 Desventajas CakePHP ............................................................................................ 6
3.7.1. 3.7.2. 4. 5.
1. Introduccin y objetivos
En el desarrollo de software, un Framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Tpicamente, un framework puede incluir soporte de programas, libreras y un lenguaje de scripting entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Un "Software Framework" es un diseo reusable de un sistema (o subsistema). Est expresado por un conjunto de clases abstractas y el modo en que sus instancias colaboran para un tipo especfico de software. Todos los frameworks de software son diseos orientados a objetos".
1.2. Objetivos
Los objetivos principales que persigue un framework son: Acelerar el proceso de desarrollo. Reutilizar cdigo ya existente y promover buenas prcticas de desarrollo como el uso de patrones. Permitir la utilizacin de toda la infraestructura existente en cada plataforma (bibliotecas de clases, componentes, etc.). Extender el tiempo de vida de una implementacin a dcadas (20, 30, 50 aos). Desarrollo de software multiplataforma. Portabilidad entre plataformas sin prdida de rendimiento. Componentes modulares y abiertos (compilador extensible con "Plugins"). COMPARATIVA FRAMEWORKS DESARROLLO DE APLICACIONES WEB II
2.1. Qu es PHP?
PHP son las siglas "Hypertext Pre-processor". Es un lenguaje de programacin pensado en la web de forma que es ideal para la creacin de pginas dinmicas. PHP es la versin libre del sistema equivalente de Microsoft ASP. PHP es un lenguaje encapsulado dentro de los documentos html, de forma que se pueden introducir instrucciones php dentro de las pginas. Gracias a esto el diseador grfico del web puede trabajar de forma independiente al programador. PHP es interpretado por el servidor (apache) generando un HTML con el resultado de substituir las secuencias de instrucciones PHP por su salida.
Y las desventajas: Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser ms ineficiente a medida que las solicitudes aumenten de nmero. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y php. La orientacin a objetos es an muy deficiente para aplicaciones grandes.
3.1. CakePHP
CakePHP es un marco de desarrollo (Framework) rpido para PHP, libre, de cdigo abierto. Se trata de una estructura que sirve de base a los programadores para que stos puedan crear aplicaciones Web. El principal objetivo es que se pueda trabajar de forma estructurada y rpida, sin prdida de flexibilidad. Con CakePHP el desarrollo web ya no es montono porque ofrece las herramientas para que se pueda empezar a escribir el cdigo que realmente se necesita: la lgica especfica de la aplicacin. CakePHP tiene un equipo de desarrolladores y una comunidad activos, lo que aade valor al proyecto. Con CakePHP, el ncleo de la aplicacin se mejora constantemente.
Validacin incorporada. Comunidad activa y amistosa. Licencia flexible. Compatible con PHP4 y PHP5. CRUD (Crear, Obtener, Actualizar y Borrar) integrado para la interaccin con la base de datos. Soporte de aplicacin (scaffolding). Generacin de cdigo. Arquitectura Modelo Vista Controlador (MVC). Despachador de peticiones (dispatcher), con URLs y rutas personalizadas y limpias. Validacin integrada. Plantillas rpidas y flexibles (sintaxis de PHP, con ayudantes). Ayudantes para AJAX, Javascript, formularios HTML y ms. Componentes de email, sookie, seguridad, sesin y manejo de solicitudes. Listas de control de acceso flexibles. Limpieza de datos. Cach flexible. Localizacin. Funciona en cualquier subdirectorio del sitio web, con poca o ninguna configuracin de Apache.
3.2. Symfony
Symfony es un completo framework diseado para optimizar, gracias a sus caractersticas, el desarrollo de las aplicaciones web. Para empezar, separa la lgica de negocio, la lgica de servidor y la presentacin de la aplicacin web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicacin web compleja. Adems, automatiza las tareas ms comunes, permitiendo al desarrollador dedicarse por completo a los aspectos especficos de cada aplicacin. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicacin web.
Symfony est desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrnico de primer nivel. Symfony es compatible con la mayora de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows.
3.3. Yii
Yii es un framework PHP basado en componentes de alta performance para desarrollar aplicaciones Web de gran escala. El mismo permite la mxima reutilizacin en la programacin web y puede acelerar el proceso de desarrollo. El nombre Yii
(pronunciado /i:/) es por fcil (en ingls: easy), eficiente (en ingls: efficient) y extensible (en ingls: extensible).
3.4. Zend
Zend Framework destaca el hecho de que no slo busca facilitar la programacin a travs del patrn MVC, sino tambin automatizar tareas ms especficas, como el acceso a base de datos, el filtrado de datos ingresados a la aplicacin o la bsqueda en un sitio web ordenando resultados por relevancia. Zend Framework es un framework de cdigo abierto para desarrollar aplicaciones web y servicios web con PHP 5. Es una implementacin que usa cdigo 100% orientado a objetos. La estructura de los componentes es algo nico; cada componente est construido con una baja dependencia de otros componentes. Esta arquitectura dbilmente acoplada permite a los desarrolladores utilizar los componentes por separado. Ofrece un gran rendimiento y una robusta implementacin MVC, una abstraccin de base de datos fcil de usar, y un componente de formularios que implementa la prestacin de formularios HTML, validacin y filtrado para que los desarrolladores puedan consolidar todas las operaciones usando de una manera sencilla la interfaz orientada a objetos.
3.5. CodeIgniter
CodeIgniter es un entorno de desarrollo abierto (licencia Open Source Apache/BSD-style) que permite crear webs dinmicas con PHP. Su principal objetivo es ayudar a que los desarrolladores puedan realizar proyectos mucho ms rpido que creando toda la estructura desde cero. Esto se debe a que dispone de un conjunto bastante amplio de libreras tiles para realizar tareas comnmente necesarias, as como una interfaz simple y una estructura lgica sencilla para acceder a esas libreras. Entre otras caractersticas podemos destacar que es un entorno muy simple. El ncleo del sistema slo requiere unas pocas libreras para funcionar adecuadamente. Esto supone una gran ventaja frente a otros frameworks de desarrollo que quieren muchos ms recursos para realizar las mismas tareas. Las libreras adicionales que se necesiten se cargan de forma dinmica, con lo cual el sistema en s es muy simple y bastante rpido (est considerado como el framework ms rpido, sobretodo en desarrollo bajo PHP).
10
Los controladores no cargan por defecto las listas. Las vistas no tienen un orden por defecto ( ejemplo, controlador/mtodo). Hay algunas cosas que no se pueden configurar, por lo tanto te obligan a modificr el ncleo.
3.6. Prado
PRADO es una capa de programacin (framework) basada en componentes y programacin dirigida por eventos, para desarrollos de aplicaciones Web en PHP 5. Las siglas PRADO significan en espaol Desarrollo Rpido de Aplicaciones con Programacin Orientada a Objetos en PHP (PHP Rapid Application Development Object-oriented). El principal objetivo de PRADO es utilizar al mximo la reutilizacin en la programacin Web. Por reusabilidad, queremos decir no solamente reutilizar el cdigo propio, si no el de otros programadores de una manera fcil. Lo ltimo dicho es ms importante, ya que evita el esfuerzo de reinventar nuevamente la rueda y adems posibilita disminuir notablemente los tiempos de desarrollos. Para facilitar la interaccin con componentes, PRADO implementa el paradigma de la programacin dirigida por eventos (event-driven) que permite la delegacin de comportamientos extensibles a los componentes. Mtodos o funciones deben ser enlazadas a dichos eventos de tal manera que cuando los eventos sucedan, estos son invocados automticamente para responder a dicho evento.
11
3.7. PHPDevShell
PHPDevShell es un framework liberado bajo GNU / GPL el cual se dise para que los desarrolladores de PHP que desean empezar a desarrollar con PHP inmediatamente puedan hacer de manera sencilla. Proporciona despus de la instalacin, autenticacin del usuario y el registro, seguridad a nivel de acceso mltiples, mltiples a nivel del sistema de plantillas, y un men de sistema de nivel mltiple. PHPDevShell ofrece un avanzado sistema de control de administrador que permite a los desarrolladores a comenzar a concentrarse en su proyecto de inmediato. Con su sistema de plugins, la creacin de paquetes de la distribucin es una tarea sencilla.
12
13