Luís Amorim apresentou sobre o NHibernate, um framework ORM que permite mapear classes .NET para tabelas de banco de dados. Ele explicou o que é o NHibernate, seu funcionamento, demonstrou operações CRUD e queries, além de abordar vantagens e desvantagens. A apresentação também mencionou alternativas como Entity Framework e ferramentas como CodeSmith para geração de código.
2. 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
3. Agenda Introdução O que é o NHibernate? Funcionamento do NHibernate NHibernate na prática Conclusão
4. Introdução: DAL Persistir dados e disponibilizar operações de CRUD Permitir a execução de queries avançadas
5. Introdução: DAL Disponibilizar uma semântica transaccional Garantir integridade da informação em cenários de concorrência
6. 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)
7. 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
8. Classes persistentes PlainOldCLR Objects (POCOs) Propriedades read/write para todos os campos persistentes Definição de um constructorpor defeito (sem argumentos)
9. 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()
11. 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
15. 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
16. 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
17. 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
18. API / ISessionFactory Factory para instâncias da interface ISession Comportamento é controlado por propriedades de configuração Tipicamente, uma aplicação tem uma única ISessionFactory
20. API (Parte 2) ICriteria ICriterion Restrictions IProjection Order
21. 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
22. 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
31. 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