artigo .net Magazine 44 - Introdução ao NHibernate

Artigo da Revista .NET Magazine - Edição 44.

Clique aqui paraler todos os artigos desta edição

Boas Práticas

Introdução ao NHibernate

Persistência de objetos e mapeamento O/R no .NET

 

Este artigo discute

Este artigo usa as seguintes tecnologias

·O que é NHibernate;

·Persistência de objetos;

·Programação em camadas;

·Mapeamento objeto-relacional (ORM).

Visual Studio 2005, ASP.NET 2.0, C#, NHibernate e SQL Server.

 

Muito tem se falado em frameworks de desenvolvimento. A idéia de um framework é reunir um conjunto de ferramentas e/ou utilitários para facilitar o desenvolvimento de aplicações. Um desses frameworks é o NHibernate

O NHibernate é um framework para mapeamento objeto-relacional (ORM). Com ele podemos criar uma estrutura de classes sem se preocupar com os famosos SELECT’s, INSERTS’s, UPDATE’s e DELETE’s, a própria ferramenta criará esses comandos em tempo de execução, facilitando muito a vida do desenvolvedor, entre diversas outras coisas.

Neste artigo veremos como criar uma aplicação de exemplo utilizando o NHibernate, aproveitando para examinar sua arquitetura, fundamentos e funcionalidade.

O que são ORMs?

Nem sempre a estrutura das classes corresponde a estrutura do banco de dados, afinal o modelo Orientado a Objetos difere em vários pontos do modelo relacional que é largamente utilizado em bancos de dados (salvo em bancos de dados OO).

Essas diferenças ocorrem devido ao processo de normalização de tabelas, onde pensamos sempre na eliminação de dados redundantes e dependências, além do que na Orientação a Objetos utilizamos sempre o conceito de reaproveitamento. Veja um exemplo dessa dificuldade na Figura 1.

 

Figura 1. Como efetuar a transformação entre os modelos?

Devido a essas e outras diferenças, não podemos salvar/carregar diretamente a nossa classe a partir de uma tabela em banco de dados relacional. Para isso usamos os ORMs.

ORM é uma sigla em inglês que significa Object Relational Mapper (Mapeador Objeto Relacional). ORMs são ferramentas responsáveis por mapear as classes do modelo Orientado a Objetos para tabelas do modelo relacional.

Através desse mapeamento, conseguimos dizer que determinada propriedade da classe será associada a um campo de uma tabela. Podemos reunir um conjunto de propriedades de várias classes e salvar na mesma tabela e vice-versa.

Para ficar fácil o entendimento, dizemos que as classes representam tabelas do banco de dados e cada instância de uma classe criada representa um registro da tabela. Quando coletamos os valores das propriedades de uma classe e salvamos em um banco de dados ou qualquer outro meio de armazenamento, estamos fazendo o processo de persistência de dados.

Vantagens no uso de ORMs

Um dos trabalhos mais tediosos no desenvolvimento de uma aplicação é ter que escrever comandos para efetuar a persistência dos dados do modelo de classes em um banco de dados. Quem nunca perdeu horas e horas escrevendo comandos SQL para gravar e retornar valores de um banco de dados?

Uma das grandes vantagens no uso de frameworks para mapeamento objeto-relacional é a economia de tempo. Com os ORMs ao invés de gastarmos tempo criando lógica para gravação de dados, investimos tempo pensando nas regras de negócios do sistema que será desenvolvido, ou seja, não precisaremos escrever comandos SQL, o mapeador objeto-relacional fará esse trabalho para nós!

Outra vantagem, é que a maioria dos frameworks para mapeamento oferece suporte a diversos tipos de bancos de dados. Isso significa que caso tenhamos que mudar de banco de dados (SQL Server, Oracle, Sybase, Informix e outros) teremos que simplesmente dizer para o framework de mapeamento (NHibernate) o novo tipo de banco de dados que utilizaremos.

Dessa forma, não precisamos reescrever todos os comandos SQL que criamos especificamente para um tipo de banco de dados, essa é uma grande vantagem! Podemos listar outras vantagens, como: gerenciamento de transações, recursos para cache de objetos, paginação de resultados etc.

Como funciona o NHibernate

O NHibernate funciona como uma camada entre o modelo de classes e o modelo relacional. O NHibernate, entre outras coisas, cria os quatro comandos INSERT, SELECT, UPDATE e DELETE em tempo de execução, para isso, ele utiliza os recursos de " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados