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 AmaralSe 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.