### Framworks
* Definición
* Funcionalidad
* Ejemplos de Framwroks
---
### Framework: Definición
Es un entorno de trabajo que posee ciertas herramientas y características útiles que agilizan el
desarrollo de un proyecto de programación.
---
### Frameworks
Entre los frameworks más usados para desarrollo web encontramos:
* Angular
* VueJs
* React
Nota: (React es una librería que suele considerarse como un framework)
---
### [Angular](https://docs.angular.lat/)
Fue desarrollado por Google, y presentado en el 2010.
Angular se emplea para crear aplicaciones de una sola página y aplicaciones web progresivas,
así como para el desarrollo multiplataforma.
Su objetivo es simplificar tanto el desarrollo como la prueba de dichas aplicaciones al
proporcionar un marco para las arquitecturas del lado del cliente,
modelo-vista-controlador (MVC) y modelo-vista-modelo de vista (MVVM).
---
### Angular: Características
* Está respaldado y desarrollado por Google.
* Utiliza un DOM (Document Object Model) para representar el proyecto desde nodos.
* Es multi-plataforma para desarrollo de aplicaciones web, móviles o de escritorio.
* Tiene excelente experiencia de desarrollo gracias a TypeScript y a herramientas de detección de errores y autocompletado de código propias de Angular.
* Posee una gran comunidad
---
### Angular: Ventajas
* **Fácil de usar:** Es fácil de usar y comprender. Tiene una sintaxis simple y es fácil de aprender.
* **Modular:** Permite dividir en componentes más pequeños que se pueden reutilizar y combinar para crear aplicaciones más grandes.
* Cuenta con una estructura y control de los proyectos
* Posee una gran comunidad
* Arquitectura MVC: que facilita el desarrollo y mantenimiento de aplicaciones grandes.
---
### Angular: Desventajas
* **Complejidad:** Puede ser difícil de aprender para los desarrolladores que son nuevos en los marcos de JavaScript.
* **Rendimiento:** las aplicaciones pueden ser lentas en comparación con otros marcos como React o Vue.
* **Documentación deficiente**
* **Curva de aprendizaje pronunciada:** Requiere que los desarrolladores tengan una buena comprensión de TypeScript, HTML y CSS.
---
### [React](https://es.reactjs.org/)
Es una librería de Js desarrollada por **Facebook** en el 2013 para construir interfaces de usuario.
Su principal característica es el uso de un DOM virtual donde se realizan todos los cambios de la interfaz de usuario,
que luego se aplican al verdadero DOM, acelerando la ejecución de aplicaciones.
Se puede utilizar tanto para crear sitios de web dinámicos de una sola página,
como para paneles de control o grandes plataformas web.
---
### React: Ventajas
* **DOM virtual:** Genera el DOM de forma dinámica, primero aplica los cambios en un DOM Virtual y luego al DOM real.
* **Isomorfismo:** El código se ejecuta en servidor y cliente, reduciendo así la carga de trabajo.
* **Componentes:** Permitirá ahorrar en tiempo de desarrollo, crear aplicaciones más escalables y fáciles de mantener.
* **Flujo de datos unidireccional:** La información e propagan desde los componentes superiores a los inferiores.
* **Amplia comunidad**
* **Multiplataforma:** Llevar la aplicación a **React Native** es sencillo.
* **Aprendizaje:** Curva de aprendizaje reducida.
---
### React: Desventajas
* **Documentación deficiente**
* No hay un patrón de desarrollo
---
### [VueJS](https://vuejs.org/)
Es es un framework Js para desarrollo frontend lanzado en el 2014.
---
### Vue: Ventajas
* Fácil de aprender y utilizar.
* Liviano y flexible
* Sigue los estándares de HTML+CSS+Js
* Es un framework progresivo que permite migrar facilmente proyectose existentes
---
### Vue: Desventajas
* Mucha documentación útil esta en chino (por ser ampliamente usado por Alibaba y Xiaomi).
* Complejidad de la reactividad
* Exceso de flexibilidad
---
## ¿Dudas, Preguntas, Comentarios?
