Framework para aplicações web

Origem: Wikipédia, a enciclopédia livre.

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[editar | editar código-fonte]

Como 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[editar | editar código-fonte]

Modelo Visão Controlador (MVC)[editar | editar código-fonte]

Muitos 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[editar | editar código-fonte]

A 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[editar | editar código-fonte]

Alguns 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.