Fernando Amaral
Geração automática de Classes de persistencia e arquivos de configuração para NHibernate

 

Geração automática de Classes de persistencia e arquivos de configuração para NHibernate

Se você utiliza a ferramenta de mapeamento Objeto Relacional NHinernate* sabe que é necessária a criação de diversos arquivos: No mínimo, para cada entidade do seu banco de dados, um arquivo de classe de persistencia, na linguagem que você estiver utilizando, e um arquivo de mapeamento em formato XML. Para um sistema de médio porte, digamos, com 50 entidades no banco de dados, será necessário criar a manter pelo menos 50 arquivos.

A boa noticia é que existem ferramentas dispostas a gerar todo este código de forma automática pra você, é o que veremos a seguir.

AVVA

Criado por Murat YILMAZ AVVA é uma ferramenta simples que faz a geração automática das classes de persistência e dos arquivos de mapeamento. Gera código apenas em C#.

Para utilizá-lo basta  baixar o software  de http://www.codeproject.com/useritems/NHibernate_Helper_Kit.asp. Após a instalação, ele deveria aparecer como uma opção no menu Tools do VS. Digo deveria porque precisou de alguns ajustes manuais para aparecer no Menu. Depois deste contratempo consegui executar a ferramenta de forma apropriada.

De qualquer forma, o autor promete grandes melhorias na próxima versão, inclusive geração de código em VB.NET. O jeito é acompanhar seu blog: http://murat-yilmaz.blogspot.com

CodeSmith

O CodeSmith, que pode ser obtido apartir de http://www.codesmithtools.com/, é uma ferramenta comercial e integrada ao VS. Você pode baixar uma versão de demonstração funcional por 30 dias.

Após abrir a ferramenta, observe os templates disponíveis em Template Explorer:

 

No caso dos templates para NHibernate, de um duplo clique sobre o mesmo e observe qual a função deste: Alguns realizam o mapeamento completo, outros apenas geram os arquivos de classes. Neste exemplo selecionei o template NHibernate.cst.

Antes de gerar os arquivos, você precisa configurar algumas propriedades na janela Properties:

Você precisa obrigatoriamente informar um diretório de geração e o banco de dados do qual será gerado o mapeamento. As outras propriedades você pode alterar ao seu gosto.

Clicando em Run, os arquivos de classes de persistência e de mapeamento são gerados no diretório indicado. Tudo a fazer agora é incluir os arquivos gerados em sua solução.

MyGeneration

MYGeneration é uma ferramenta gratuita que pode ser obtida em http://www.mygenerationsoftware.com/. Ao abrir o MyGeneration informe as opções de configuração padrão. Obviamente estas configurações podem ser alteradas posteriormente.

Por padrão a ferramenta já vem com diversos templates de geração de código, para visualizá-los clique em Template Browser, o segundo botão da barra de ferramentas.

Os templates estão agrupados por categoria. Não temos templates para NHibernate, vamos baixá-los. Para isso clique em OnLine Template Library. Obviamente será necessária uma conexão com a Web:

Agora podemos ver todos os templates disponíveis, inclusive para NHibernete. Para baixar um template para uso local basta selecioná-lo e clicar em Save Template to the Local Hard Drive. Se você selecionar a pasta, todos os templates serão salvos.

Na ocasião da criação deste artigo, todos os templates do NHibernate disponíveis neste grupo são para C#. Navegando mais abaixo na biblioteca, encontrei um para VB.NET, sem grupo nenhum.

Agora você pode fechar a Online Template Library, Os templates devem agora aparecer em seu Template Browser (se não aparecerem, clique em Refresh Template Browser.

Agora tudo a fazer é usar o seu Template favorito. Assim como no CodeSmith , alguns geram apenas as classes de persistência, outros geram todo o mapeamento. Selecionei o segundo da lista para este exemplo, mas realizei testes bem sucedidos com todos, inclusive com o de VB.NET.

 

De um duplo clique sobre o template. O template é exibido na ja

Clique em Run, o último botão da barra de ferramentas da janela do template. È exibida uma janela onde devem ser preenchidas as informações de mapeamento:

Entre as informações temos:

Local de geração;

Namespace utilizado nas classes;

Prefixo para variáveis privadas;

Banco de Dados;

Tabelas a serem mapeadas;

As informações de conexão são as fornecidas na janela Default. Caso precise alterá-las, clique em Edit / Default Setting, depois volte ao Template.

Ao clicar em ok o mapeamento é executado. Os arquivos são criados no local indicado:

 

Agora basta adicioná-los a sua solução.

Últimos artigos relacionados:
Refatoração (Refactoring) em Visual Studio 2008
Medindo a Performance de seu Código com Visual Studio Team System 2008
Code Snippets no Visual Studio 2008
Análise de Código com Visual Studio Team System 2008
.NET independente de plataforma? Uma introdução ao Mono