visual studio summit 2013 - patterns para criação de camadas de acesso a dados
DESCRIPTION
TRANSCRIPT
![Page 1: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/1.jpg)
Visual Studio Summit 2013
Fernando Henrique Ferreira, desenvolvedor de software.
Patterns para criação de camadas de acesso a dados
ITGROUP
MVP, MCPD, MCTS, MCC e Mestre em Sistemas de Informação.
![Page 2: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/2.jpg)
Visual Studio Summit 2013
Discutiremos sobre o emprego de padrões de projetos para resolução de problemas recorrentes da modelagem de camadas de acesso a dados.
Adoção de padrões para composição de camadas de acesso a dados.
![Page 3: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/3.jpg)
Visual Studio Summit 2013
Camadas de Acesso a Dados
• Encapsular tecnologias de acesso a dados.• Fornecer recursos para inclusão, atualização, exclusão e
leitura de fontes de dados.• “Fontes de dados”, não “bancos de dados”.
Por que criar camadas de acesso a dados?
A aplicação independe da fonte de dados.
![Page 4: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/4.jpg)
Visual Studio Summit 2013
Camadas de Acesso a Dados
• Reaproveitamento de código.• Centralização de políticas de acesso a dados.• Habilidade de testar a camada de negócios de forma
desconectada da fonte de dados.
Outras vantagens…
![Page 5: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/5.jpg)
Visual Studio Summit 2013
Camadas de Acesso a Dados
• Sem regras de negócio.• Comunicação.• Conexões.• Mapeamento.• Ser eficiente, segura e de fácil
manutenção.
Regras da camada de acesso a dados
![Page 6: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/6.jpg)
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ PATTERNS ]
![Page 7: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/7.jpg)
Visual Studio Summit 2013
Patterns de Acesso a Dados
• Soluções reutilizáveis já testadas.• Associados a resolução de um problema.• Patterns abordados:
– Estruturais• Data Access Object• Repository Pattern
– Lógicos• Find or Create• Identity Field
Patterns para criação de camadas de acesso a dados
![Page 8: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/8.jpg)
Visual Studio Summit 2013
Data Access Object
• Pattern mais utilizado.• Pattern mais simples de ser implementado.• Separa o código de acesso a dados das demais camadas da
aplicação.• Cada DAO contém seus próprios métodos, não existe um
padrão de comandos entre as classes de acesso a dados.
Preciso encapsular meu acesso a dados!
![Page 9: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/9.jpg)
Visual Studio Summit 2013
Data Access Object
![Page 10: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/10.jpg)
Visual Studio Summit 2013
Repository Pattern
• Provê recursos para recuperação de dados por meio de uma solução genérica.
• Padroniza o formato como as requisições para a fonte de dados são feitas.
• Muito utilizado com ferramentas de mapeamento objeto-relacional.
Preciso de um repositório genérico!
![Page 11: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/11.jpg)
Visual Studio Summit 2013
Repository Pattern
• Pantheon• Repositório genérico• Projeto open-source• Disponível no GitHub
https://github.com/FerHenrique/PantheonRepository/
![Page 12: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/12.jpg)
Visual Studio Summit 2013
Repository Pattern
[ Show me the code]
![Page 13: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/13.jpg)
Visual Studio Summit 2013
Find or Create
• Busca um dado na fonte de dados e o cria caso não exista.• Muito utilizado em importações de dados.• Tags de blogs fazem uso deste pattern.
Preciso ter certeza que meus dados estão disponíveis
![Page 14: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/14.jpg)
Visual Studio Summit 2013
Find or Create
![Page 15: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/15.jpg)
Visual Studio Summit 2013
Identity Field
• Adoção de uma chave identificadora que distingue um registro de todos os demais dentro do sistema.
• Identificador global.• Relacionado ao conceitos de OIDs (Bancos de dados O.O.)• Utilizado em: migração de sistemas, unificação de fontes de
dados, passagem de parâmetro entre sistemas, controle de concorrência, etc.
Preciso rastrear os meus dados entre diferentes fontes de dados
![Page 16: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/16.jpg)
Visual Studio Summit 2013
Identity Field
![Page 17: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/17.jpg)
Visual Studio Summit 2013
Identity Field
![Page 18: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/18.jpg)
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ PERGUNTAS? ]
![Page 19: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/19.jpg)
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ CONTATO ]
Fernando Henrique I. B. Ferreira@ferhenriquehttp://ferhenriquef.com/[email protected]
[ OBRIGADO! ]
![Page 20: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados](https://reader033.vdocuments.mx/reader033/viewer/2022051610/5484cdb8b4af9f6e0d8b4c86/html5/thumbnails/20.jpg)
Visual Studio Summit 2013
Patterns de Acesso a Dados
DbContext – Programming Entity Framework – J. Lerman & R. Miller.Microsoft Application Architecture Guide – 2nd Edition – Microsoft Patterns and PracticesData Access Architecture Guide – Microsoft Patterns and Practices Professional ASP.Net Design Patterns – Scott Milletthttp://msdn.microsoft.com/en-us/library/ff649690.aspxhttp://martinfowler.com/eaaCatalog/dataMapper.htmlhttp://msdn.microsoft.com/en-us/magazine/dd569757.aspxhttp://www.codefutures.com/data-access-object/http://thepugautomatic.com/2007/01/importing-legacy-data-into-core-data-with-the-find-or-create-or-delete-pattern/https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.htmlhttp://en.wikipedia.org/wiki/Object_identifierhttp://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?ObjectLayer/object_layer.htmhttp://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?OID/index.htmhttp://www.martinfowler.com/eaaCatalog/identityField.htmlhttp://www.objectdb.com/object/db/database/features
Referências