Inquiridor
NHibernate ou Entity Framework - Aplicação Comercial

Discussão Geral
-
Pessoal, boa noite!
Sei que o tema já foi debatido em outras ocasiões, porém as mensagens são antigas e gostaria de saber a opinião atual da comunidade sobre qual das duas soluções ORM (NHibernate ou Entity Framework ) usar para a construção de um ERP.
Exemplo de módulos : PAF-ECF, Controle Financeiro, Gestão de Compras, etc.
Obrigado
Todas as Respostas
-
-
Usei mais o NH do que o EF então minha opinião pode ser um pouco distorcida, mas a sensação que ficou é que o NH é mais maduro, principamente quando se trata de opções mais "avançadas": Cache, Extensibilidade (você pode interceptar e alterar o comportamento de quase(?) qualquer coisa do framework), geração de IDs não convencionais, Eventos, etc.
-
Não tenho opinião bitolada sobre nenhum framework, porém você deve considerar algumas situações antes de escolher o ORM pra sua aplicação.
1. Você vai querer logar as atividades do ORM?
2. Você vai precisar gerenciar grandes volumes de dados?
3. Você vai precisar interceptar falhas a nível de ORM?
4. Você quer fazer uma aplicação totalmente agnóstica de banco?
5. Você vai querer facilidade de reconhecimento de objetos na hora de atualizar e salvar?
Se ao menos uma das situações acima se encaixa ao que você planeja, esqueça o EF, não é para o seu negócio.
O EF é recomendado para sistemas pequenos e médios, se for criar relatórios extensos, nem sonhe, ele vai criar um gargalo na sua aplicação a ponto de você querer refatorar tudo pra NH, e quando você perceber já está tarde demais para fazer um ajuste desse nível.
-
Tenha em mente que o suporte principal do EF é apenas Oracle e Sql Server, ambos pagos.
Quanto a nível de funcionalidades eu sempre achei melhor o NH até a versão 5 do EF. A versão 5 e 6 do EF são muito poderosas, e rapidas especialmente a 6.
Já o NH é muito flexível e tem uma gama grande de bancos suportados, eu por exemplo geralmente utilizo ou mysql ou postgres com NH, e isso é muito importante se levar em conta, pois ambos não necessitam de nenhuma licença para usar.
-
Hoje é completamente possivel trabalhar com EF e Mysql, basta ter o connector.
Sobreo gargalo: o EF trabalha com dois níveis de cachce: acche de query compilada e cache de dados.
Além do cache você também pode rodar querys nativas SQL caso preferir.
Microsoft Communit Contributor
Twitter: @MayogaX
Blog: Dev Blog