Este é um post disponível para assinantes MVPArtigo .net Magazine 60 - Produtividade com NHibernate 2.0
Artigo da Revista .NET Magazine - Edição 60.

Expert – Boas Práticas
Produtividade com NHibernate 2.0
ActiveWriter e ActiveRecord
Antes de começar eu gostaria de falar de um artigo polêmico que eu escrevi sobre LINQ e NHibernate, há algum tempo atrás aqui na .NET Magazine. Digo polêmico porque muita gente “se incomodou” com o título do artigo, que foi LINQ X NHibernate.
O fato é que não é possível realizar uma comparação literal entre o LINQ e o NHibernate, já que são coisas completamente diferentes. O LINQ é uma linguagem para a execução de queries e o NHibernate é uma ferramenta O/RM, como iremos ver a seguir. (O/RM é a sigla em inglês para mapeamento objeto-relacional. Veja detalhes na nota do devman)
Na ocasião eu tentei deixar isso bem claro no próprio artigo, que na verdade traçou um paralelo entre o LINQ to SQL e Entity Framework com o NHibernate. Portanto, se você só leu o título do artigo pode ter ficado com a impressão errada.
Mas o fato de eu estar recordando deste artigo, é que ele está intimamente relacionado com este que você lê agora. No paralelo que foi traçado, colocamos na balança os prós e contras de se utilizar o NHibernate e as novas ferramentas de mapeamento da Microsoft (Entity Framework e LINQ to SQL). E no final das contas concluímos que o Entity Framework sairia ganhando, principalmente pela facilidade do seu uso, diferente do NHibernate que pode ser bastante trabalhoso.
Agora é a hora do troco. Atendendo à pedidos, fizemos uma pesquisa e encontramos algumas ferramentas que podem tornar o trabalho com o NHibernate bem mais prático do que o seu uso tradicional.
Aproveitando a oportunidade, vamos conhecer neste artigo a versão 2.0.1.GA NHIbernate, que foi lançada recentemente. E o objetivo principal deste artigo será mostrar como utilizar o NHibernate da forma mais prática e ágil possível, diminuindo ao máximo o trabalho “braçal” que é necessário em ferramentas de O/RM.
Nota do DevMan
Mapeamento objecto-relacional (ou O/RM) é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada a objetos utilizando bancos de dados relacionais. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.
Com esta técnica, o programador não precisa de se preocupar com os comandos em linguagem SQL; irá usar uma interface de programação simples que faz todo o trabalho de persistência.
Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
2 COMENTÁRIOS
'urn:nhibernate-mapping-2.2' has invalid child element 'property' in namespace 'urn:nhibernate-mapping-2.2'.
List of possible elements expected: 'meta, jcs-cache, cache, id, composite-id' in namespace 'urn:nhibernate-mapping-2.2'. "
<?
xml version="1.0" encoding="utf-8" ?><
hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"><
class name="Model.Aluno, Model" table="aluno" lazy="false"><!--
could not find a primary key for this table/view. NHibernate requires an 'id' element, so you'll have to define one manually. --><
property name="id" column="Id" type="short"/><
property name="nome" column="Nome" type="String(50)"/><
property name="cpf" column="Cpf" type="short"/></
class><generator class="native"/>
</id>
Space do autor


2
0
