C# e NHibernate(Lento)

125 views
Skip to first unread message

fopprado

unread,
Feb 4, 2015, 7:09:05 AM2/4/15
to nhiber...@googlegroups.com
Olá pessoal!!!
Sou professor universitário e tenho uma pequena empresa que desenvolve sistemas desktop em Delphi. 
Agora estou migrando para sistemas WEB e estou estudando C# e gostei muito do NHibernate, mas outros professores da instituição que eu trabalho me falaram que não vale a pena investir em C# e NHibernate, falaram para eu usar JAVA, pois C# segundo eles é ruim e NHibernate não funciona como Hibernate do JAVA, pois eles me disseram que NHibernate é muito lento. 
Vocês concordam com isso? Posso prosseguir com C#? Infelizmente o C# quase não é visto nas instituições de ensino.

Henrique Felipe

unread,
Feb 4, 2015, 7:23:02 AM2/4/15
to NHibernate-Br
Só não é visto em faculdades, mas em cursos a maioria tem java e C#. Aqui em fortaleza a maioria das empresas particulares usam o C#. Sem falar que no C# vc pode programar dentro do Visual Studio, que na minha opinião é a melhor IDE que existe. Caso você não se agradar com NHibernate você pode usar o Entity com C#. 

--
Você recebeu essa mensagem porque está inscrito no grupo "NHibernate-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nhibernate-b...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para nhiber...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/nhibernate-br.
Para mais opções, acesse https://groups.google.com/d/optout.



--
-- 
Henrique Felipe
Analista de Sistemas 

"Inovação vem de pessoas que se divertem com seus trabalhos"

Paulo Quicoli

unread,
Feb 4, 2015, 7:25:41 AM2/4/15
to nhiber...@googlegroups.com
Cara... quem te falou isso está mais por fora "que bunda de índio", desculpe a expressão, mas não aguentei...   Sou professor universitário também.... fiz esse caminho que vc está fazendo.... sai do Delphi e fui para o .NET com NH... não me arrependo.

Fico admirado de colegas de trabalho que ainda vivem essa panelinha...  Vai fundo no .NET e aprende mesmo NHibernate... eles falam que é lento porque não sabem utilizar, configurar.  

--

fopprado

unread,
Feb 4, 2015, 7:38:04 AM2/4/15
to nhiber...@googlegroups.com
Isso é um dilema Quicoli, sou professor em duas instituições de ensino, no IFF(Instituto Federal Fluminense) e uma faculdade particular, ninguém aceita que ensine C#. Fico triste com isso pois eu gostei da linguagem, todos argumentam que JAVA é a melhor pois é mais usada. Não que dava acabar o ensino de JAVA, acho que deveria ter uma abertura para outras linguagens também.

André Silva Rodrigues

unread,
Feb 4, 2015, 7:55:45 AM2/4/15
to nhiber...@googlegroups.com
Essse argumento de que Java é melhor do que C# por que é mais usada, é igual dizer que um carro Gol é melhor que um Camaro por que ele é mais usado. Não faz sentido. Eu trabalho em uma instituição de ensino com mais de 7000 alunos que utilizam diariamente um portal acadêmico, além do sistema acadêmico e financeiro utilizado pelos funcionários da instituição. Eu acho que dizer que Java é mais usado no mercado de trabalho e é melhor didaticamente seria o mais indicado, mas se fosse por causa disso você deveria estar ensinando Python: http://blog.codeeval.com/2014#.VNIXd53F_dD=


--
André Silva Rodrigues


--

André Silva Rodrigues

unread,
Feb 4, 2015, 7:56:42 AM2/4/15
to nhiber...@googlegroups.com
E ainda tem o detalhe de Java estar em queda no uso.


--
André Silva Rodrigues

Anderson Garcia

unread,
Feb 4, 2015, 8:18:56 AM2/4/15
to nhiber...@googlegroups.com
Para a sua empresa, tenha a certeza: vale mais a pena aquilo que lhe for mais familiar. E pelo que descreveu, tudo indica que será o C# com NHibernate (ou mesmo com o EF).

Se fosse para usar em aula, já dá um bom dilema. Eu entendo quem argumentar que deva ser o JAVA neste caso. É uma plataforma mais independente, mais portável, as principais ferramentas para trabalhar com ela são gratuítas, livres, etc. Um Visual Studio professional é fundamental, e não é barato. 

Em compensação, acho que ensinar alguém em .Net é muito mais didático. Tenho experiência em treinamentos de pessoal e não tenha dúvidas que a curva de aprendizado no C# é muito mais suave. No JAVA, quase sempre "trava" em problemas de configuração de ambientes, de ferramentas, plugins, e etc. Quem tem experiência resolve esses problemas, mas um novato sofre. E no C# (ASP.NET) parece ser tudo mais direto e objetivo. 

vitor rubio

unread,
Feb 4, 2015, 9:06:13 AM2/4/15
to nhibernate-br

É uma discussão que não leva a lugar nenhum na verdade.

Estude as duas e dê  aulas das duas. Se alguma faculdade não autorizar você a dar aulas de c# dê  aulas optativas ou extracurriculares.

Digo isso porque o conhecimento adquirido em uma pode muito bem contribuir para o uso da outra. 

Além disso a maneira de uso e configuração do nhibernate e do hibernate é quase igual nas duas plataformas, com a diferença de o hibernate não suportar linq queries porque o java não tem isso.

Map by code também é feature nova do nh.

Quanto à performance nunca fiz um comparativo entre os dois, por isso recomendo que você faça um benchmark sem preconceitos.

O que eu posso dizer é que você terá problemas de performance se configurar seus mapeamentos ou consultas da forma errada. Além disso todo opf ou o/rm é mais lento do que queries diretas, mas você ganha em performance e custo dos seus programadores. Outro fator que contribui com a aparente lentidão dos opf é que eles usam bastante reflexão para a geração de proxies dinâmicos e serializacao de objetos. Mas isso é um mal necessário e um investimento que se paga. Vale a pena.

André Silva Rodrigues

unread,
Feb 4, 2015, 9:10:01 AM2/4/15
to nhiber...@googlegroups.com
Apenas corrigindo, Visual Studio tem a sua versão gratuita: http://www.visualstudio.com/products/visual-studio-community-vs




--
André Silva Rodrigues

Anderson Garcia

unread,
Feb 4, 2015, 11:18:03 AM2/4/15
to nhiber...@googlegroups.com
Não é exatamente uma correção, André. Eu sempre soube que havia uma versão gratuita. Mas não é a edição ideal para um trabalho corporativo. Já o eclipse e seus plugins não sofrem essa restrição (exceto se for opção da empresa utilizar algum plugin proprietário).

E claro que concordo com o Vitor. O que vai ser ensinado é o conceito. Não por acaso alguns dos nossos livros de cabeceira, como o principal do Fowler, dão exemplos de código tanto em JAVA quanto em C#. Mas certamente um desses ambientes vai ser o instalado e usado pelos alunos. Pode até ser os dois (o que eu acharia bacana, mas talvez seja mais difícil pro aluno).

Quanto à performance, estou em meu primeiro projeto com NH e os resultados tem sido satisfatórios. Inclusive com elogios do cliente (estamos migrando de uma versão que usava apenas ADO.NET). Alguns ajustes precisaram ser feitos no meio do caminho. Então, conhecer a ferramenta e um bom design são fundamentais para a performance. Muito mais que a plataforma escolhida (o JAVA que o diga).

vitor rubio

unread,
Feb 4, 2015, 11:48:09 AM2/4/15
to nhibernate-br

Bem lembrado.  Todos os livros dos nossos gurus,  Fowler, GOF etc tem exemplos em Java.  Embora eu me considere um analfabeto em Java eu entendo os exemplos e acredito que não teria dificuldade em começar,  de repente, a trabalhar com Java.  Precisaria de um tempo para conhecer o ambiente e os frameworks mas é coisa que você aprende fazendo.

Com relação às aulas, no curso que fiz na ete tive aulas obrigatórias de 4 linguagens,  c, vb, clipper e delphi. 

Na faculdade tive aulas obrigatórias de c e pascal  e optativas de cobol, delphi, javascript,  e java (java eu abandonei no começo por motivos pessoais ) . Hoje eu sei que leciona-se c# lá também.  Alguns dos professores dão aulas de 4 ou 5 linguagens.  Por isso não vejo porque optar entre uma e outra. Se for um projeto para uma empresa tudo bem você ter que escolher.  Agora para dar aulas, escolha uma, domine, lecione por um ano e depois tente a outra. 

Felipe Oriani

unread,
Feb 4, 2015, 11:49:47 AM2/4/15
to nhiber...@googlegroups.com
Acho que quando se utiliza ORM, é importante acompanhar com alguma ferramenta de trace as queries executadas no banco de dados (EFProf e NHProf). Além disso, utilizar estratégias de Caching e o Linq corretamente, irão afetar a performance diretamente. 

Agora sobre C#/Java... sem generalizar, acredito é moda de acadêmico ter um xiitismo contra Microsoft em geral. Bom, pelo menos o Java 7 agora já tem suporte lambdas expressions hehe



______________________________________
Felipe B Oriani

Bruno D'Alessio

unread,
Feb 4, 2015, 11:52:32 AM2/4/15
to nhiber...@googlegroups.com
Conhecimento universitário e quase que completamente teórico.
Trabalho com JAVA a 16 anos e .NET a quase 13 anos e utilizo Hibernate e NHibernate a um bom tempo!

Posso confirmar que não existe essa diferença e afirmo que tanto um quanto o outro, para uma boa performance, depende como seu sistema é modelado, e como seus Repositorios (ou classes de acesso a DB), foram desenvolvidas!

Basicamente se está muito lento, provavelmente é culpa do desenvolvedor e se está com performance excelente, também!

Recomendo também, se ainda tiver dúvidas, fazer alguns testes e perguntar para a galera que trabalha em campo diretamente e com conhecimento de causa, provavelmente seu feedback terá mais embasamento!

Abs,
O Extract Method é seu amigo!

"Vocês riem de mim por ser diferente, eu rio de vocês por serem todos iguais..." (Bob Marley)

Bruno D'Alessio
Arquiteto de Software
(21) 99441-1214
GTALK: bruno...@gmail.com
SKYPE: brun...@hotmail.com (bcdalessio)

Gabriel RB

unread,
Feb 5, 2015, 7:07:54 PM2/5/15
to nhiber...@googlegroups.com
Anderson,
você está confundindo a versão "Visual Studio Express"(que era bem básica), com a versão "Visual Studio Community Edition" (para o público escolas/freelancer/pequenas empresas).


Pegaram um set de recursos da versão professional e criaram uma segmentação free, que pode ser utilizada perfeitamente no dia-a-dia profissional.




Atenciosamente,

Gabriel RB
Analista de Sistemas
E-mail: gabrie...@gmail.com
Fone: (64) 9251-9239 (operadora claro)
http://gabrielrb.net

Anderson Garcia

unread,
Feb 5, 2015, 9:23:31 PM2/5/15
to nhiber...@googlegroups.com
"Esta edição do Visual Studio está disponível sem custo para desenvolvimento de aplicativo não empresariais."

http://www.visualstudio.com/pt-br/downloads/download-visual-studio-vs.aspx

---
Anderson Canale Garcia
Analista de Sistemas
Centro de Tecnologia da Informação (CeTI-SC)
(16) 3373-8012

Ricardo Borges

unread,
Feb 5, 2015, 10:03:36 PM2/5/15
to nhibernate-br
Sobre o NHibernate, eu confio mais nele do que em mim.... se algo estiver lento, o problema está entre a cadeira e o teclado, ou entre o web server e o banco. :)

Eu acho um fator complicador o aluno ter contato imediato com linguagens poderosas como Java e .NET. Acho que todo aluno precisa aprender os princípios com algo mais simples. Eu aprendi com uma ordem tipo Pascal, C, C++... acho que isso me ajudou a evoluir em cada paradigma. 

Quando dei aula num curso, costumavam ensinar lógica com Java, eu achava que isso confundia os alunos, então decidi criar um portugol para ensinar os princípios. Ficou interessante o projeto e eu terminei fazendo disso uma linguagem de script pra ser usada dentro de uma aplicação também. Pode ser hospedada em qualquer app ou executar direto no notepad++. É um bom exemplo também pra Compiladores, por que tem uma mini VM que executa um mini-assembly.

Pra quem se interessar: 






Ricardo

vitor rubio

unread,
Feb 6, 2015, 9:01:51 AM2/6/15
to nhibernate-br

Geralmente é assim. Se ensina lógica de programação com portugol passando para programação estruturada com pascal ou c para só depois se ensinar programação orientada a objetos.

Há cursos que ensinam lógica de programação e passam direto para poo. Isso é possível e forma bons programadores mas o método de ensino é outro e há nesse caso a necessidade de professores mais acostumados com esse método e mais praticantes de poo.

Lano Castro

unread,
Jun 26, 2015, 9:54:42 AM6/26/15
to nhiber...@googlegroups.com
Utilizo NHibernate desde a versão 2.0 e posso te dizer que é muito veloz, porém, os desenvolvedores menos maduros esbarram na questões da arquitetura e na construção das consultas, e neste caso não há framework que funcione bem se o projeto não for bem configurado.


Em quarta-feira, 4 de fevereiro de 2015 10:09:05 UTC-2, fopprado escreveu:
Reply all
Reply to author
Forward
0 new messages