De que se trata o artigo

O artigo apresenta a utilização do framework Nhibernate. O mesmo é uma ferramenta de ORM (Object Relational Mapping). Sua ideia é trabalhar em cima de classes/objetos, sem a necessidade de utilizar comandos SQL.

Em que situação o tema é útil

Quando for necessário criar aplicações com apoio de ferramentas de mapeamento objeto relacional (OR/M), facilitando o desenvolvimento e ganhando produtividade, além de segurança e boa estruturação de código.

Nhibernate – Primeiros Passos

Neste artigo veremos o que é o Nhibernate e em que esta ferramenta pode ser útil no desenvolvimento de nossas aplicações. Veremos as principais funções disponibilizadas pela mesma e também as suas utilizações. Falaremos sobre como configurar o Nhibernate para que proporcione o acesso a dados de nossa aplicação de uma maneira mais produtiva e segura.

Quando falamos em persistir dados estamos falando sobre Banco de Dados e Sistemas de Gerenciamento de Banco de Dados, também conhecidos como SGBD.

SGBD são ferramentas desenvolvidas especificamente para gerenciar o armazenamento de dados independente de quais sejam. Quando desenvolvemos uma aplicação, nestes casos, é fundamental termos uma maneira de comunicar a mesma com estes gerenciadores para que possamos trafegar dados de um para o outro de uma forma consistente e segura.

O .NET Framework oferece uma biblioteca de dados específica para este tipo de tarefa, a biblioteca ADO.NET (ActiveX Data Object .NET), que nada mais é do que um conjunto de classes desenvolvidas especificamente para que possamos manipular inclusões, alterações e exclusões de dados em alguma fonte especificada por nós desenvolvedores durante o processo de desenvolvimento do software. Esta biblioteca fornecida pelo .NET Framework, por muito tempo foi muito utilizada e, ainda pode-se afirmar, que é a metodologia mais utilizada de acesso a dados em sistemas baseados no .NET Framework.

Acontece que esta biblioteca, apesar de ser uma excelente ferramenta, proporciona alguns ônus ao desenvolvimento de software e, dentre eles, os mais significativos são a baixa produtividade (em relação a ferramentas OR/M como o Nhibernate) e pouca integração com a linguagem de desenvolvimento.

Neste cenário que os desenvolvedores se deparam com o surgimento de ferramentas OR/M, ou seja, ferramentas de mapeamento objeto-relacional. Estas ferramentas têm o objetivo de estreitar os laços entre aplicações e gerenciadores de banco de dados, para que o desenvolvedor tenha mais liberdade, segurança e praticidade para acesso a dados. Dentre estas ferramentas, temos o Nhibernate, que é uma ferramenta OR/M destinada à utilização no .NET.

Ferramentas OR/M facilitam a integração entre a orientação a objetos e a camada de dados, diminuindo o que chamamos de impedância, que é o espaço vazio que existe entre estes modelos. Elas surgiram após a necessidade desta comunicação e a melhor utilização do paradigma orientado a objetos. Hoje é considerada uma camada muito importante do desenvolvimento de aplicações e ganharam bastante ênfase nos últimos anos, com o surgimento de diversas ferramentas OR/M, tanto open source/free como ferramentas pagas.

O Nhibernate não foi um projeto criado totalmente do zero. Na verdade ele é um “irmão” do projeto Hibernate, que foi desenvolvido especificamente para a linguagem Java. Porém, quando os desenvolvedores .NET perceberam que a ideia era boa, formaram um grupo e desenvolveram o Nhibernate, portanto ele é Open Source e Free.

Recentemente temos um concorrente nativo ao Nhibernate lançado pela própria Microsoft, que é o Entity Framework ou EF para os íntimos.

Mencionei este detalhe apenas para que o leitor saiba que o Nhibernate não é a única ferramenta OR/M disponível para a plataforma .NET e, assim, pesquisar mais sobre o mesmo e comparar suas funcionalidades na hora de por em prática a utilização de uma ferramenta desta magnitude.

O que é o Nhibernate

Como comentado anteriormente, o Nhibernate é uma ferramenta OR/M para plataforma .NET. Ela é composta de uma coleção de classes que permitem o acesso e manipulação de dados de uma fonte de dados armazenada em um SGDB. Dentre suas principais características estão:

• Versatilidade de utilização, pois permite integração com muitos dos gerenciadores de banco de dados existentes no mercado (SQL Server, Oracle, PostgreSQL, MySQL etc).

• Integração com a linguagem de desenvolvimento, pois a mesma é constituída de classes em .NET, pois foi desenvolvido em C#.

• Confiabilidade das interações com o banco de dados, pois com ele não precisamos escrever consultas em SQL e sim apenas utilizar suas classes e métodos para manipularmos as informações. Desta forma, evitamos um recorrente problema da manipulação de dados direta (nativa) com ADO .NET que é a falha no momento da digitação dos comandos SQL em uma aplicação.

• Agilidade de desenvolvimento, pois além de manipular os dados, também faz o papel de criar as entidades do banco de dados e tratar as alterações na especificação do mesmo.

• Possibilidade de utilizar o paradigma de Orientação a Objetos na íntegra em aplicações .NET com acesso à dados. Esta é uma característica fantástica disponibilizada pela maioria das ferramentas OR/M. Com isto, podemos aplicar vários conceitos de orientação a objetos como herança, polimorfismo e também podemos lançar mão da utilização de Coleções Genéricas do .NET Framework.

Como o Nhibernate é um conjunto de classes .NET, nada mais natural que o mesmo faça o uso

da biblioteca nativa ADO .NET para o acesso aos dados em SGBD e, é exatamente desta forma, que ele trabalha. Se formos simplificar o conceito do ADO.NET, poderíamos dizer simplesmente que ele se trata de classes prontas para acesso à dados, que utilizam a boa e velha tecnologia ADO. Porém ele faz isto de uma forma automática sem transparecer ao desenvolvedor, tornando o trabalho mais prático e agradável.

Se analisarmos deste ponto de vista, ainda estamos utilizando ADO .NET, porém de uma forma mais elegante e estruturada, portanto para utilizar o mesmo, basta adquirirmos a biblioteca de classes do mesmo (veja na seção de links) e referenciarmos a mesma em nosso projeto. Claro que apenas isto não é o suficiente para sairmos persistindo dados em nossa aplicação. Há uma série de configurações que são imprescindíveis para que o Nhibernate possa executar seu trabalho com maestria, mas são configurações relativamente simples e, são necessárias, apenas uma vez a cada projeto ou então, quando a estrutura de dados sofre alguma alteração significativa.

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