Aplicativos para Web MVC Prof. Odair Indena Jr.
Divisão em camadas Uma arquitetura que divide a aplicação em responsabilidades. Regra em como agrupar componentes de software. Visa diminuir o acoplamento entre estes componentes. Não estabelece regras em como estes componentes podem se comunicar. Divisão em camadas não necessariamente é MVC!
Divisão em camadas Aplicação em uma camada : Utilizado nos tempos antigos; Era apenas um usuário e uma máquina. As funcionalidades estavam misturadas um único módulo. A manutenção era complexa. Conhecida como aplicação em uma camada ou monolítica.
Divisão em camadas Aplicação em duas camadas Os dados ficam separados da aplicação. Surgiu da necessidade de compartilhar os dados entre vários computadores e usuários. A lógica da aplicação fica alocada na maquina do usuário. Difícil atualizar a versão da aplicação. Muito utilizado nas épocas de aplicações cliente/servidor. Tem muita aplicação em produção ainda !
Divisão em camadas Aplicação em 3 camadas: Ficou mais conhecida com o sucesso da internet. O cliente passou a utilizar um Navegador, que já não continha a regra de negócio. Já não precisava instalar a aplicação localmente. A regra de negócio fica todo em um servidor. A persistência continua separada. ApresentaçãoNegóciosPersistência
MVC – Model, View, Control É um modelo de desenvolvimento de software. Considerado Design Patterns na Eng. SW. Define como os componentes devem se comunicar. Não é algo novo, é do inicio dos anos 80. Ficou mais conhecido com a popularização das aplicações WEB, onde se encaixou como uma luva. Pode ser aplicado a diversas linguagens, não necessariamente na WEB. Em Java temos diversos FrameWorks que nos auxiliam com os projetos em MVC, mas com servlets e JSP também podemos implementar um projeto com MVC. Nos dias atuais temos algumas variações dele como MVVM, MVP ou MVW.
MVC – Model, View, Control Objetivo: Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Controller); A ideia é permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces. Na arquitetura MVC, a lógica de negócios (chamaremos de Modelo) não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado.
MVC – Model, View, Control Model – Representa o modelo da sua aplicação, com as regras de negócio ( business logic ) e todo o processamento da aplicação, inclusive acesso ao BD. View – Representa a informação e recolhe os dados fornecidos pelo usuário, encaminhando para o Controller. Controller – Recebe as informações da entrada e as transmite para o modelo, também atualiza o modelo e disponibiliza o estado para a view.
MVC – Model, View, Control BROWSERBROWSER (CONTROLLER) SERVLET (VIEW) JSP/HTML (MODEL) JAVABEANS DADOS
MVC – Model, View, Control Vantagens Facilita o reaproveitamento de código; Facilidade na manutenção e adição de recursos; Maior integração da equipe e/ou divisão de tarefas; Diversas tecnologias estão adotando essa arquitetura; Facilidade em manter o seu código sempre limpo; Desvantagens Adiciona uma complexidade desnecessária para aplicações de pequeno porte. Precisa de um treinamento adequado. A equipe precisa ser muito disciplinada para não fugir dos conceitos do MVC. Requer mais tempo e planejamento para construir o sistema.