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