Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
La tecnología se mueve un ritmo vertiginoso y año tras año aparecen nuevas herramientas
para el desarrollo de Software que nos simplifican el trabajo, debido a la demanda actual y
el poco tiempo para la entrega de proyectos aparecen utilidades que cubren estos
problemas que son muy importantes solucionarlos, un Framework nos resuelve estos y
muchos otros problemas, en este artículo te hablaremos sobre esta herramientas y otros
detalles de ella.
Que es un Framework ?
Un framework es un entorno o marco de trabajo que nos ayuda a realizar aplicaciones
profesionales, estables y dinámicas mediante un conjunto de paquetes, herramientas y
utilidades que agilizan el proceso de desarrollo de un proyecto. Un framework es parte del
paradigma del Desarrollo de Software Ágil te hace mas productivo en menos tiempo.
Modelo
En un modelo o una carpeta de Modelos se almacenas archivos que contienen métodos
que hacen consultas a una tabla de la Base de Datos y hacer otras gestiones con ella.
Controlador
En esta carpeta puedes colocar o encontrar varios archivos que contienen codigo con
métodos que hacen una consulta de datos a la base de datos dinámicamente y estos son
enviados a la Vista, por ejemplo puedes Consultar con un Modelo a una tabla postres, con
el controlador le dices que liste todos los postres que tenga un stock de más de 20 unidades
y que los imprima en una vista.
Vista
En esta carpeta puedes encontrar las páginas que serán vistas por los usuarios, todo lo que
gestionas en un controlador lo envías a estas vistas para ser visualizados. Por ejemplo en
una vista se imprimirán los postres que cuenten con un stock de más de 20 unidades.
Historia
Existe muy poca información referente a como aparecieron los Frameworks, en la mayoría
cada Framework tiene su propia historia y fecha de creación, te dejamos una imagen creada
por Matt Raible una gran labor de parte de el.
Tipos de Framework
Podríamos dividir los tipos de Framework en 2 esencialmente:
Podemos mencionar para esta categoría a Frameworks como Angular JS, React JS, Vue
JS, Bootstrap, Material Design entre otros.
Frameworks para Desarrolladores Back-ends
Este tipo de Frameworks facilitan el trabajo con Lenguajes de Programación de lado del
Servidor como Python, Ruby, PHP, Javascript del lado del servidor (Node JS), Java, etc.
Ayudan a gestionar las Bases de Datos, el envío y procesamiento de datos, Cookies,
Sesiones, etc.
En esta categoría podemos encontrar a Frameworks como Django, Ruby on Rails, Node
JS, Laravel, Spring, React Native JS, etc.
Conclusión
Los Frameworks en la actualidad se encuentran en una fase estable, si deseas ser mas
productivo y sacar tus proyectos más rápidos, de manera profesional y muy bien
estructurados, te aconsejamos usar un Framework. En grandes proyectos se suelen usar
más de un Framework esto con el fin de tener separadas las lógicas de los procesos en el
proyecto.
Clasificación según su Estructura
Las aplicaciones web centradas en el cliente también reciben el nombre de Rich Clients o Rich
Internet Applications (RIA). Este tipo de aplicaciones implementan la interfaz de usuario y la
lógica de aplicación en el cliente, la cual se cargará completamente cuando dichas
aplicaciones se inicien. Al contrario de lo que ocurre con las aplicaciones web clásicas, al
optar por el enfoque del lado del cliente se pueden llevar a la práctica otro tipo de funciones,
como el control por drag and drop, la accesibilidad en línea y el acceso al disco duro, usuales
en las aplicaciones de escritorio.
Django
Ruby on Rails
Symfony
Spring MVC
CodeIgniter
Debido a que los desarrolladores de aplicaciones son los encargados de definir en detalle las
posibles acciones de los frameworks web basados en acciones, se habla de enfoque white
box. Este posibilita que los desarrolladores tengan más margen de acción, aunque requiere
una mejor comprensión de los web frameworks correspondientes, ya que los desarrolladores
son los responsables de la creación de HTML, CSS y JavaScript.
Lift
Apache Tapestry
JavaServer Faces
Apache Wicket
Las cuestiones fundamentales a este respecto están relacionadas con el tipo de aplicación y
con la arquitectura deseada (centrada en el servidor o en el cliente), ambos aspectos con
consecuencias directas sobre el control y la facilidad de manejo de las web apps.
Podría decirse entonces que un framework es una aplicación genérica incompleta que
se puede configurar para añadirle las líneas de código que sean necesarias para
programar una determinada aplicación; una analogía de ello podría ser un rompecabezas al
que se le pueden agregar nuevas piezas para hacerlo más completo y detallado o agregarle
nuevas funciones.
Este marco de referencia o marco de trabajo nos provee un conjunto de código que se puede
utilizar y reutilizar en cualquier sistema, bien sea simple o complejo; ofreciéndonos una
forma estándar para trabajar en un lenguaje de programación determinado; es decir
empleando un paradigma ya existente; siendo el Modelo-Vista-Controlador – MVC el más
empleado en la actualidad.
Django es uno de los framework más populares en entornos web para el lenguaje Python;
Ruby on Rails es su par en Ruby, por lo que cuando se se habla de ellos, Django o Ruby on
Rails, no se está hablando de un lenguaje de programación en concreto sino de frameworks
desarrollados para facilitar la creación (escritura) de código en Python o Ruby.
PHP se ha convertido en el lenguaje más utilizado para desarrollar aplicaciones web; la
mayor parte de programadores, por no decir la totalidad, no programan desde cero con este
lenguaje, sino que emplean frameworks como Symfony, Laravel, CodeIgniter o Zend, lo
que les facilita enormemente el trabajo y les ahorra mucho tiempo de programación.
TIPOS DE FRAMEWORKS
Actualmente existen varios tipos de frameworks que se pueden emplear para el desarrollo
de aplicaciones, así como de sitios web; entre ellos tenemos:
Es un marco creado para facilitar el desarrollo de aplicaciones web, sitios web dinámicos y
servicios web, un conjunto de herramientas que facilitan y agilizan la creación de sistemas
web; permitiendo además crear diseños reutilizables.
PARA APLICACIONES
AJAX
Conocido por sus siglas en inglés CMF, este tipo de framework brinda una interfaz de
programación de aplicaciones que facilita y agiliza la creación de un sistema de gestión de
contenidos personalizado; posibilitando una gestión muy eficiente del contenido web.
DE MULTIMEDIA
Lenguaje de Programación
Un lenguaje de programación es el idioma para desarrollar un software, se podría
decir que los programadores conocen el idioma con el cuál comunicarse con las
máquinas. Y existen diversidad de idiomas y cada técnico esta especializado en uno
pero conoce los otros también. Como ejemplo sería igual con las personas que saben
otros idiomas: inglés, francés o alemán y pueden comunicarse con las nativas de esos
idiomas.
Según la definición de Wikipedia "Un lenguaje de programación es un idioma artificial
diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como
las computadoras. Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión,
o como modo de comunicación humana. Está formado por un conjunto de símbolos y
reglas sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se
compila y se mantiene el código fuente de un programa informático se le llama
programación."
Lenguajes de programación: PHP, Python, Ruby, Perl, C++, Java. Estos son los
más conocidos, sin embargo, no dejan de aparecer lenguajes todos los días para
realizar procesos con las máquinas. Nosotros en Punto Abierto por ejemplo
estamos especializados en lenguaje de programación PHP
Frameworks
La palabra framework si la traducimos de forma directa sería "marco de trabajo", pero
haciendo una traducción más adaptada a la forma de utilizarla sería estructura o
infraestructura digital. En ella se trabaja escribiendo el código con un sólo lenguaje que
puede ser PHP, Python, Ruby.
Según Wikipedia: "En el desarrollo de software, un framework o infraestructura digital,
es una estructura conceptual y tecnológica de soporte definido, normalmente con
artefactos o módulos de software concretos, con base a la cual otro proyecto de
software puede ser más fácilmente organizado y desarrollado. Típicamente, puede
incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras
herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un
proyecto.
Para entender mejor qué es la infraestructura y cuál el lenguaje vamos a señalar
algunos ejemplos:
Framework -> Django / Lenguaje de programación -> Python
Framework -> Kohana / Lenguaje de programación -> PHP
Framework -> Ruby on Rails / Lenguaje de programación -> Ruby
Framework -> Catalyst /Lenguaje de programación -> Perl
Framework -> Spring / Lenguaje de programación -> Java
Informaciones interesantes
Python: El nombre Python fue puesto por los programadores que lo crearon en honor
al grupo humorístico inglés Monty Python, con películas tan buenas como La vida de
Brian o El sentido de la vida. Grupo del cuál formó parte el gran director de cine Terry
William con películas como Twelve Monkeys, The Imaginarium of Doctor
Parnassus ,Brazil.
Django nació dentro del equipo desarrollo web del periódico "Lawrence Journal-
World" en Kansas, Estados Unidos. Según esta fuente: "El equipo "World Online",
responsable de la producción y mantenimiento de varios sitios de noticias locales,
prosperado en un ambiente de desarrollo dictado por los tiempos limites del periodismo.
Para los sitios - incluyendo LJWorld.com, Lawrence.com y KUsports.com - periodistas
(y administradores) demandaban que fueran añadidas características y aplicaciones
enteras fueran construidas en una intensamente rápida agenda, comúnmente con solo
días u horas para desarrollarlo. De este modo, Simon y Adrian habían desarrollado un
web framework que les ahorraba tiempo - esa fue la única manera en que ellos pudieron
construir aplicaciones mantenibles bajo los estrictos tiempos de entrega. En el verano
del 2005, después de habiendo desarrollado este framework hasta un punto donde
eficientemente impulsaba la mayoría de los sitios "World Online", el equipo, el cual
ahora incluía a Jacob Kaplan-Moss, decidieron liberar el framework como software de
codigo abierto. Lo liberaron en Julio de 2005 y lo llamaron Django, en honor al guitarrista
de jazz Django Reinhardt."
La diferencia entre frameworks y lenguajes de programación no sólo se confunde
para personas que no tienen conocimientos técnicos de desarrollo, incluso puede
ocurrir que algunos desarrolladores como es en este caso se confundan:
En este artículo realicé una selección de los frameworks PHP más utilizados en la
web, no quiero enaltecer a ninguno en particular ya que cada quien tiene su
preferido o está en la libertad de seleccionar uno acorde a sus necesidades, de tal
forma es que esta selección no tiene un orden prioritario en particular.
En esta selección haré mención de cada uno de los frameworks junto con una
descripción y algunas de sus características, el propósito del articulo es que tu
puedas conocer y analizar las ventajas que te puede traer utilizar uno de estos
frameworks, aclaro también que todas estas características fueron extraídas de las
páginas oficiales de cada uno de estos. Siendo así comencemos 8-)
Zend Framework 2
CakePHP
CakePHP hace que tus aplicaciones web se realicen de una forma mas rápida y
simple requiriendo menos código, puedes construir rápidamente tus aplicaciones
con funciones para generar código y así poder utilizarlos como prototipos, su
configuración para conexión a base de datos es demasiado simple de esa forma te
despreocupas de este aspecto y te dedicas netamente a hornear tus aplicaciones.
Utiliza un MVC bastante limpio de tal forma que puedes tener tu aplicación
totalmente modularizado sin olvidar que también cuenta con sus respectivos
componentes como el de autenticacion de usuarios, validación de datos,
almacenamiento en cache y muchos otros.
Symfony
CodeIgniter
Yii Framework
Prado
Flight
Medoo
PHPixie
PHPixie es un framework MVC PHP ligero diseñado para ser rápido, fácil de
aprender y proporciona una base solida para el desarrollo de aplicaciones web, se
concentra bastante en la velocidad de carga de la pagina web con fines de no
sobrecargar el servidor. Proporciona una arquitectura modular y flexible que es fácil
de aprender sobre todo por desarrolladores que ya pasaron por frameworks como
CodeIgniter o Kohana.
Kohana
Phalcon
Aura
Aura es un conjunto de paquetes independientes que trabaja con PHP 5.4+ , estos
paquetes se pueden usar solos o en conjunto con otros combinándolos en un
completo framework. El objetivo de Aura es proporcionar alta calidad que cumplan
estándares de programación aplicados a paquetes de bibliotecas independientes
que pueden ser usados en cualquier código base, es decir que los desarrolladores
pueden usar tanto o poco del proyecto según sus necesidades.
Fat-Free
Fat-Free (F3) es un micro framework potente y fácil de usar diseñado para ayudar
a construir aplicaciones web dinámicas y robustas rápidamente, con una base de
código súper ligero alrededor de 55 Kb es bastante fácil de aprender, usar y
extender.
Slim es un micro framework PHP que ayuda a escribir aplicaciones web simples
pero potentes, cuenta con un enrutador potente usando métodos HTTP estándar y
personalizados, prestación de plantillas con vistas personalizadas, también cuenta
con cookies seguros con cifrado AES-256. Slim también utiliza inicios de sesiones
con escritura de registros personalizados, este framework funciona con PHP 5.3+ y
provee una configuración bastante sencilla.
FuelPHP
FuelPHP es un framework MVC simple y flexible que funciona con PHP 5.3+ basado
en las mejores ideas de otros frameworks, fue diseñado desde un principio para
tener completo soporte a HMVC como parte de su arquitectura, pese a eso no se
detuvo ahí ya que también se añadió ViewModels conocidos también como modelos
de presentación lo cual da la opción de añadir una capa de gran alcance entre el
controlador y la vista.
Casi todas las clases del paquete básico de FuelPHP pueden ser ampliados, es
decir que se pueden empaquetar funcionalidades tanto para ampliar como
reemplazar al núcleo de este framework para así poder mantener un sistema mas
modularizado. Si hablamos de seguridad, FuelPHP codifica toda su salida para que
sea segura y prevenir ataques XSS, también es compatible con la prevención de
CSRF con tokens y tanto el filtrado de entradas como el generador de consultas
ayudaran en la prevención de los ataques de inyección SQL
Ahora te queda a ti elegir cual framework PHP esta acorde a tus necesidades, estoy
seguro que te diste cuenta que varios de estos tiene muchas características en
común, pero lo mas importante es que todos estos también tiene una característica
única que es el de ayudarnos a desarrollar nuestras aplicaciones y agilizar este
proceso de desarrollo, vale la pena checar cada uno de estos. Espero que este
artículo te haya sido de mucha ayuda para así conocer estos frameworks, quizá a
muchos de ellos ya los conozcas o hayas escuchado hablar de ellos en la web como
así también hay otros que se presentaron mediante este artículo porque en mi punto
de vista valen la pena mencionarlos.