Tirando proveito do n hibernate

22
Tirando proveito do Tirando proveito do NHibernate NHibernate Dílter Porto Dílter Porto [email protected] @dilterporto

Transcript of Tirando proveito do n hibernate

  • 1. Tirando proveito do NHibernate Dlter Porto [email_address] @dilterporto

2. Agenda() {

  • Impedance Mismatch
  • ORM (Object Relational Mapping)
  • NHibernate
  • Fluent NHibernate
  • Demonstrao

} 3. Oproblema daimpedncia objeto-relacional 4. O bjectR elationalM apping (1/3)

  • Significa => Mapeamento Objeto-Relacional
  • Proposta:
    • Minimizar aimpedncia(conceitual e tcnica) entre OO e OR
      • estruturashierrquicasX estruturasrelacionais
      • diferena de tipos de dados
      • conceituao: Herana, Polimorfismo, encapsulamento ()
    • Facilitar o acesso a dados
    • Trazer o desenvolvimento para Orientao a Objetos

5. O bjectR elationalM apping (2/3)

  • Benefcios
    • Produtividade:
      • Elimina cdigo repetitivo
      • Gerao do banco de dados
    • Manutenibilidade:
      • Menos linhas de cdigo
      • Mudanas no Modelo de Objetos
    • Perfomance
      • Lazy loading
      • Caching
    • Independncia de tecnologia de Banco de Dados

6. O bjectR elationalM apping (3/3)

  • ORM em uma
  • arquitetura n-tier

7.

  • O que : Framework deORM
  • Portado doHibernate Corepara.NET Framework
  • Portado para .NET 1.1, 2.0 e 3.5
  • XML-based
  • Suporte da comunidade
  • Open-source
  • Licena LGPL uso comercial

8.

  • Principais caractersticas: (1/2)
    • Independente de bases de dados
    • Persisteerecuperaobjetos .NET em bases relacionais (POCO)
    • Favoreceuma abordagem focada nodomnio (Domain Driven Design)
    • Sensvel alteraes nas entidades

9.

  • Principais caractersticas: (2/2)
    • Geradores de chave-primria
    • API Extensvel
    • Baseado emDesign Patterns(Unit of Work, Identity Map)
    • Sistema de consultas OO
    • Gerenciador de Sesses e Transaes

10.

  • Arquitetura:

Configurao de conexo e banco de dados Mapeamento dos objetos e entidades relacionais 11.

  • Principais interfaces:
    • ISessionFactory
      • Possui aconfiguraoemapeamentos
      • Constroia sesso
    • ISession
      • Representa aconversaoentre aplicao e o banco relacional
      • Encapsula ADO.NET
    • ITransaction(opcional)
    • IQueryeICriteria
      • Formas de consulta em objetos

12.

  • Mapeamentos:
    • XML (NHibernate.dll)
    • .NET Attributes (libNHibernate.Mapping.Attributes )
    • Fluente (lib Fluent NHibernate)
      • Fluent
      • Automapeamento

13.

  • Mapeamento XML: (NHibernate Core)

Entidade Mapeamento: 14.

  • Mapeamento .NET Attributes:(lib externa)

Entidade Mapeamento: 15.

  • Mapeamento Fluente: (Fluent NHibernate)

Entidade Mapeamento: 16.

  • Auto-mapeamento: (Fluent NHibernate)

No ISessionFactory: 17.

  • Fluent NHibernate:

Fluent, XML-less, compile safe, automated, convention-based mappings for Nhibernate . 18.

  • Fluent NHibernate:
    • Fornece umaalternativaao mapeamento XML padro
    • Mapeamentos escritos em C#
    • Facilita tcnicas deRefactoring
    • Externo aoNHibernate Core

19.

  • Fluent NHibernate:
    • Principais benefcios
      • Automapeamento
      • Configurao via API comInterface Fluent e
      • Flexibilidade na configurao do banco de dados

20.

  • Demonstrao com Fluent NHibernate

21.

  • Dvidas?

22.

  • Obrigado!

O temor a Deus o princpio de toda cincia. Provrbios 1:7