Ambiente de Programação Visual Noções do padrão MVC e DAO Prof. Mauro Lopes 1-31 18
Objetivos Nesta aula iremos apresentar os conceitos introdutórios sobre Padrões de Projetos. Nesta introdução iremos apresentar dois elementos simples: Padrão MVC e o Padrão DAO. Ao final desta aula, o aluno poderá implementar pequenas aplicações que utilizam os conceitos abordados. Boa aula a todos. 2
Plano de Aula Introdução Padrão MVC Padrão DAO Considerações sobre os Padrões 3
Introdução Um mesmo aplicativo, o Facebook por exemplo, pode ser utilizado em vários equipamentos; Será que temos de ter várias implementações dele? Página Web (Computadores, TV, Celulares, etc) App (Tablets e Celulares) 4
Introdução As funcionalidades da página web do Facebook são as mesmas do aplicativo para celular (app)? Vamos supor que você seja contratado para trabalhar para dar manutenção na funcionalidade chamada curtir do Facebook; Vamos supor ainda que Zuckerberg pense numa nova forma de usar o curtir. Já imaginou ter de alterar esta funcionalidade? Imagine duas possibilidades: O curtir é codificado na página web e também codificado na App, ou seja, o mesmo código existe em dois locais diferentes; Com uso da Orientação a Objetos a funcionalidade curtir é uma única classe que é usada pela página web e pela App. 5
Introdução Qual a melhor possibilidade? Existe um conceito denominado Padrão de Projeto; Todo padrão de projeto tem: Um nome Que identifique claramente o que o padrão faz. Um objetivo Que descreva com detalhes a razão de ser do padrão. Um problema Uma situação de projeto cuja solução não é óbvia. Uma solução Detalhes de implementação da solução elegante. Consequências Pois não existe almoço grátis... 6
Padrão MVC Modelo... Visão... Controle... modelagem dos dados apresentação da aplicação processamento da aplicação Mas o que é esse padrão? Para entender...vamos entender o problema apresentado anteriormente. 7
Padrão MVC Processamento Apresentação Apresentação 8
Padrão MVC Objetivo: facilitar desenvolvimento, manutenção e reaproveitamento de código; Mudanças mais frequentes Interface com o Usuário (visão) Mudanças comuns Modelo de dados Mudanças menos comuns Processo de negócio (processamento). 9
Model INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Padrão MVC A camada Model (modelo) possui a representação das informações do programa. No nosso exemplo, esta camada irá implementar classes para representar as entidades envolvidas no programa. Por exemplo em um programa de frente de caixa, haveria classes para representar produtos, compras, notas fiscais, itens de notas fiscais, métodos de pagamento. Estas classes iriam também armazenar todas as ações que eventualmente o usuários necessitasse realizar sobre estas entidades. Normalmente as classes utilizam um sistema de banco de dados para fazer o armazenamento persistente. 10
View INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Padrão MVC A camada View (visão) é responsável por construir uma interface para interação do usuário. Ela prepara a apresentação da informação para que o usuário possa reagir as respostas e continuar utilizando o programa. Em C# utilizaremos os formulários e os vários elementos associados a ele para construirmos nossa visão. Observe que a camada View não acessa diretamente o banco de dados, ela recebe normalmente coleções de objetos geradas pelas classes da camada Model. 11
Control INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Padrão MVC A camada Control (controle) é a camada que controla o processo. Cada requisição do usuário é primeiro interpretado pela camada de controle que determina qual ação deve ser executada no modelo e encaminha depois a resposta do modelo para a camada de visão. 12
Padrão MVC Um importante padrão associado ao padrão MVC é o padrão DAO (Data Access Objects) 13
Padrão DAO Uma importante solução para separar o acesso a camada de dados; DAO significa Objetos de Acesso a Dados; Foi um padrão criado pela Microsoft; É um construtor de objetos com base nas informações do banco de dados; Padrão de Nome: NomeDaEntidadeDAO Por exemplo: JogoDAO Para armazenar um jogo na base de dados: JogoDAO.adiciona(objeto_jogo); Para buscar um Jogo da base de dados: Jogo meujogo = JogoDAO.busca( Fifa 15 ); 14
Considerações sobre os Padrões Aqui demos uma breve noção do conceito de Padrões de Projetos; Haverá uma disciplina, denominada Padrões de Projeto, que exclusivamente irá trabalhar o conjunto de padrões que fazem parte do Catálogo de Padrões de Projeto; Aqui apresentamos uma noção básica de Modelo MVC e DAO. Há muitos outros elementos que fazem parte destes modelos como uso de interfaces e outras formas de organizar a arquitetura da aplicação. 15
Perguntas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva 16
Próxima Aula... Usando DataGridView. 17
Referências Materiais avulsos da Internet e o livro C#: Guia do Programador, Joel Saade - Editora Novatec, 687 páginas. 18