Desenvolvimento - C#

Geração automática de Classes de persistência 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.

por Fernando Amaral



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.

Fernando Amaral

Fernando Amaral - Certificado PMP pelo PMI, CDIA+ pela CompTia, MCP, MCAD, MCSD, MCDBA, MCT pela Microsoft. Pós Graduado em Gestão de Sistemas de Informação (UNIDERP) e Melhoria em Processos de Software (UFLA). Atualmente reside em Campo Grande, MS, onde presta consultoria, treinamentos e palestras na área de TI.
Blog:
http://www.fernandoamaral.com.br.