SlideShare a Scribd company logo
1 of 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
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.
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.
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…
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
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ PATTERNS ]
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
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!
Visual Studio Summit 2013
Data Access Object
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!
Visual Studio Summit 2013
Repository Pattern
• Pantheon
• Repositório genérico
• Projeto open-source
• Disponível no GitHub
https://github.com/FerHenrique/PantheonRepository/
Visual Studio Summit 2013
Repository Pattern
[ Show me the code]
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
Visual Studio Summit 2013
Find or Create
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
Visual Studio Summit 2013
Identity Field
Visual Studio Summit 2013
Identity Field
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ PERGUNTAS? ]
Visual Studio Summit 2013
Patterns de Acesso a Dados
[ CONTATO ]
Fernando Henrique I. B. Ferreira
@ferhenrique
http://ferhenriquef.com/
ferhenriquef@live.com
[ OBRIGADO! ]
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 Practices
Data Access Architecture Guide – Microsoft Patterns and Practices
Professional ASP.Net Design Patterns – Scott Millett
http://msdn.microsoft.com/en-us/library/ff649690.aspx
http://martinfowler.com/eaaCatalog/dataMapper.html
http://msdn.microsoft.com/en-us/magazine/dd569757.aspx
http://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.html
http://en.wikipedia.org/wiki/Object_identifier
http://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?ObjectLayer/object_layer.htm
http://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?OID/index.htm
http://www.martinfowler.com/eaaCatalog/identityField.html
http://www.objectdb.com/object/db/database/features
Referências

More Related Content

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

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Grupo Treinar
 
Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Grupo Treinar
 
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Renato Groff
 
Padrões de Design para MapReduce
Padrões de Design para MapReducePadrões de Design para MapReduce
Padrões de Design para MapReduceKarla Okada
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Renato Groffe
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indianahellequin
 

Similar to Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados (20)

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO)
 
Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)
 
TA1 - Slides Acessibilidade.pdf
TA1 - Slides Acessibilidade.pdfTA1 - Slides Acessibilidade.pdf
TA1 - Slides Acessibilidade.pdf
 
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
 
Padrões de Design para MapReduce
Padrões de Design para MapReducePadrões de Design para MapReduce
Padrões de Design para MapReduce
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Domain driven design - Visão Geral
Domain driven design - Visão GeralDomain driven design - Visão Geral
Domain driven design - Visão Geral
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indiana
 
Aula1
Aula1Aula1
Aula1
 

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

  • 1. 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.
  • 2. 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.
  • 3. 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.
  • 4. 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…
  • 5. 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
  • 6. Visual Studio Summit 2013 Patterns de Acesso a Dados [ PATTERNS ]
  • 7. 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
  • 8. 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!
  • 9. Visual Studio Summit 2013 Data Access Object
  • 10. 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!
  • 11. Visual Studio Summit 2013 Repository Pattern • Pantheon • Repositório genérico • Projeto open-source • Disponível no GitHub https://github.com/FerHenrique/PantheonRepository/
  • 12. Visual Studio Summit 2013 Repository Pattern [ Show me the code]
  • 13. 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
  • 14. Visual Studio Summit 2013 Find or Create
  • 15. 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
  • 16. Visual Studio Summit 2013 Identity Field
  • 17. Visual Studio Summit 2013 Identity Field
  • 18. Visual Studio Summit 2013 Patterns de Acesso a Dados [ PERGUNTAS? ]
  • 19. Visual Studio Summit 2013 Patterns de Acesso a Dados [ CONTATO ] Fernando Henrique I. B. Ferreira @ferhenrique http://ferhenriquef.com/ ferhenriquef@live.com [ OBRIGADO! ]
  • 20. 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 Practices Data Access Architecture Guide – Microsoft Patterns and Practices Professional ASP.Net Design Patterns – Scott Millett http://msdn.microsoft.com/en-us/library/ff649690.aspx http://martinfowler.com/eaaCatalog/dataMapper.html http://msdn.microsoft.com/en-us/magazine/dd569757.aspx http://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.html http://en.wikipedia.org/wiki/Object_identifier http://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?ObjectLayer/object_layer.htm http://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm?OID/index.htm http://www.martinfowler.com/eaaCatalog/identityField.html http://www.objectdb.com/object/db/database/features Referências

Editor's Notes

  1. Colocar capa do GoF.