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.
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/)
...Confira outros conteúdos:
Teste unitário com NUnit
Como migrar projetos do ASP.NET MVC...
Crie relatórios com o Stimulsoft...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.