Conceito

Framework cuja tradução para o português quer dizer estrutura é um conjunto de classes que incorpora um design abstrato para soluções em uma família de problemas relacionados. A grosso modo quer dizer que framework é um atalho para o desenvolvedor chegar ao resultado final que ele deseja. No desenvolvimento de um software, por exemplo, é como se você consultasse em uma gaveta o que precisa e la está o que já foi feito e guardado ali. Assim você não precisará criar tudo do zero, isso poupa tempo e trabalho para operações básicas de programação, como acesso a banco de dados, sistemas de templates, mapeamento de rotas, entre outras atividades. Um framework fornece uma solução para uma variedade de problemas semelhantes, usando um conjunto de classes e interfaces que mostram como decompô-las, e como objetos dessas classes colaboram para cumprir suas responsabilidades, o conjunto de classes deve ser flexível e extensível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as particularidades de cada aplicação. Vale lembrar que o uso de frameworks tem benefícios claros quando tratamos de redução de custos .

As aplicações devem ter algo razoavelmente grande em comum, pertencem a um mesmo domínio de problema:

Softwares

LESS Framework

O LESS Framework é um sistema de grid (sistema de grid é uma estrutura que permite o conteúdo ser empilhado verticalmente e horizontalmente de uma forma consistente e facilmente gerenciável) desenvolvido para que os layouts sejam projetados para caberem em qualquer dispositivo móvel ou não, independentemente do tamanho da tela do aparelho, seja ele um smartphone ou um computador de mesa com uma tela grande. Ele contém quatro layouts e três conjuntos de tipografia presentes.

PhoneGap

O PhoneGap é um framework gratuito e de código livre que permite que sejam criados aplicativos para plataforma mobile sem precisar usar códigos nativos da linguagem, como o Objective c para iOS e Java para Android.

No PhoneGap você desenvolve seu aplicativo usando apenas HTML, CSS e Javascript, que o framework compila depois para a plataforma que você quiser.

Sencha Touch

Um pouco parecido com o PhoneGap, o Sencha Touch permite que você desenvolva aplicativos mobiles usando a linguagem HTML5, de maneira rápida e fácil você cria seu próprio aplicativo mobile.

Twitter Bootstrap

O Twitter Bootstrap é um framework criado para facilitar o desenvolvimento web, nele possui diversas funcionalidades como, layouts responsivos, grid system, etc.

Esse framework ficou tão famoso que diversas empresas resolveram criar seus próprios frameworks baseados no Twitter Bootstrap, como a Globo.com com o Globo Bootstrap (http://globocom.github.com/bootstrap/).

HTML5 Boilerplate

Esse eu diria que seja o framework mais famoso de todos, ajudando os desenvolvedores a criarem aplicativos web ou sites de maneira rápida, robusta e adaptável, ou seja, responsiva.

Um dos responsáveis por ele ser o framework de desenvolvimento front-end mais famoso é que a grande maioria das gigantes empresas no mundo o utiliza, como o Google, Microsoft, NASA, Nike, entre outras.

Modernizr

O Modernizr é uma biblioteca Javascript que detecta recursos de HTML5 e CSS3 nos navegadores dos usuários. Também é utilizada por grandes empresas como o Google, Microsoft, Twitter, entre outras.


Código

Código usado na aplicação de um banco:<syntaxhighlight lang="java"> package daca.service;

import javax.servlet.ServletContext; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import daca.dao.GerenteBanco; import daca.util.DCContants; import daca.util.FacesUtils;

/**

* The implementation of ServiceLocator.

*

* This class is managed by the JSF managed bean facility, * and is set with application scope. * * @see ServiceLocator */ public class ServiceLocator { //the Spring application context private ApplicationContext appContext; //the cached user service private GerenteBanco persistentService; /** * Constructor. *

* The following steps being done: *

    *
  • retrieve Spring application context from servlet context. *
  • look up UserService from Spring applicatino context. *

*/ public ServiceLocator() { ServletContext context = FacesUtils.getServletContext(); this.appContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); persistentService = (GerenteBanco)this.lookupService(DCContants.PERSISTENT_SERVICE_BEAN_NAME); }

/** * Lookup service based on service bean name. * * @param serviceBeanName the service bean name * @return the service bean */ public Object lookupService(String serviceBeanName) { return appContext.getBean(serviceBeanName); }

public GerenteBanco getPersistentService() { return persistentService; }

public void setPersistentService(GerenteBanco persistentService) { this.persistentService = persistentService; } } </syntaxhighlight>

Código de parte de um programa, para usuários de um banco, nesse caso, o gerente. O Framework utilizado foi o Java Server Faces (JSF), a linguagem do programa foi feita em Java.


Diagrama de Casos de Uso

Cada Iteração (Iteração é o processo chamado na programação de repetição de uma ou mais ações) gera uma release, que é uma versão estável e executável do sistema. Sendo assim, durante a fase de elaboração poderão existir "n" Iterações, garantindo que todo o backlog foi contemplado.


Dessa forma, aqui há a criação de uma aplicação web (MVC com views e controllers) usando o framework .NET Core:


Aplicação usando o framework .NET Blog:


Interações com as tecnologias

LINKS INTERNOS:

É comum um framework encapsular os comportamentos da API em implementações mais complexas permitindo o seu uso de forma mais flexível, frequentemente através de extensões, configurações e inversões de controle. Como pode ser considerada uma camada em cima da API eventualmente pode simplificá-la em certo sentido. Pode-se saber mais sobre API no link:

Tecnologia API

Programação de interfaces também é um tema que possui relações com frameworks, e está disponível nos links:

http://www.sourceinnovation.com.br/wiki/Conceito_de_Interfaces

http://www.sourceinnovation.com.br/w/index.php?title=Programa%C3%A7%C3%A3o_de_Interface_L%C3%B3gica&veaction

LINKS EXTERNOS:

Pode-se falar que frameworks possui um relação muito grande com as bibliotecas, podendo ser até confundidos com uma. Para acabar com essa confusão a solução seria a de que se você está no controle, o que você está usando é apenas uma biblioteca, mas se o componente está ditando as regras no seu projeto, o que você está usando é um framework. Uma explicação de o que é bibliotecas de uma forma simples de entender está no link abaixo:

https://pt.wikipedia.org/wiki/Biblioteca_(computa%C3%A7%C3%A3o)


Informações adicionais

Toolkits

Ainda pode ter os Toolkits que podem ser confundidos com frameworks, mas funcionam de forma mais livre, eles são mais como bibliotecas funcionando em conjunto, mas de uma maneira tradicional onde você chama o que precisa.

SDKs

Existem ainda os SDKs (Software Development Kits ) que podem assumir a forma de toolkits ou de frameworks e fornecem tudo o que precisa para programar em cima de uma plataforma (sistema operacional, banco de dados, aplicação, etc.). Estes kits costumam englobar ferramentas adicionais além das bibliotecas, além de documentação e exemplos de códigos que ajudam a usar a biblioteca adequadamente.

Framework para aplicações web

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.

Referências bibliográficas