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

Introdução ao NHibernate ORM Framework - Luis Amorim

on

  • 3,410 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,410
Views on SlideShare
3,362
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