Introdução ao NHibernate ORM Framework - Luis Amorim
Upcoming SlideShare
Loading in...5
×
 

Introdução ao NHibernate ORM Framework - Luis Amorim

on

  • 3,408 views

Apresentação sobre o framework NHibernate com diversas demonstrações práticas de utilização, na terceira reunião presencial da comunidade NetPonto

Apresentação sobre o framework NHibernate com diversas demonstrações práticas de utilização, na terceira reunião presencial da comunidade NetPonto

Statistics

Views

Total Views
3,408
Views on SlideShare
3,360
Embed Views
48

Actions

Likes
0
Downloads
28
Comments
0

5 Embeds 48

http://gbfast.blogspot.com 19
http://www.slideshare.net 12
http://cleberprogrammer.wordpress.com 9
http://gbfast.blogspot.com.br 7
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introdução ao NHibernate ORM Framework - Luis Amorim Introdução ao NHibernate ORM Framework - Luis Amorim Presentation Transcript

    • http://netponto.org
      3ª Reunião Presencial - 17/10/2009
      Introdução ao NHibernateLuís Amorim
    • Luís Amorim
      7 anos de experiência profissional em TI
      Licenciado em Engenharia de Sistemas e Informática
      Experiência profissional no desenvolvimento de software
      Utilização de tecnologias Microsoft .NET e Java
    • Agenda
      Introdução
      O que é o NHibernate?
      Funcionamento do NHibernate
      NHibernate na prática
      Conclusão
    • Introdução: DAL
      Persistir dados e disponibilizar operações de CRUD
      Permitir a execução de queries avançadas
    • Introdução: DAL
      Disponibilizar uma semântica transaccional
      Garantir integridade da informação em cenários de concorrência
    • Introdução: O/RM
      API para operações de CRUD
      Querymodele querylanguagepara a definição de queries
      API para mapear metadados (classes e tabelas, propriedades e colunas)
    • NHibernate: O que é?
      Framework O/RM
      Permite mapear classes .NET para tabelas de uma base de dados
      Permite expressar queriesutilizando HQL, SQL, objectos Criteria/Example
    • Classes persistentes
      PlainOldCLR Objects (POCOs)
      Propriedades read/write para todos os campos persistentes
      Definição de um constructorpor defeito (sem argumentos)
    • Classes persistentes
      Definição de uma propriedade que guarde a chave primária (opcional)
      Preferência por classes não sealed e métodos virtuais (opcional)
      Implementação dos métodos Equals() e GetHashCode()
    • Classes Persistentes
      demonstração
    • Mapeamento
      Mapeamentos object/relational são definidos num documento XML
      A linguagem para mapeamento é centrada em objectos
      Declaração de classes persistentes e não de tabelas
    • Mapeamento
      demonstração
    • Arquitectura
    • API (Parte 1)
      ISession
      ITransaction
      ISessionFactory
    • API / ISession
      Principal interface .NET/NHibernate
      Representa uma conversação entre a aplicação e a base de dados
      Disponibiliza métodos para executar operações de CRUD
    • API / ISession
      Implementação implícita do patternUnitofWork
      Alterações às entidades persistem nos limites de uma transacção
      Factory para instâncias da interface ITransaction
    • API / ITransaction
      Permite que as aplicações definam operações atómicas (transacções)
      Uma transacção está associada a uma sessão
      Uma sessão poderá iniciar várias transacções
    • API / ISessionFactory
      Factory para instâncias da interface ISession
      Comportamento é controlado por propriedades de configuração
      Tipicamente, uma aplicação tem uma única ISessionFactory
    • Operações de CRUD
      demonstração
    • API (Parte 2)
      ICriteria
      ICriterion
      Restrictions
      IProjection
      Order
    • API / ICriteria
      Representa uma query sobre uma classe persistente
      Permite obter entidades compondo objectos do tipo ICriterion
      A interface ISession é uma factory para instâncias de ICriteria
    • API / Restrictions
      Disponibiliza métodos factory para obter instâncias ICriterion
      ICriterion representa uma condição numa cláusula WHERE (SQL)
      São classes utilizadas para aplicar restrições na construção de queries
    • Queries
      demonstração
    • NHibernate: Vantagens
      • Facilita a implementação do patternDomain Model
      • Independência da base de dados
      • Redução de código e abstracção da semântica SQL
      • Query language orientada a objectos
    • NHibernate: Vantagens
      • Navegação transparente entre objectos relacionados
      • Lazy loading (configurável)
      • Cache das entidades (objectos) em memória
      • Gestão de transacções e isolamento
    • NHibernate: Desvantagens
      Menor performance se comparado com ADO.NET
      Mapeamento de chaves primárias compostas não é simples
      Produtividade depende da utilização de geradores de código
    • CodeSmith
      Gerador de código baseado em templates (configuráveis)
      CodeSmith IDE, CodeSmith API e integração com o Visual Studio
      Inclui templates para o NHibernate, entre outros
    • Alternativas O/RM
      Entity Framework
      EntitySpaces
      Genome
      LINQ to SQL
      LLBLGen Pro
    • Dúvidas?
    • Referências
      http://nhforge.org
      http://www.hibernate.org
      http://www.ayende.com
    • Patrocinador desta reunião
    • Obrigado!
      Luís Amorim
      luis.g.amorim@gmail.com
      http://www.linkedin.com/in/lgamorim