Pessoal,
Como já vimos aqui no blog com é trabalhoso ficar gerando arquivos de mapeamento em XML, hoje estarei começando uma nova série de posts sobre Fluent NHibernate que contemplara as seguintes tópicos.
- Começando com Fluent NHibernate
- Mapeamentos com Fluent NHibernate
- Usando o Fluent NHibernate
- Gerando arquivos HBM
- Gerar arquivo SQL do mapeamento
- Configurando Log4NET
- Como funciona o Lazy Load
O que é Fluent NHibernate?
Fluent NHibernate é uma biblioteca para auxilia na realização dos mapeamentos das suas entidades com o banco de dados. Por padrão o NHibernate usa arquivos xml (.hbm) para realizar esse mapeamento, porém criar esses arquivos manualmente gera um bom trabalho, para isso foi criada o Fluent NHibernate que podemos realizar esse mapeamento pelo próprio código sem precisar de usar os arquivos HBM.
Veja abaixo a diferença entre criar um mapeamento XML e um mapeamento usando o Fluent
XML
Fluent
Como Instalar?
Para começar a usar a biblioteca Fluent NHibernate em nosso projeto, temos três processos de instalação:
1) NuGet
Basta abrir o Package Manager Console (View -> Other Windows -> Package Manager Console) e digitar a linha de comando Install-Package FluentNHibernate conforme abaixo:
2) Manual
Para baixar manualmente, devemos entrar na página http://fluentnhibernate.org/ selecionar a última versão e fazer o download. Depois temos que adicionar as referências das DLLs em nosso projeto.
3) Código fonte
Baixar o código do repositorio GIT http://github.com/jagregory/fluent-nhibernate compilar e adicionar as referências
Veja abaixo como esta a estrutura no nosso projeto
Em nosso próximo post vamos começar a criar os mapeamentos das nossas entidades.
Deixe seu comentário, opinião, critica
Aquele abraço!
Legal, bela iniciativa.
Embora eu prefira o Mapping by Code do NHibernate 3.2, mas vou ficar de olho nesta sua séria, quem sabe vc não faz mudar de idéia, já que eu nunca experimentei o FluentNH.
Abraço.
Luis,
Não cheguei a usar o Mapping by Code do NHibernate 3.2, só li alguns artigos em blogs…qual a sua opinião sobre ele??
Minha idéia é fazer essa série de posts sobre o Fluent NHibernate e depois fazer uma série com o Entity Framework e depois fazer uma comparação entre esses dois frameworks de ORM
Amanhã já sai a segunda parte!
att,
Leandro Prado
O Mapping by Code é muito “jovem” ainda e simplesmente não existe documentação oficial a não ser alguns posts aqui e ali, mas tem muito potencial sim.
Tanto que, infelizmente, o desenvolvimento do FH parece estar estagnado, seria devido MbC? Não sei mas parece suspeito.
Mas minha opinião, como disse antes, eu prefiro mesmo o MbC por vários motivos;
1 – Já está integrado ao core do NH
2 – A sintaxe é mais próxima às convenções do NH
3 – O mapeamento é repassado diretamente, no caso do FH ele gera um xml e depois para pro NH, o ganho de performance é notável.
4 – Fabio Maulo, um dos desenvolvedores do NH foi o principal mentor do MbC e o cara parece ter gostado tanto dos resultados que resolver chamar a feature de “sexy mapping” HAHAHA.
Apesar da falta de documentação, eu consegui desenvolver um projeto baseado no MbC e tudo me pareceu tão fluent que quase não parei pra procurar por exemplos.
Então é isso, gosto do MbC, mas é sempre bom ter alternativas, por isso torço pela continuidade do FH e até em melhorias no mapeamento por XML ou até, quem sabe, um Mapping By Attributes?
Um abraço.
Blog do Maulo: http://fabiomaulo.blogspot.com/
Artigo sobre o MbC: http://fabiomaulo.blogspot.com/2011/04/nhibernate-32-mapping-by-code.html
O FluentNHibernate não está estagnado, sendo possível verificar através dos commits do projeto (https://github.com/jagregory/fluent-nhibernate/commits/master), entretanto o site http://fluentnhibernate.org/ não possui atualizações.
Obs.: O site não possui a versão utilizada no projeto (versão do site official do FluentNHibernate 1.2, versão do NuGet 1.3..0.717).
Boa noite…
Leandro estou lendo o material que voce disponibilizou e estou achando bem interessante porem estou com dificuldade para gerar um CRUD com o fluent você poderia fazer uma matéria para nos ensinar a fazer um CRUD com Fluent nhibernate
Grato
Pablo,
Na parte 3 do material, estou fazendo alguns inserts e selects no banco
att,
Leandro Prado
No caso de possuir View no Banco de Dados é necessário fazer o mapeamento também?
Quando utilizamos os *.hbm fazemos o mapeamento.
Desde já agradeço