Tirando proveito do n hibernate

1,084 views
1,047 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,084
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • De repente, ideal tirar o slide sobre HIBERNATE!
  • De repente, ideal tirar o slide sobre HIBERNATE!
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Falar sobre ALT.NET
  • Tirando proveito do n hibernate

    1. 1. Tirando proveito do NHibernate Dílter Porto [email_address] @dilterporto
    2. 2. Agenda() { <ul><li>“ Impedance Mismatch” </li></ul><ul><li>ORM (Object Relational Mapping) </li></ul><ul><li>NHibernate </li></ul><ul><li>Fluent NHibernate </li></ul><ul><li>Demonstração </li></ul>}
    3. 3. O problema da impedância objeto-relacional
    4. 4. O bject R elational M apping (1/3) <ul><li>Significa => Mapeamento Objeto-Relacional </li></ul><ul><li>Proposta: </li></ul><ul><ul><li>Minimizar a impedância (conceitual e técnica) entre OO e OR </li></ul></ul><ul><ul><ul><li>estruturas hierárquicas X estruturas relacionais </li></ul></ul></ul><ul><ul><ul><li>diferença de tipos de dados </li></ul></ul></ul><ul><ul><ul><li>conceituação: Herança, Polimorfismo, encapsulamento (…) </li></ul></ul></ul><ul><ul><li>Facilitar o acesso a dados </li></ul></ul><ul><ul><li>Trazer o desenvolvimento para Orientação a Objetos </li></ul></ul>
    5. 5. O bject R elational M apping (2/3) <ul><li>Benefícios </li></ul><ul><ul><li>Produtividade: </li></ul></ul><ul><ul><ul><li>Elimina código repetitivo </li></ul></ul></ul><ul><ul><ul><li>Geração do banco de dados </li></ul></ul></ul><ul><ul><li>Manutenibilidade: </li></ul></ul><ul><ul><ul><li>Menos linhas de código </li></ul></ul></ul><ul><ul><ul><li>Mudanças no Modelo de Objetos </li></ul></ul></ul><ul><ul><li>Perfomance </li></ul></ul><ul><ul><ul><li>Lazy loading </li></ul></ul></ul><ul><ul><ul><li>Caching </li></ul></ul></ul><ul><ul><li>Independência de tecnologia de Banco de Dados </li></ul></ul>
    6. 6. O bject R elational M apping (3/3) <ul><li>ORM em uma </li></ul><ul><li>arquitetura n-tier </li></ul>
    7. 7. <ul><li>O que é: Framework de ORM </li></ul><ul><li>Portado do Hibernate Core para .NET Framework </li></ul><ul><li>Portado para .NET 1.1, 2.0 e 3.5 </li></ul><ul><li>XML-based </li></ul><ul><li>Suporte da comunidade </li></ul><ul><li>Open-source </li></ul><ul><li>Licença LGPL – uso comercial </li></ul>
    8. 8. <ul><li>Principais características: (1/2) </li></ul><ul><ul><li>Independente de bases de dados </li></ul></ul><ul><ul><li>Persiste e recupera objetos .NET em bases relacionais (POCO) </li></ul></ul><ul><ul><li>Favorece uma abordagem focada no domínio (Domain Driven Design) </li></ul></ul><ul><ul><li>Sensível à alterações nas entidades </li></ul></ul>
    9. 9. <ul><li>Principais características: (2/2) </li></ul><ul><ul><li>Geradores de chave-primária </li></ul></ul><ul><ul><li>API Extensível </li></ul></ul><ul><ul><li>Baseado em Design Patterns (Unit of Work, Identity Map) </li></ul></ul><ul><ul><li>Sistema de consultas OO </li></ul></ul><ul><ul><li>Gerenciador de Sessões e Transações </li></ul></ul>
    10. 10. <ul><li>Arquitetura: </li></ul>Configuração de conexão e banco de dados Mapeamento dos objetos e entidades relacionais
    11. 11. <ul><li>Principais interfaces: </li></ul><ul><ul><li>ISessionFactory </li></ul></ul><ul><ul><ul><li>Possui a configuração e mapeamentos </li></ul></ul></ul><ul><ul><ul><li>Constroi a sessão </li></ul></ul></ul><ul><ul><li>ISession </li></ul></ul><ul><ul><ul><li>Representa a conversação entre aplicação e o banco relacional </li></ul></ul></ul><ul><ul><ul><li>Encapsula ADO.NET </li></ul></ul></ul><ul><ul><li>ITransaction (opcional) </li></ul></ul><ul><ul><li>IQuery e ICriteria </li></ul></ul><ul><ul><ul><li>Formas de consulta em objetos </li></ul></ul></ul>
    12. 12. <ul><li>Mapeamentos: </li></ul><ul><ul><li>XML (NHibernate.dll) </li></ul></ul><ul><ul><li>.NET Attributes (lib NHibernate.Mapping.Attributes ) </li></ul></ul><ul><ul><li>Fluente (lib Fluent NHibernate) </li></ul></ul><ul><ul><ul><li>Fluent </li></ul></ul></ul><ul><ul><ul><li>Automapeamento </li></ul></ul></ul>
    13. 13. <ul><li>Mapeamento XML: (NHibernate Core) </li></ul>Entidade Mapeamento:
    14. 14. <ul><li>Mapeamento .NET Attributes: (lib externa) </li></ul>Entidade Mapeamento:
    15. 15. <ul><li>Mapeamento Fluente: (Fluent NHibernate) </li></ul>Entidade Mapeamento:
    16. 16. <ul><li>Auto-mapeamento: (Fluent NHibernate) </li></ul>No ISessionFactory:
    17. 17. <ul><li>Fluent NHibernate: </li></ul>“ Fluent, XML-less, compile safe, automated, convention-based mappings for Nhibernate” .
    18. 18. <ul><li>Fluent NHibernate: </li></ul><ul><ul><li>Fornece uma alternativa ao mapeamento XML padrão </li></ul></ul><ul><ul><li>Mapeamentos escritos em C# </li></ul></ul><ul><ul><li>Facilita técnicas de Refactoring </li></ul></ul><ul><ul><li>Externo ao NHibernate Core </li></ul></ul>
    19. 19. <ul><li>Fluent NHibernate: </li></ul><ul><ul><li>Principais benefícios </li></ul></ul><ul><ul><ul><li>Automapeamento </li></ul></ul></ul><ul><ul><ul><li>Configuração via API com Interface Fluent e </li></ul></ul></ul><ul><ul><ul><li>Flexibilidade na configuração do banco de dados </li></ul></ul></ul>
    20. 20. <ul><li>Demonstração com Fluent NHibernate </li></ul>
    21. 21. <ul><li>Dúvidas? </li></ul>
    22. 22. <ul><li>Obrigado! </li></ul>“ O temor a Deus é o princípio de toda ciência.” Provérbios 1:7

    ×