[MÚSICA] Ahora que hemos hablado de marcos para aplicaciones software déjenme hablarles de marcos para aplicaciones web, es decir de marcos de software que nos permiten construir aplicaciones web integradas. Esto es lo que nos interesa en este curso. Un marco de aplicación está diseñado para apoyar el desarrollo de aplicaciones web, así que esto solo son el marco de software para el desarrollo de aplicaciones, y por lo general incluyen una serie de herramientas de apoyo. Por ejemplo, por lo general hay un soporte para conectar la aplicación web a un motor de bases de datos y además puede haber apoyo para la actualización del esquema asociado a esta base de datos cada vez que este modelo cambie. A menudo hay una plantilla en el marco para la generación de contenido web dinámico, proporcionando una plantilla lo que se obtiene es un aspecto consistente y la sensación de que cada página de tal aplicación puede ser creada de forma automática, además llenando estas páginas web de manera dinámica, esto es mediante la lectura de los datos, en la base de datos, en el momento en que se está construyendo la página lo que se muestra en el navegador puede mantenerse coherente con lo que se encuentra en esta base de datos. En general hay gestiones de sesiones HTTP y algo de apoyo de tipo middleware. La forma más común de seguimiento de clientes mientras que utilizan un sitio web es que puedes asignarles un identificador de sesión único y el navegador de cada usuario transmite este identificador de sesión de vuelta al servidor web, con cada petición que se hace desde del navegador, y esta es la forma de mantener un registro de quién es quién cuando se tienen varios usuarios que interactúan con la aplicación web. Los entornos de aplicaciones web también por defecto incluyen generalmente un servidor web y otros componentes de middleware que simplemente funcionan directamente. En otras palabras usted no tiene que utilizar mucho tiempo de programación para ponerlos en marcha y configurarlos. Muchos entornos de aplicación web proporcionan generadores de código para crear el andamiaje de una aplicación web. A menudo esto incluye la creación de tests para probar la aplicación web y para asegurarse de que la realización de separaciones es correcta, vamos a hablar mucho más sobre las pruebas en un curso posterior. En este momento solo quiero hablar de la importancia de las pruebas y el hecho de que las aplicaciones web modernas deben soportar un marco continuo de pruebas porque así es cómo el software debe ser desarrollado hoy en día. Además la aplicación web puede incluir apoyo a la internacionalización de su web, de manera que se puede ver en el navegador que una persona está usando y determinar su lengua y entregar contenido en consecuencia. Puede que tenga soporte para la seguridad de su aplicación web o para el despliegue. He mencionado que muchos entornos web incluyen el sistema de andamiaje que le permiten generar fácilmente un tipo de modelo vista controlador que también incluye algo llamado API REST. Hablaremos sobre el patrón de diseño modelo vista controlador más adelante en esta lección y voy a hablar más acerca de la API REST en un modelo posterior. Aquí hay una cita del inventor de Rails sobre la eficiencia del programador, él es David Heinemeier Hansson, y dice que lo principal el que el coste por solicitud está cayendo en picado, pero el coste de la programación no. Por lo tanto, tenemos que encontrar formas de sopesar eficiencia en tiempo de ejecución con la eficiencia en el tiempo creativo, con el fin de hacer el desarrollo de aplicaciones más barato. Creo que hemos entrado hace mucho tiempo en una edad en la que simplicidad del desarrollo y en el mantenimiento es donde radica el verdadero valor. Así que Heinemeier está puntualizando algo en lo que yo insisto continuamente, el tiempo de los programadores es muy valioso. Los programadores ganan hoy día una gran cantidad de dinero, por lo que es más importante ahorrar en su tiempo de trabajo que exprimir un poco más la eficiencia en el tiempo de ejecución del programa y esta es la filosofía detrás de los procesos de desarrollo web ágiles hoy en día, que corresponde con la filosofía de Rails. Me gustaría hablar de algunos otros marcos de aplicaciones web populares para que tengan una idea de lo que está pasando en este espacio en general, en el espacio de los marcos de aplicación web, quiero decir. Todos los marcos que voy a mencionar se proporcionan como un software de código abierto. Para entender los detalles de cómo se puede utilizar este software solo eche un vistazo a la licencia, estas licencias generalmente describen cómo tiene que añadir notas de atribución con cualquier software que desarrolle y que se base en uno de estos marcos. Cada uno de estos marcos, por cierto, utiliza el patrón de diseño modelo vista controlador, que se discutirá más adelante en esta lección. Ruby on Rails es el que vamos a usar, el marco Rails se basa en Ruby y hemos hablado de esto cuando discutimos los conocimientos previos de Rails. La única otra cosa que quiero mencionar es que la mayoría de los otros marcos de los que voy a hablar ahora se inspiraron en Rails, y por cierto en 2016 se ha estimado que hay más de 1,2 millones de sitios web que estaban utilizando, que están utilizando Rails. Otro marco muy popular es Play, y se puede desarrollar código Play utilizando Java o Scala, y usted podría estar interesado en saber que este es el marco que Coursera está utilizando. ASP.NET MVC fue creado por Microsoft y se proporciona como una ampliación en su entorno de desarrollo a ASP.NET y sí también es de código abierto. Django es una aplicación, es un Python, hay que mencionar que Pinterest, Instagram y Big Bucket lo utilizan. Otro marco popular basado en Ruby, es Sinatra, se trata de un marco modelo que es un controlador extremadamente ligero, que ha sido usado por LinkedIn, BBC y otros. Muchas personas que utilizan Ruby on Rails también utilizan Sinatra. Si usted tiene un sistema que está tratando de construir, que no tiene un servidor de base de datos muy intensivo, Sinatra es una opción interesante. De hecho para muchas empresas, muchas empresas utilizan varios marcos, mezclan y combinan todos los marcos que les muestro aquí. Otro marco basado en PHP es Symfony, Y el último que quiero mencionar es Sails.js, este marco se ha construido utilizando el Node.js, Node.js es un entorno de ejecución para el desarrollo de aplicaciones web a nivel de servidor. Con él se escriben aplicaciones JavaScript, que se ejecutan en este entrono. Hay muchos marcos que se están construyendo actualmente en torno a este entorno Node.js, Sails.js es solo uno de ellos, es muy probable que vean muchos más de estos marcos Node.js apareciendo con el tiempo. Si va a los sitios web de cada uno de estos marcos encontrará un montón de ejemplos de documentación y código y yo por supuesto les animo a hacer esto. Vamos a echar un vistazo, aquí está la página de Ruby on Rails, verá que tiene guías y otras cosas como blogs que pueden consultarse. Otra vez el marco Play, se describe aquí cómo usarlo. En muchos casos estos sitios web además mencionan quién está usando su tecnología. Este otro es Microsoft ASP.NET MVC, este es Django, Sinatra, una vez más lea la documentación si quiere saber cómo usarlo, Symfony y esta la página es Sails.js, de nuevo, con la documentación y un montón de enlaces para ayudar a comenzar a utilizar este marco. También quería mencionarles WordPress, Drupal y Joomla, estos sistemas de gestión de contenidos en realidad no son entornos de aplicaciones web, puede utilizar estos sistemas para crear sitios web por supuesto, pero entonces lo hara a través de una aplicación. En este caso usted no está realmente creando la arquitectura de la aplicación web en sí, son aplicaciones web, no es un marco de aplicación web. Si usted necesita simplemente generar páginas sencillas, son buenos para ello, pero no se pueden utilizar para construir toda la infraestructura detrás de una aplicación web sofisticada. [AUDIO EN BLANCO]