Olá,

 

Venho ao grupo pedir a ajuda para a tomada de uma decisão técnica consciente, baseada em fatos reais e que determinem o melhor caminho a ser seguido.

 

Sou usuário de LINQ to SQL há muito tempo e naturalmente eu iria partir para o uso do EF 4 logo que o mesmo apareceu. Agora, estou prestes a iniciar um novo projeto e inicialmente a decisão do EF 4 era a melhor, até me deparar com a leitura de diversos artigos na web detonando o EF , se comparado com o NHIbernate.

 

Como não tenho conhecimento técnico a fundo para julgar as duas ferramentas, venho aqui pedir a ajuda dos colegas para entender até que ponto o que se diz do EF é mesmo verdade e se podemos apostar no seu uso, sem que haja um comprometimento dos resultados do projeto.

 

Face ao que eu já li, o NHibernate estaria muito a frente do EF e que problemas que hoje o EF estaria passando, o NH já teria resolvido. Mas o que exatamente são todos esses problemas, não sei dizer...

 

Preciso ter embasamento técnico pra tomar essa decisão e os pros e contras de cada ferramenta é determinando para a minha tomada de decisão.

 

Conto a ajuda dos colegas.

 

Abraços,

Marcelo.

Exibições: 1219

Respostas a este tópico

Olá Fúlvio,

 

Valeu pela resposta... Aproveito pra saber onde eu poderia obter ajuda no sentido de desenvolver essa DAO genérica... atualmente tenho uma camada (DAL) onde tenho várias classes de acesso a dados, sendo uma para cada entidade do banco. Não é genérica e estão todas associadas aos objetos de uma estrutura do banco carregada dentro de um arquivo dbml.

 

Não conheço a forma como se trabalha com o EF e por isso, agradeceria se me indicasse alguns links bons onde eu pudesse buscar esse conteúdo de forma rápida e simples, visto que tenho um prazo apertado pra me familiarizar com essa tecnologia antes de partir para o inicio do desenvolvimento.

 

Abraços e obrigado pela ajuda.

Marcelo. 

 

Boa tarde pessoal.

 

A discussão me interessou pois estou analisando os dois frameworks também.

 

Tecnicamente sei que existem algumas funcionalidades de batch que o NHibernate tem e o EF não tem, também sei que a partir da versão 4 não é mais possível conectar-se em base de dados do SQL 2000, ao menos não com as ferramentas de desenvolvimento, minha dúvida é se isso se aplica ao EF4 também, acredito que sim.

 

Outra coisa que me chamou a atenção, o Code First do EF4 é muito interessante, mas sua configuração poderia e deveria ser mais simples, ele gera o código no Express Local e para alterar esta configuração não foi tão intuitivo.

 

Ontem tive 5 problemas de configuração com o NHibernate e não gastei mais que uma hora para resolver, visto que a documentação é vasta, e hoje existem muitos aplicativos para configuração. Antigamente os arquivos de configuração tinham que ser "tecidos" à mão. 

 

Sou usuário do Linq to SQL mas estou vendo e apostando mais nas vantagens do NHibernate. De qualquer maneira, seria legal ver mais opiniões dos usuários do DevBrasil.

 

[]´s

 

 



FULVIO CEZAR CANDUCCI DIAS disse:

Ok!

Qualquer dúvida pode falar que eu posso te ajudar!

Ai embaixo depois de sua criação do EF4 pode usar essa como generica!

 

http://geekswithblogs.net/seanfao/archive/2009/12/03/136680.aspx

 

 

Outra dúvida que surgiu, o EF4 conecta-se ao Oracle ?

 

 

Marcelo, aqui tem um link com muitas informações sobre o NHibernate.

 

Para mim, o problema com o EF4 é a não conexão com SQL 2000 e a incerteza da conexão com o Oracle, estes dois foram agravantes sérios na minha decisão.

 

http://knol.google.com/k/fabio-maulo/-/1nr4enxv3dpeq/0#knols

 

Fala Roni,

 

Acho que esse assunto merece uma atenção de todos, pois são tecnologias poderosas e que afetam diretamente qualquer projeto. Ao se pensar em desenvolvimento .Net de projetos de médio e grande porte, tecnologias ORM são bem vindas e essas duas atualmente são as melhores opções do mercado.

 

O que eu preciso nesse momento é de um comparativo e o passo a passo de como sair do ponto "zero" e já iniciar o desenvolvimento com uma ou com outra, sem perder muito tempo.

 

Além disso, uma vez escolhida a ferramenta não posso pensar em voltar atrás. Por isso, tenho que ter todos os argumentos técnicos de cada uma pra realmente saber se vale a pena ir na direção de uma ou de outra.

 

Tenho lido muita coisa na web de profissionais de fora, que por questões "xiitas" acabam detonando o EF4 apenas por ser na MS e não exploram os pontos positivos da ferramenta.

 

Já vi que o Renato Haddad tem um CD que ensina a usar o EF4 mas não queria investir na compra dele antes de entender que é uma ferramenta que pode ser usada com segurança, estável, e que não vá comprometer o projeto lá na frente.

 

É isso.

 

Abraços,

Marcelo.

Aqui tenho SQL Server 2000, 2005 e 2008 e Oracle 10g e 11g... então tenho projetos de varios tamanhos, estou com o mesmo problema, uma vez escolhido não posso voltar atrás e pior, meu prazo é muito, muito, muito pra definir isso... 

Gosto das ferramentas da Microsoft, acho que existe uma facilidade que predomina, mas a nova versão do ADO já tirou o Oracle e agora não tem suporte pro SQL 2000, isso dificulta... por outro lado, tem muita coisa no NH, que talvez eu nem chegue a utilizar... vi alguns comparativos, mas todos de pessoas de fora, não sei se a realidade é a mesma que a nossa em termos de infra, curva de aprendizado e por ai afora...

 

Muitos defendem com unhas e dentes a tecnologia que mais gosta... estou tomando como base um amigo que era super contra o NH até conhecê-lo, hoje ele só utiliza o NH, porque ele aponta vários pontos positivos... 

 

Como não conheço muito bem nenhuma das duas, então tem que pesquisar e acreditar no que se lê.

Tem sim Fulvio.

 

http://nmg.codeplex.com/

 

Eu entendi a sua visão, mas eu acho que tecnicamente não é viável analisar se um framework é melhor do que outro por este tipo de ferramenta. Acho que isso ajuda na produtividade, mas não é um fator para decidir se é melhor ou não, porque na pior das hipóteses é bem simples implementar um gerador de entidades.

 

=)

Olá Fulvio,

 

é sim... Estarei usando nesse projeto novo o SQL Server 2008 Express que atende bem ao projeto.

 

Abraços,

Marcelo.

FULVIO CEZAR CANDUCCI DIAS disse:

Seu Banco de Dados é SQL Server?

Marcelo Oliveira disse:

Fala Roni,

 

Acho que esse assunto merece uma atenção de todos, pois são tecnologias poderosas e que afetam diretamente qualquer projeto. Ao se pensar em desenvolvimento .Net de projetos de médio e grande porte, tecnologias ORM são bem vindas e essas duas atualmente são as melhores opções do mercado.

 

O que eu preciso nesse momento é de um comparativo e o passo a passo de como sair do ponto "zero" e já iniciar o desenvolvimento com uma ou com outra, sem perder muito tempo.

 

Além disso, uma vez escolhida a ferramenta não posso pensar em voltar atrás. Por isso, tenho que ter todos os argumentos técnicos de cada uma pra realmente saber se vale a pena ir na direção de uma ou de outra.

 

Tenho lido muita coisa na web de profissionais de fora, que por questões "xiitas" acabam detonando o EF4 apenas por ser na MS e não exploram os pontos positivos da ferramenta.

 

Já vi que o Renato Haddad tem um CD que ensina a usar o EF4 mas não queria investir na compra dele antes de entender que é uma ferramenta que pode ser usada com segurança, estável, e que não vá comprometer o projeto lá na frente.

 

É isso.

 

Abraços,

Marcelo.

Fulvio, não interprete mal meu comentário.

 

Eu só quis dizer que debater sobre o que realmente faz a diferença no framework é mais interessante. Eu sei que ambos fazem bem o feijão com arroz, mas acho que seria interessante falar sobre o potencial.

Por exemplo, eu não sabia que o EF conectava no MySQL, isso é bem importante. Você sabe me dizer se ele conecta com o oracle? Fiz alguns testes mas não foram bem sucedidos. 

 

[]'s

Então, além da MS remover o suporte ao SQL 2000 no .NET4, também descontinuaram o provider nativo que existia pro Oracle, agora é a própria Oracle que tem que distribui. Não é tão ruim, estou testando o NH neste momento, preciso fazer uma apresentação e pra ser bem sincero estou gostando, tem funcionalidades demais, não sei se o EF tem tudo isso, mas eu estou até pensando em fazer comparações a respeito das funcionalidades dos dois, quero me aprofundar.

 

Meu problema com o Linq to SQL é que não sabemos quando será descontinuado e ainda tenho a necessidade do oracle. Outro problema, na versão 4 não tem suporte pro SQL 2000 como havia dito... bom, vou me virando, cada dia descubro uma nova funcionalidade do NH que me faz gostar mais.

Amigos,

Consultando um dos links indicados por vocês, existe a definição de uma interface, e de uma classe implementando essa interface.

A interface é assim:

public interface IRepository<T> : IDisposable where T : class

A classe é assim:

public class DataRepository<T> : IRepository<T> where T : class

A dúvida é como eu leio esse declaração. Sei que o uso do IDisposable é pra permiter o uso do Dispose na classe e controlar o seu descarte de forma programática. Mas a forma como está essa declaração com o "where T : class" ficou um pouco confusa...

Outra coisa. Fazer isso:

public class DataRepository<T> : IRepository<T> where T : new()

é a mesma coisa que isso ???

public class DataRepository<T> : IRepository<T> where T : class

Gostaria de entender melhor essa implementação. Agradeço se indicarem algum link onde eu possa ler mais a respeito.

Abraços,
Marcelo.

RSS

© 2020   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço