Do que trata o artigo

Este artigo introduzirá os conceitos fundamentais do NHibernate, com um tutorial que irá lhe guiar na construção da sua primeira aplicação com essa excelente ferramenta de mapeamento objeto/relacional.

Para que serve

O NHibernate é um Framework de Persistência, ou também conhecido como ferramenta Objeto/Relacional (ORM). Esse tipo de ferramenta faz a comunicação entre a programação orientada a objetos com os bancos de dados relacionais. Se você procura desenvolver aplicações com a Orientação a Objetos, que façam acesso a bancos de dados relacionais, precisa conhecer o NHibernate.

Em que situação o tema é útil

Esse tema é extremamente útil para quem está aprendendo a desenvolver aplicações com o uso da Orientação a Objetos. O NHibernate é um ORM que torna fácil o desenvolvimento de aplicações OO que fazem uso de bancos de dados relacionais. Além disso, com o NHibernate você pode criar aplicações com os melhores padrões e boas práticas da Orientação a Objetos.

Resumo do DevMan

Com a popularização das linguagens Orientadas a Objeto, como o Java e o C#, surgiu o problema da incompatibilidade entre essas linguagens e os bancos de dados relacionais. Desenvolver aplicações com a Orientação a Objetos, para acessar bancos de dados relacionais, tornou-se um desafio e tanto. O NHibernate é um Framework que oferece uma solução para esse problema, e é sobre o NHibernate que trata esse artigo. Vamos ver uma introdução a essa ferramenta, com um tutorial prático que irá lhe mostrar como criar uma aplicação no NHibernate, para efetuar operações comuns no BD.

O NHibernate é a versão para .NET do framework de persistência chamado Hibernate, originalmente desenvolvido para a plataforma Java. O objetivo de um framework de persistência como o NHibernate, é transformar os dados que estão na aplicação na forma de objetos, em dados relacionais, compatíveis com os Bancos de Dados Relacionais que temos no mercado. Para que isso seja possível, é necessária a realização de um mapeamento objeto-relacional. Por isso também dizemos que o NHibernate é uma ferramenta de O/RM (Object/Relational Mapping).

Algumas das soluções que se destinam a fazer a interface entre aplicações desenvolvidas com a Orientação a Objetos e Bancos de Dados relacionais, são conhecidas como Ferramentas de Mapeamento Objeto Relacional (O/RM). O Mapeamento objeto/relacional é uma técnica que visa a redução da incompatibilidade que existe entre a programação orientada a objetos e os bancos de dados relacionais. Com o mapeamento, as tabelas do banco de dados são representadas através de classes, e os registros são os objetos instanciados das classes correspondentes.

Em tese, com a utilização de uma ferramenta O/RM, o programador não precisa escrever comandos na linguagem SQL. A linguagem utilizada para o acesso e armazenamento das informações é orientada a objetos.

Uma das vantagens do NHibernate é justamente essa, com ele não precisamos escrever nenhum comando SQL. Todos os comandos são gerados em tempo de execução pelo próprio framework. Além disso, ele dá suporte para os principais Bancos de Dados Relacionais do mercado (SQL Server, Oracle, DB2, PostgreSQL, FireBird, MySQL etc.), o que torna fácil o desenvolvimento de aplicações multi-plataformas, que são aquelas que trabalham com diferentes tipos de bancos de dados.

Do ponto de vista do desenvolvedor estamos trabalhando apenas com Orientação a Objetos, pois todas as ações CRUD (Create, Read, Update, Delete) são realizadas através dos métodos do nosso modelo de classes. De forma prática, através de um mapeamento objeto-relacional, o NHibernate gera todos os comandos SQL necessários para a aplicação, em tempo de execução.

O NHibernate é Open Source e pode ser baixado gratuitamente no site do Hibernate. Atualmente o NHibernate está na versão 2.1.2.GA, que você encontra o link para download na seção Links desse artigo.

Nota do Devman

O/RMs e Frameworks de persistência

Nem todas as ferramentas que se destinam a resolver o problema de incompatibilidade da OO com os databases relacionais são O/RMs, mas todas acabam oferecendo o mesmo resultado final.

Segue abaixo uma lista de ferramentas que têm o objetivo de reduzir a incompatibilidade entre OO e databases relacionais (dentre elas algumas são O/RMs). As três primeiras em destaque são as mais popularmente utilizadas.

- NHibernate: Ferramenta de código aberto que faz mapeamento objeto relacional para .NET. Com ela você faz o mapeamento em arquivos XML, e todos os comandos SQL são gerados em tempo de execução. É compatível com a grande maioria de databases relacionais existentes no mercado.

- ADO.NET Entity Framework: Mais nova ferramenta da Microsoft destinada ao mapeamento objeto/relacional. Introduz o conceito de Entidades, e é compatível com várias databases. Gera os comandos SQL em tempo de execução e é totalmente compatível com a linguagem LINQ para a construção de queries.

- ADO.NET Typed Datasets : Ferramenta nativa do ADO.NET desde a versão 1.1, porém só a partir da versão 2.0 do framework que veio com os TableAdapters, que permitem o mapeamento entre Métodos e Comandos SQL. Não pode ser considerada como um O/RM, mas oferece um modelo de representação do banco de dados na forma de objetos de memória.

- SubSonic : (http://subsonicproject.com/)

- LLBLGen Pro : (http://www.llblgen.com/defaultgeneric.aspx)

- DataObjects.NET : (http://www.x-tensive.com/Products/DO/)

...
Quer ler esse conteúdo completo? Tenha acesso completo