¿Qué es un framework y para qué se utiliza?

Según wikipedia, ¿qué es un Framework?, nos dice que:
Un framework, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Vamos, una manera de hacernos más fácil la programación. 

¿Por qué debemos elegir un framework al momento de desarrollar un sistema ?



1.- Evitar escribir código repetitivo

La mayoría de los proyectos tienen partes comunes necesarias para el funcionamiento como, por ejemplo, acceso a base de datos, validación de formularios o seguridad. Un framework nos evita tener que programar estas partes, de esta manera nos resulta más fácil centrarnos en programar la aplicación.

2.- Utilizar buenas prácticas

Los frameworks están basados en patrones de desarrollo, normalmente MVC (Modelo-Vista-Controlador) que ayudan a separar los datos y la lógica de negocio de la interfaz con el usuario. Vamos, que gracias a ellos, lo tenemos todo más ordenado.
3.-Permitir hacer cosas avanzadas que tú no harías

Está claro que un framework siempre te va permitir hacer cosas de una manera fácil y segura, que para ti serían imposibles o al menos te costaría mucho tiempo hacerlas.
4.-Desarrollar más rápido

Si tenemos en cuenta los puntos anteriores, sabremos que desarrollar una aplicación con un framework nos permite hacerlo más rápido, más limpio y más seguro.

Una vez que tenemos claro por qué usar un framework, tenemos que formularnos la siguiente pregunta:

Factores a considerar a la hora de elegir un framework para el desarrollo de aplicaciones  WEB.


1.-Soporte de comunidad

Es muy importante que el framework elegido tenga una comunidad activa y participativa. De esta manera te va a ser más fácil conseguir ayuda en los momentos difíciles. Visita la web de la comunidad y asegúrate que obtendrás consejos y soluciones cuando los necesites.
2.-Documentación

La documentación de un framework debe estar actualizada y ser lo bastante amplia para que te ayude con los problemas que te puedan surgir. Una herramienta bien documentada es mucho más fácil de utilizar.
3.-Simplicidad y potencia

Algunos framework son muy potentes pero difíciles de entender. El código generado por el framework debe ser claro y limpio, que no tengas que preocuparte de las peculiaridades internas del framework.

4.-Arquitectura MVC

Como hemos comentado anteriormente, este tipo de arquitectura nos ayuda a tener separado la lógica de negocios, los datos y la presentación. De esta manera nuestro código esta mucho más ordenado, nos hace más fácil cualquier tipo de modificación y actualización y facilita mucho el trabajo en equipo.
5.-Reutilización

Es imprescindible que los elementos desarrollados puedan ser reutilizados en varios proyectos.
6.-Patrón Active Record

Es interesante tener una clase especifica que se encargue de realizar las operaciones de modificación y consulta de una determinada tabla de una base de datos. De esta forma nuestra aplicación quedará aislada del trabajo con SQL.
7.-Posicionamiento

Dependiendo del proyecto puede ser que no nos interese estar bien posicionado, pero si no es así, es interesante que el framework ofrezca funcionalidades como url’s amigables, etc., para no tener que rehacer el proyecto más adelante.
9.-Seguridad

Puede ser un tema que en un principio pasamos por alto y luego ya es demasiado tarde. Asegúrate que el framework este desarrollado tomando la seguridad como punto de partida. Si un framework es muy potente pero no es seguro no nos sirve de nada.

Después de todos estos consejos lo último que te queda es probar, ya que es la única manera de saber si un framework se adapta a las necesidades de tu proyecto.