Framework web

Ir a: navegación, búsqueda de

A framework web (WF) o framework para aplicaciones Web (WAF) es una marco de software está diseñado para apoyar el desarrollo de aplicaciones Web incluyendo servicios Web, recursos Web y Web APIs. Frameworks web pretenden aliviar la sobrecarga asociada con actividades comunes realizadas en Desarrollo Web. Por ejemplo, proporcionan muchos frameworks web bibliotecas para base de datos acceso, plantillas Marcos y período de sesiones gestión y a menudo promueven reutilización de código.[1] Aunque a menudo destino el desarrollo de sitios web dinámicos también son aplicables a sitios Web estático.[2]

Contenido

  • 1 Historia
  • 2 Tipos de arquitecturas de marco
    • 2.1 Modelo – Vista – controlador (MVC)
      • 2.1.1 Base de empuje vs basada en la extracción
    • 2.2 Organización de tres niveles
  • 3 Aplicaciones de Framework
    • 3.1 Marcos de la Página Web de propósito general
      • 3.1.1 Lado del servidor
      • 3.1.2 Lado del cliente
    • 3.2 Weblogs, wikis y foros de discusión
    • 3.3 Portales de la organización
    • 3.4 Sistemas de gestión de contenidos (CMS)
  • 4 Características
    • 4.1 Sistema de plantillas web
    • 4.2 Almacenamiento en caché
    • 4.3 Seguridad
    • 4.4 Configuración, asignación y acceso a la base de datos
    • 4.5 Andamios
    • 4.6 Mapeo URL
    • 4.7 Ajax
    • 4.8 Servicios Web
    • 4.9 Recursos Web
  • 5 Véase también
  • 6 Referencias

Historia

Como el diseño de la World Wide Web no era inherentemente dinámico, principios hipertexto consistió en codificadas HTML fue publicado en servidores Web. Modificaciones necesarias a realizar por el autor de las páginas de páginas publicadas. Para proporcionar una Página web dinámica que refleja entradas del usuario, la Interfaz de Gateway común Estándar (CGI) fue introducido para interfaces de aplicaciones externas con los servidores web.[3] CGI podría afectar negativamente la carga del servidor, sin embargo, puesto que cada pedido tuvo que iniciar un separado proceso.

Al mismo tiempo, entornos de desarrollo de lenguaje de servidor integrado completo surgió por primera vez, como WebBase y nuevos lenguajes específicamente para usan en la web comenzada a emerger, tales como ColdFusion, PHP y Páginas de servidor activo.

Mientras que la mayoría de los idiomas disponibles para los programadores a utilizar en la creación de páginas web dinámicas bibliotecas para ayudar con las tareas comunes, aplicaciones web a menudo requieren bibliotecas específicas que son útiles en aplicaciones Web, como la creación de HTML (por ejemplo, Caras de JavaServer). Finalmente, maduro, Marcos "full stack" apareció, que a menudo se reunieron múltiples bibliotecas útiles para Desarrollo Web en un solo cohesivo pila de software para los desarrolladores web a utilizar. Ejemplos de esto ASP.NET, JavaEE (Servlets), WebObjects, web2py, OpenACS, Catalizador de, Mojolicious, Ruby on Rails, Laravel, Grails, Django, Zend Framework, Yii,[4] CakePHP[5] y Symfony.

Tipos de arquitecturas de marco

La mayoría de frameworks web se basan en la Modelo – Vista – controlador (MVC) patrón de.

Modelo – Vista – controlador (MVC)

Artículo principal: Modelo – Vista – controlador

Muchos marcos siguen el MVC patrón arquitectónico para separar el modelo de datos con reglas de negocio desde el interfaz de usuario. Esto generalmente se considera una buena práctica como modularizes código, promueve reutilización de códigoy permite múltiples interfaces para aplicarse. En aplicaciones web, esto permite diferentes puntos de vista para ser presentado, tales como páginas web para los seres humanos, y servicio Web interfaces para aplicaciones remotas.

Base de empuje vs basada en la extracción

La mayoría los marcos MVC siguen una arquitectura basada en el empuje que también se llama "basado en la acción". Estos marcos utilizan acciones que el proceso requiere y luego "push" los datos a la capa de vista para representar los resultados.[6] Django, Ruby on Rails, Symfony, Spring MVC, Rayas, CodeIgniter[7] son buenos ejemplos de esta arquitectura. Una alternativa a esto es arquitectura basada en la extracción, a veces también llamada "componente-basado". Estas estructuras comienzan con la capa vista, que puede luego "extraer" resultados de múltiples controladores según sea necesario. En esta arquitectura, varios controladores pueden participar con una sola vista. Ascensor, Tapicería, JBoss Seam, Caras de JavaServer, (μ) Micro, y Wicket son ejemplos de arquitecturas basadas en el tirón. Juego, Los puntales, RIFE y ZK tienen soporte para push y pull basado aplicación controlador llamadas.

Organización de tres niveles

En Organización de tres niveles, aplicaciones se estructuran alrededor de tres niveles físicos: cliente, aplicación y base de datos.[8][9][10][11] La base de datos es normalmente un RDBMS. La aplicación contiene la lógica de negocio, se ejecuta en un servidor y se comunica con el cliente mediante HTTP.[12] El cliente en aplicaciones web es un navegador web que se ejecuta el HTML generado por la capa de aplicación.[13][14] El término no debe confundirse con MVC, donde, a diferencia de en la arquitectura de tres niveles, se considera una buena práctica para mantener la lógica de negocio del controlador, la "capa media".[15][16]

Aplicaciones de Framework

Marcos se construyen para apoyar la construcción de aplicaciones de internet basadas en un solo lenguaje de programación, desde en enfoque de herramientas de propósito general como Zend Framework Ruby on Rails, que aumentar las capacidades de un lenguaje específico, idioma nativo programable paquetes en torno a una aplicación específica del usuario, tales como sistemas de gestión de contenidos, algunas herramientas de desarrollo móvil y algunas herramientas del portal.

Marcos de la Página Web de propósito general

Frameworks web deben funcionar según las normas arquitectónicas de los navegadores y protocolos web como HTTP, que es apátrida. Las páginas web es servido por un servidor y luego puede ser modificada por el uso del navegador JavaScript. Cada enfoque tiene sus ventajas y desventajas.

Página de servidor cambios requieren típicamente que la página se renueva, pero permite cualquier lengua para ser poder usada y más computación para ser utilizados. Cambios de lado del cliente permiten la página se actualice en pequeños pedazos que se siente como una aplicación de escritorio, pero se limitan a JavaScript y ejecutan en el navegador del usuario, que puede tienen un limitado poder de computación. Algunas mezcla de los dos se utiliza normalmente.[17] Aplicaciones que hacen un uso intensivo de JavaScript se llaman aplicaciones de una página y por lo general hacen uso de un framework de web de lado del cliente JavaScript para organizar el código.

Lado del servidor

Por ejemplo, Django, Zend Framework.

Lado del cliente

Artículo principal: Aplicación de una página

Los ejemplos incluyen Backbone.js, AngularJS, EmberJS, ReactJS y Vue.js.[18]

Weblogs, wikis y foros de discusión

Por ejemplo, WikiBase /WikiWikiWeb.

Portales de la organización

Por ejemplo, JBoss Portal o eXo Platform.

Sistemas de gestión de contenidos (CMS)

Artículo principal: Sistema de gestión de contenidos

En frameworks de aplicación web, contenidos management es la forma de organizar, clasificar y estructurar los recursos de información como texto, imágenes, documentos, archivos de audio y videos para que puedan ser almacenados, publicados y editar con facilidad y flexibilidad. Un sistema de gestión de contenidos (CMS) se utiliza para recoger, gestionar y publicar contenido, guardarlo como componentes o documentos enteros, manteniendo enlaces entre los componentes.

Algunos proyectos que históricamente han sido llamados sistemas de gestión de contenidos han comenzado a tomar el papel de frameworks de aplicación web de capa superior. Por ejemplo, Drupalde la estructura proporciona un mínimo núcleo cuya función se extiende a través módulos proporcionan las funciones generalmente asociadas con frameworks de aplicación web. El Joomla la plataforma proporciona un conjunto de API para construir aplicaciones web y línea de comandos. Sin embargo, es discutible si la "gestión de contenidos" es el valor primordial de tales sistemas, especialmente cuando algunos, como SilverStripe, proporcionan un marco MVC orientado a objetos. Add-on módulos ahora activa estos sistemas funcionar como una aplicaciones fuera del ámbito de gestión de contenidos. Pueden proporcionar funciones APIs, estructuras funcionales, codificación de normas y muchas de las funciones tradicionalmente asociadas con Frameworks de aplicación Web.

Características

Marcos normalmente establece la flujo de control de un programa y permiten que el usuario del marco de "gancho en" ese flujo exponiendo varios eventos.[19] Esto"inversión del control"patrón de diseño es considerado como un principio de definición de un marco y el código beneficia mediante la aplicación de un flujo común para un equipo que todo el mundo puede personalizar de manera similar.[19] Por ejemplo, algunos "microframeworks" popular como Sinatra de Ruby (que inspiró Express.js) permiten ganchos "middleware" antes y después de las solicitudes HTTP. Estas funciones de middleware pueden ser cualquier cosa y permite al usuario definir el registro, autenticación y sesión gestión y redirigir.[20]

Sistema de plantillas web

Artículo principal: Sistema de plantillas web

Almacenamiento en caché

Artículo principal: Caché Web

Memoria caché de web es el almacenamiento en caché de Web documentos con el fin de reducir ancho de banda uso, servidor de la cargay percibido "lag". Una caché web almacena copias de los documentos, pasando a través de él; pueden satisfacer las solicitudes subsiguientes de la caché si se cumplen ciertas condiciones. Algunos marcos de aplicación proporcionan mecanismos de almacenamiento en caché de documentos y pasar por diversas etapas de preparación de la página, como interpretación de acceso o la plantilla de base de datos.

Seguridad

Artículo principal: Seguridad de aplicaciones Web

Disponen de algunos frameworks web autenticación de y autorización Marcos, que permiten la servidor Web identificar los usuarios de la aplicación, y restringir el acceso a funciones basadas en unos criterios definidos. Drupal es un ejemplo que proporciona acceso a páginas de papel y proporciona una interfaz basada en web para crear usuarios y asignarles funciones.

Configuración, asignación y acceso a la base de datos

Muchos frameworks de web crean un API DE a un base de datos back-end, lo que permite aplicaciones web para trabajar con una variedad de bases de datos sin cambios en el código, y programadores que permite trabajar con conceptos de nivel superiores. Además, algunos orientado a objetos Marcos contienen herramientas de mapeo para proporcionar Mapeo objeto-relacional, qué mapas objetos Para tuplas.

Algunos Marcos minimizan la configuración de la aplicación web mediante el uso de introspección o siguiendo convenciones bien conocidas. Por ejemplo, utilizan muchos frameworks de Java Hibernate como capa de persistencia, que puede generar un esquema de base de datos en tiempo de ejecución capaz de conservar la información necesaria. Esto permite al diseñador de la aplicación a objetos de negocios de diseño sin necesidad de definir explícitamente un esquema de base de datos. Marcos como Ruby on Rails también puede trabajar en sentido inverso, es decir, definir propiedades de modelo de objetos en tiempo de ejecución basado en un esquema de base de datos.

Otras características pueden proporcionar Marcos de web incluyen apoyo transaccional y herramientas de migración de base de datos.

Andamios

Artículo principal: Andamio (programación)

Mapeo URL

Vea también: Controlador frontal

Un marco URL mapping o enrutamiento de instalación es el mecanismo por el cual el marco interpreta las URL. Algunos marcos como Drupal y Django, coincide con la URL proporcionada contra determinados patrones de uso de expresiones regulares, mientras que algunos otros utilizan reescritura de técnicas para traducir la URL proporcionada en uno que reconoce el motor subyacente. Otra técnica es la de gráfico traversal tales como utilizado por Zope, donde una dirección URL se descompone en pasos que recorrer un grafo de objeto (de modelos y puntos de vista).

Permite un sistema de mapeo de URL que utiliza la coincidencia de patrón o reescribir solicitudes de ruta y mango más corto más"URLs amigables"para ser utilizado, aumentando la simplicidad del sitio y que permiten mejor indexación por buscadores. Por ejemplo, una dirección URL que termina con "/page.cgi?cat=science & tema = física" podría cambiarse a simplemente "/ física de ciencia de página". Esto hace más fácil para la gente a recordar, leer y escribir, la URL y motores de búsqueda con mejor información acerca de la disposición estructural del sitio. Un enfoque de salto gráfico también tiende a resultar en la creación de URLs amigables. Un ENLACE más corto como "página/ciencia" tiende a existir por defecto ya es simplemente una forma más corta de la ya salto a "/ física de ciencia de página".

Ajax

Artículo principal: Marco de Ajax

Ajaxuna abreviación para "Asincrónica JavaScript y XML", es una técnica de desarrollo web para crear aplicaciones web. La intención es hacer páginas web que responda mejor mediante el intercambio de pequeñas cantidades de datos con el servidor detrás de las escenas, para que toda la página web no tiene que volver a cargar cada vez que el usuario solicita un cambio. Esto se piensa para aumentar la velocidad de interactividad, de la página web, y facilidad de uso.

Debido a la complejidad de Ajax de programación en JavaScript, hay numerosos Frameworks ajax que tratan exclusivamente de soporte Ajax. Algunos frameworks Ajax aún están integrados como parte de los marcos más grandes. Por ejemplo, la jQuery Biblioteca JavaScript se incluye en Ruby on Rails.

Con el creciente interés en el desarrollo"Web 2.0" medios enriquecidos aplicaciones, la complejidad de la programación en Ajax y JavaScript se ha convertido en tan evidente que la tecnología del compilador ha intervenido, para permitir que los desarrolladores de código en lenguajes de alto nivel como Java, Python y Ruby. El primero de estos compiladores Morfik seguido por Google Web Toolkit, con puertos a Python y rubí en forma de Pijamas y RubyJS después de algún tiempo después. Estos compiladores y sus bibliotecas de sistema widget asociado hacen el desarrollo de multimedia aplicaciones Ajax mucho más similar a la de desarrollo de aplicaciones de escritorio.

Servicios Web

Artículo principal: Servicio Web

Algunos Marcos proporcionan herramientas para crear y ofrecer servicios web. Estas utilidades pueden ofrecer herramientas similares como el resto de la aplicación web.

Recursos Web

Artículo principal: Web de recursos

Un número de más nuevos Web 2.0 Descanso ahora están proporcionando marcos arquitectura orientada a recursos Infraestructura (ROA) para la construcción de colecciones de recursos en una especie de Web semántica ontología, basado en conceptos de Marco de descripción de recursos (RDF).

Véase también

  • Comparación de frameworks web
  • Rich Internet application
  • Lista de ricos marcos de aplicación de Internet
  • Lista de marcos de servicios para web
  • Servidor de aplicaciones
  • Comparación de servidores de aplicaciones
  • Marco de aplicación
  • Seguridad de aplicaciones
  • Convención sobre configuración
  • No lo repitas a ti mismo (SECO)
  • De soluciones
  • Marco de aplicación web de teléfono múltiples

Referencias

  1. ^ Múltiples (wiki). "Framework para aplicaciones web". Docforge. Archivado de el original en 2015-07-23. 
  2. ^ "Los mejores generadores de sitio estático de código abierto". StaticGen. 
  3. ^ "CGI: Common Gateway Interface". Archivado de el original el 2009-04-09. 
  4. ^ «Yii PHP Framework». 
  5. ^ «CakePHP». 
  6. ^ Thomson, Kris (2003-10-29). "aclaración sobre MVC = Pull y Push MVC". 2007-07-29. 
  7. ^ "Cuáles son las diferencias fundamentales entre Struts y JSF". Struts.apache.org. 2011-02-14. 2013-06-14. 
  8. ^ Microsoft. "distribución de tres niveles". 2011-09-19. 
  9. ^ Oracle. "clustering_concepts_10en" (PDF). 2011-09-19. 
  10. ^ Robert R. Perkoski. "Introducción al desarrollo Web". Archivado de el original en 2013-11-07. 
  11. ^ IBM. "Uso de Express de acceso de cliente en un entorno de tres niveles". 2011-09-19. 
  12. ^ Oracle. "Entender la arquitectura de tres niveles". 2011-09-19. 
  13. ^ Microsoft. "Arquitectura pragmática: capas". 2011-09-19. 
  14. ^ Arokia. "Arquitectura 3-tier Web". 2011-09-19. 
  15. ^ "ASP.NET MVC controlador Best Practices". Archivado de el original el 2011-10-11. 2011-09-19. 
  16. ^ Jamis Buck. "Flaco controlador, modelo Fat". Archivado de el original en 2015-05-16. 
  17. ^ KLIMUSHYN, Mel. "Arquitectura de la aplicación – cliente y servidor de web". Giro atómico. 2016-03-06. 
  18. ^ "AngularJS vs Backbone.js vs Ember.js". www.Airpair.com. 2016-06-04. 
  19. ^ a b Fowler, Martin. "bliki: InversionOfControl". martinfowler.com. 2016-03-06. 
  20. ^ Xue, Qiang. "ingeniería de una capital – filosofías que Marcos éxito en forma de". www.capitalone.IO. 2016-03-06. 

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Web_framework&oldid=752680229"