Desenvolvendo aplicações com NHibernate - Parte I

 

Um framework que está sendo muito utilizado para persistência de dados para a plataforma Dot.Net é o NHibernate.

 

Através dele podemos fazer um mapeamento entre a classe do nosso projeto e a tabela de nosso Banco de Dados.

 

A vantagem é que não precisaremos codificar nenhum comando SQL para carregar, incluir ou excluir dados do Banco de Dados, mas como desvantagem é que para cada tabela temos que gerar um arquivo de Mapeamento, mesmo tendo ferramentas que auxiliam neste trabalho, não deixa de ser algo trabalhoso.

 

Neste artigo iremos preparar o ambiente de desenvolvimento com o download e configuração de ferramentas que nos ajudarão no desenvolvimento da aplicação utilizando este Framework.

 

Primeiramente deveremos instalar o NHibernate pelo link http://sourceforge.net/project/showfiles.php?group_id=73818&package_id=73969.

 

Depois de instalado, o segundo passo é criar um projeto do tipo Windows Application, como mostra a Figura 1.

 

NHibernate: Criando um novo projeto do tipo Windows Application 

Figura 1 – Criando um novo projeto do tipo Windows Application

 

Após ter criado o projeto, iremos adicionar a referência do NHibernate que acabamos de instalar, incluindo a DLL NHibernate.dll. Para adicionar a referência basta clicar com o botão direito em cima da pasta References e depois clicar em Add Reference, como mostra a Figura 2.

 

NHibernate: Adicionando Referência do NHibernate 

Figura 2 – Adicionando Referência do NHibernate

 

Bom, com o projeto criado e a referência informada vamos iniciar a parte da criação da tabela no banco de Dados. Para nosso teste vamos criar uma tabela com a estrutura apresentada na Listagem 1.

 

CREATE TABLE Empresa(

CODEMP    bigint IDENTITY(1,1) NOT NULL,

RAZSOC    nvarchar(150)            NULL,

NOMEFAN   nvarchar(150)            NULL,

ENDERECO  nchar(300)               NULL,

LOGOTIPO  image                    NULL,

CONSTRAINT PK_Empresa PRIMARY KEY (CODEMP))

Listagem 1 – Código SQL da tabela Empresa

 

Ao ser criada o Banco de Dados com a tabela acima, vamos iniciar os trabalhos para que conseguamos conectar ao Banco e incluir, excluir e alterar registros nesta tabela.

 

O primeiro passo será gerar a string de conexão para quando a nossa acplicação for executada ela consiga conectar ao Banco de Dados.

 

Antes iremos adicionar em nosso projeto um arquivo de configuração, nele que fazeremos a primeira configuração com relação ao NHibernate.

 

Para isso será necessário adicionar um novo item clicando com botão direito do mouse no Projeto -> Add -> New Item, escolhendo assim a opção Application Configuration File, como mostra a Figura 3.

 

NHibernate: Adicionando arquivo de configuração 

Figura 3 – Adicionando arquivo de configuração

 

Após ter adicionado o arquivo de configuração, deveremos configurá-lo informando servidor, banco de dados e outros itens conforme a Listagem 2.

 

Neste arquivo de configuração informamos o provider do NHibernate que estamos utilizando, a string de conexão para conectarmos ao Banco de Dados. Sendo assim, sempre que executarmos a aplicação o sistema conectará automaticamente ao Banco de Dados.

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

    <section

  name="nhibernate"

  type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />

  </configSections>

  <nhibernate>

    <add

      key="hibernate.connection.provider"         

      value="NHibernate.Connection.DriverConnectionProvider"

    />

    <add

      key="hibernate.dialect"                     

      value="NHibernate.Dialect.MsSql2000Dialect"

    />

    <add

      key="hibernate.connection.driver_class"         

      value="NHibernate.Driver.SqlClientDriver"

    />

    <add

      key="hibernate.connection.connection_string"

      value="Server=JHON\SQLEXPRESS;Database=AULA;User ID=sa;Password=''"

  />

  </nhibernate>

</configuration>

Listagem 2 – Arquivo de Configuração

 

O próximo passo agora é gerar os arquivos referente a tabela Empresa, tanto o arquivo CS tanto o arquivo de mapeamento.

 

NHibernate: Configurações iniciais no MyGeneration 

Figura 4 – Configurações iniciais no MyGeneration

 

Para isto utilizaremos a ferramenta MyGeneration, que através da tabela de um Banco de Dados consegue gerar estes dois arquivos.

 

O link http://www.mygenerationsoftware.com/portal/default.aspx, nos permitirá realizar o download do software e dos templates para a geração dos arquivos de mapeamento, mas no próprio software já possui um template padrão.

 

Após ter realizado a instalação do software, deveremos informar nossa string de conexão ao mesmo para que o mesmo consiga conectar ao nosso Banco de Dados, conforme é mostrado na Figura 4.

 

Também são definidos qual a linguagem que será gerado o arquivo CS e qual será tabela de tipos será utilizada. Uma vez configurado, as opções se manteram salvas.

 

Após termos realizado o teste de conexão o mesmo conclui com sucesso podemos gerar os arquivos da nossa tabela.

 

Para isto devemos ir em File -> New -> Template Browser, escolher a opção NHibernate e dar um clique duplo na primeira opção, conforme Figura 5.

 

Abrir o template para NHibernate 

Figura 5 – Abrir o template para NHibernate

 

Ao abrir este template vamos executá-lo tendo como resultado a seguinte a tela que é apresentada na Figura 6.

 

As principais configurações desta tela é a escolha do diretório de geração dos arquivos, o Namespace que será incluída a classe referente a tabela, se será gerada o arquivo XML de mapeamento e quais tabelas serão geradas.

 

Template NHinernate executado 

Figura 6 – Template NHinernate executado

 

Após corrigido as informações vamos gerar os aquivos para a tabela Empresa, sendo que os mesmos serão importados para nosso projeto.

 

O arquivo CS será incluído como nova classe em nosso projeto e o arquivo Hbm.Xml será incluído como um item existente, lembrando de setar a propriedade Build Action como Embedded Resource como é mostrado na Figura 7.

 

Para todos os arquivos Hbm.Xml sempre que importados para nosso projeto, os mesmos devem ter sua propriedade Build Action como Embedded Resource.

 

NHibernate: Configurando a propriedade Build Action 

Figura 7 – Configurando a propriedade Build Action

 

Até aqui configuramos nosso ambiente de desenvolvimento pronto para iniciarmos a codificação das telas.

 

Na configuração do nosso ambiente de desenvolvimento nós instalamos Nhibernate o framework a ser utilizado para persistência de dados. Conhecemos a ferramenta MyGeneration que gera a partir de uma tabela o arquivo CS e o arquivo de mapeamento cujos arquivos serão necessários para o funcionamento da nossa aplicação.

 

No nosso próximo artigo continuaremos a codificação da tela de Empresa utilizando o NHibernate para manipulação de dados e conhecendo um pouco mais deste framework, então até lá pessoal.