Framework para aplicações web
Este artigo não cita fontes confiáveis. (Fevereiro de 2013) |
Um framework para aplicações web é um framework de software designado para suportar o desenvolvimento de sites web dinâmicos, aplicações Web e serviços Web. O framework destina-se a aliviar a sobrecarga associada a atividades comuns realizadas em desenvolvimento Web. Por exemplo, muitos frameworks fornecem bibliotecas para acesso à banco de dados, frameworks de modelagem e gerenciamento de sessão, e geralmente promovem a reutilização de código.
História
editarComo o projeto da World Wide Web não foi legadamente dinâmico, antigamente o hipertexto consistia de código programado manualmente em HTML que era publicado em servidores web. Quaisquer modificações para as páginas publicadas precisavam ser realizadas pelo autor do codigo.
Arquiteturas
editarMuitos frameworks seguem o padrão arquitetural Modelo Visão Controlador (MVC) para separar o modelo de dados com as regras de negócio da interface do usuário. Isto geralmente é considerado uma boa prática uma vez que modulariza o código, promove reutilização de código e permite que várias interfaces sejam aplicadas.
Baseada em empurrão versus Baseada em puxão
editarA maioria dos frameworks MVC seguem a arquitetura baseada em empurrão (push-based). Estes frameworks utilizam ações que realizam o processamento requerido, e então "empurram" os dados para a camada de visão para apresentar os resultados. Struts, Django, Ruby on Rails e Spring MVC são bons exemplos desta arquitetura. Uma alternativa a ela é a arquitetura baseada em puxão (pull-based), algumas vezes chamada de "baseada em componentes". Estes frameworks iniciam com a camada de visão, que pode então "puxar" os resultados de vários controladores conforme necessário. Nesta arquitetura, vários controladores podem estar envolvidos com uma única visão. Struts2, Tapestry, JBoss Seam, Wicket e Stripes são exemplos de arquiteturas baseadas em puxão.
Sistemas de Gerenciamento de Conteúdo
editarAlguns sistemas de gerenciamento de conteúdo auto-descritivos começaram a se expandir para frameworks de aplicações web de alto nível. Por exemplo, a estrutura do Drupal fornece um núcleo mínimo cuja função é estendida através de módulos que fornecem funções geralmente associadas com frameworks de aplicação web.