20
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.

Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

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

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

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

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

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

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

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

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

Visual Studio Summit 2013

Data Access Object

Page 10: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

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

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

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

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

Visual Studio Summit 2013

Find or Create

Page 15: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

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

Visual Studio Summit 2013

Identity Field

Page 17: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

Visual Studio Summit 2013

Identity Field

Page 18: Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados

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

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

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