Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tirando proveito do NHibernate Dílter Porto [email_address]   @dilterporto
Agenda() { <ul><li>“ Impedance Mismatch” </li></ul><ul><li>ORM (Object Relational Mapping) </li></ul><ul><li>NHibernate </...
O  problema da  impedância   objeto-relacional
O bject  R elational  M apping (1/3) <ul><li>Significa => Mapeamento Objeto-Relacional </li></ul><ul><li>Proposta: </li></...
O bject  R elational  M apping (2/3) <ul><li>Benefícios </li></ul><ul><ul><li>Produtividade: </li></ul></ul><ul><ul><ul><l...
O bject  R elational  M apping (3/3) <ul><li>ORM em uma  </li></ul><ul><li>arquitetura n-tier </li></ul>
<ul><li>O que é: Framework de  ORM </li></ul><ul><li>Portado do  Hibernate Core  para  .NET Framework </li></ul><ul><li>Po...
<ul><li>Principais características: (1/2) </li></ul><ul><ul><li>Independente de bases de dados </li></ul></ul><ul><ul><li>...
<ul><li>Principais características: (2/2) </li></ul><ul><ul><li>Geradores de chave-primária </li></ul></ul><ul><ul><li>API...
<ul><li>Arquitetura: </li></ul>Configuração de conexão e banco de dados Mapeamento dos objetos e entidades relacionais
<ul><li>Principais interfaces: </li></ul><ul><ul><li>ISessionFactory   </li></ul></ul><ul><ul><ul><li>Possui a  configuraç...
<ul><li>Mapeamentos: </li></ul><ul><ul><li>XML (NHibernate.dll) </li></ul></ul><ul><ul><li>.NET Attributes (lib  NHibernat...
<ul><li>Mapeamento XML: (NHibernate Core) </li></ul>Entidade Mapeamento:
<ul><li>Mapeamento .NET Attributes:  (lib externa) </li></ul>Entidade Mapeamento:
<ul><li>Mapeamento Fluente: (Fluent NHibernate) </li></ul>Entidade Mapeamento:
<ul><li>Auto-mapeamento: (Fluent NHibernate) </li></ul>No ISessionFactory:
<ul><li>Fluent NHibernate: </li></ul>“ Fluent, XML-less, compile safe, automated, convention-based mappings for Nhibernate...
<ul><li>Fluent NHibernate: </li></ul><ul><ul><li>Fornece uma  alternativa  ao mapeamento XML padrão </li></ul></ul><ul><ul...
<ul><li>Fluent NHibernate: </li></ul><ul><ul><li>Principais benefícios </li></ul></ul><ul><ul><ul><li>Automapeamento </li>...
<ul><li>Demonstração com Fluent NHibernate  </li></ul>
<ul><li>Dúvidas? </li></ul>
<ul><li>Obrigado! </li></ul>“ O temor a Deus é o princípio de toda ciência.” Provérbios 1:7
Upcoming SlideShare
Loading in …5
×

Tirando proveito do n hibernate

1,162 views

Published on

  • Be the first to comment

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

×