Com a iminente chegada do Visual Studio 2010 e do .NET Framework 4.0, não é de se espantar que todas as novidades do .NET estejam concentradas nesta nova versão da plataforma. E uma destas novidades que daremos destaque hoje é o ADO.NET Entity Framework.

Para quem não acompanhou o seu surgimento, o Entity Framework teve seu lançamento oficial no final de 2008. Ele foi um dos integrantes do Service Pack 1 da versão 3.5 do .NET Framework.

Mesmo antes do seu lançamento, o Entity Framework já despertou muita atenção da comunidade, como os Previews que foram disponibilizados ao público. O objetivo principal do Entity Framework foi, e ainda é, o de oferecer os recursos de uma ferramenta de mapeamento objeto/relacional e persistência de dados.

Com este tipo de ferramenta, podemos desenvolver um modelo de objetos, e persistir os dados gerados por este modelo em um banco de dados relacional. Até então, a ferramenta de mapeamento objeto/relacional para a plataforma .NET mais conhecida e usada, é o NHibernate. E o Entity Framework surgiu como um forte concorrente.

Uma das características mais marcantes do NHibernate, e que o Entity Framework também oferece, é a portabilidade entre vários tipos de bancos de dados. Ambos oferecem a possibilidade de utilizarmos vários bancos de dados, como: SQL Server, Oracle, Postgre, MySQL, etc.

Mas o grande diferencial do Entity Framework é outro. Com ele podemos realizar o nosso mapeamento através de ferramentas e recursos visuais, coisa que não existe nativamente no NHibernate. Enquanto no NHibernate precisamos criar e editar nossos mapeamentos através de arquivos XML, no Entity Framework podemos fazer isso através de um editor visual, com operações de “seleção de opções” e “arrastar e soltar”.

Porém, como toda “primeira versão” de qualquer software, o Entity Framework apresentou alguns problemas, e obviamente não agradou a todos. Para corrigir os problemas e suprir essas necessidades, é que teremos o Entity Framework v4.

Este nome pode causar alguma confusão, já que não se trata de uma quarta versão da ferramenta. Essa é a segunda versão do Entity Framework, porém, como ela vem no .NET 4 acabou ganhando o nome de Entity Framework v4, ou simplesmente EFv4.

Muitas novidades vão vir no EFv4, mas acredito que as mais importantes são: o conceito de Model First Development, e o suporte ao estilo de modelagem conhecido como POCO.

O Model First Development é um conceito de modelagem que prega que devemos em primeiro lugar criar o nosso modelo de objetos, ou no caso do EF, nosso modelo de Entidades. Com o modelo pronto o banco de dados relacional deverá ser criado com base nele.

Na primeira versão do Entity Framework nós tínhamos recursos para fazer exatamente o contrário. Através de um banco de dados relacional já existente, o modelo de entidades era criado. No EFv4 poderemos primeiro criar o modelo de entidades, e através de uma nova funcionalidade, o script para a criação do Banco de Dados pode ser gerado automaticamente.

Para uma modelagem Orientada a Objetos, esse recurso é de grande importância, pois oferece meios práticos que permitem a criação de estruturas relacionais através de um modelo predefinido.

A outra novidade é o suporte ao POCO. Para simplificar, POCO se refere à modelagem de objetos simples, ou “ignorantes”. Na prática é quando criamos um modelo de objetos que não tem nenhuma relação com os recursos que serão utilizados para a persistência destes objetos, onde quer que seja.

Isso significa que no EFv4 teremos a possibilidade de modelar nossos objetos sem precisar herdar de nenhuma outra classe, ou mesmo implementar qualquer método que seja. Essa talvez tenha sido uma das grandes críticas feitas à primeira versão do EF, já que ferramentas como o NHibernate têm suporte nativo à esta metodologia.

Além disso, veremos muito mais novidades no EFv4, seja para mantê-lo mais compatível com as melhores práticas da orientação a objetos, ou para trazer mais produtividade para o nosso dia-a-dia. Se quiser acompanhar de perto como anda o progresso do EFv4, acompanhe o Blog de desenvolvimento da ferramenta aqui: http://blogs.msdn.com/efdesign/

Grande abraço e até a próxima!