As melhores práticas atuais da Microsoft para criar uma camada de dados .NET? E realidade?

13

A equipe de desenvolvimento com a qual estou trabalhando mudará para o .NET 4.0 em breve; no entanto, a biblioteca de classes de acesso a dados que usamos ainda usa o ADO.NET "classic", significando SqlDataReader , DataTable e similares. Enquanto isso, parece que a Microsoft e provavelmente o resto do mundo estão avançando com o Entity Framework e o WCF Data Services . Não encontrei nada no MSDN que indicasse quais das tecnologias de acesso a dados que a Microsoft considera melhores práticas.

A Microsoft tem uma preferência? Que acesso de dados a maioria das pessoas está usando atualmente? Existem boas razões para permanecer no ADO.NET classic e não mudar para o Entity Framework?

T. Webster
fonte
Boa pergunta. Um exemplo: "camada de dados" pode ser um termo mais preciso. "Camadas" também pode significar partes de um sistema distribuído executável em caixas separadas.
Azheglov
1
@azheglov, "camada de dados" foi o meu primeiro pensamento, mas depois olhei para isso e imaginei seguir a terminologia que vi no MSDN: msdn.microsoft.com/en-us/library/bb384398.aspx . Eu concordo que a camada de dados é mais precisa.
T. Webster
Webster: agradecimentos para olhar para cima e esclarecimentos
azheglov

Respostas:

4

Na minha empresa, estamos usando a EF. É um ORM legal, adequado para nosso pequeno projeto. Na realidade, as pessoas estão usando EF ou NHibernate. Ambas as estruturas são boas. A EF possui um ótimo suporte para MS e você pode encontrar ótimas ferramentas incluídas no Visual Studio. O NHibernate é considerado melhor que o EF, mas há uma "curva de aprendizado" maior, portanto você gastará mais tempo adotando-o.

Eu acho que, se você está no "clássico" do Ado.Net, tente a EF. Crie um projeto simples e substitua alguns dos métodos DAL. Verifique como ele funciona e como você pode gerenciar / modificar o código. Compare-o com os métodos simples "SqlDataReader" e decida qual é o melhor. Lembre-se de que toda mudança de tecnologia precisa de algum tempo para adoção, portanto, é necessário calcular se essa mudança será benéfica para sua empresa a longo prazo.

Michal Franc
fonte
5

Minha equipe está achando a realidade de mudar para a EF um pouco difícil. Não é porque o EF seja ruim ou não seja útil, mas o escopo de converter nossas camadas de dados existentes (bastante massivas) de conjuntos de dados fortemente tipificados originários do ADO.Net framework 2.0 para o EF é apenas um trabalho intensivo que realmente não ganha. nos qualquer coisa. Para coisas novas, ainda estamos bastante divididos, porque todos temos opiniões e objetivos. Para nossos projetos Silverlight, estamos focando apenas nos serviços EF e RIA, mas para projetos web (webforms e MVC 3), estamos usando o Linq2Sql principalmente.

Estamos encontrando menos dores de cabeça e um desenvolvimento mais rápido usando o Linq2Sql, mas sei que a Microsoft está promovendo a agenda da EF (principalmente nos serviços WCF e RIA). O Linq2Sql não vai a lugar nenhum, mas todos os novos brinquedos e recursos interessantes serão focados no EF. Eu diria que se você tiver uma escolha desde o início, a EF seria um bom lugar para começar. Se você já está no meio do caminho, não sei se será muito fácil mudar.

Joel Etherton
fonte
3

O Entity Framework é o caminho preferido. O LinqToSql será suportado e mantido, mas o foco do desenvolvimento daqui para frente está no Entity Framework. Escolhendo entre o ADO.NET Entity Framework e o LINQ to SQL

klir2m
fonte
e o que você usa atualmente?
26611 Webster T.
2
Eu acho que todo mundo está usando linq2sql
cnd
@nCdy: Enquanto alguns membros da nossa equipe consideraram o Linq2Sql muito falador, somos da opinião de que a EF gera automaticamente muito lixo desnecessário que o L2S ignora.
Joel Etherton 26/05