Newsgroup: it.comp.dotnet
Titolo: Entity Framework vs NHibernate

Ciao a tutti, ho bisogno di una conferma, un consiglio.
Ad oggi uso NHIbernate, vorrei iniziare ad introdurre nei miei progetti EF.
La domanda EF funziona bene, lo utilizzate con successo nelle vostre applicazioni ? 
Non mi interessa tanto un confronto secco tra i due prodotti, sono diversi e penso Nhibernate sia più maturo, ma mi piace l'idea di usare un qualcosa di più integrato con VS.
Cosa ne pensate ?
 
Grazie
Stefano

 wrote in message 
news:1f32eddd-dc5c-4e90...@googlegroups.com...

My 2c:  Ci sono indubbiamente tutti i vantaggi di un componente direttamente 
supportato, nonche' il fatto, per quello che vedo dagli annunci di lavoro, 
che molti di quelli che usano l'
ASP.NET
 MVC lo abbinano appunto a EF, mentre 
di richieste per NHibernate ne vedo piuttosto poche, giusto in certe 
nicchie.  Poi al livello tecnico ci sono sempre pro e contro da entrambe le 
parti: non ne so molto di prima mano (non uso O/RM), ma so che per esempio 
NHibernate e' piu' potente ma anche parecchio piu' complesso di EF, d'altra 
parte (sempre per il poco che ne ho letto o visto) con NHibernate piu' o 
meno "ci fai tutto", mentre lo stesso (ancora?) non e' per EF.
 
Julio
 
 

 Stefano
 
.m
 
-- 
blog @ //
milestone.topics.it
 
 
 

Grazie a tutti e due.
 
LuduvicoVan non li usa, io mi sto "allontanando". Forse per ciò che faccio io non è poi così fondamentale usarli. Quello che scrive nel post che mi hai consigliato tu Mauro io lo sento tanto. Tanta fatica per usare Nhibernate in certe di situazioni, trovare info non è poi così semplice per certe sue features. Penso che in effetti si senti proprio la mancanza di una linea. Poi per carità lo so che su certe cose "spacca". 
A volte ho l'impressione di sovraingegnerizzare il mio lavoro. Ripeto i progetti su cui lavoro non sono enormi per cui forse non era proprio proprio corretto fin da l'inizio l'uso di un oggetto del genere.
Ho lasciato passare un po' di versioni, avevo paura di un prodotto tipo LinqToSql, invece vedo che si danno molto da fare e prob. per cosa devo fare io va più che bene EF. 
Ma non ho capito una cosa Mauro, tu che li usi gli ORM che cosa preferisci ?
 
Grazie Stefano
 

 Ma non ho capito una cosa Mauro, tu che li usi gli ORM che cosa preferisci ?
 
ho smesso e mi sono disintossicato? :-)
Ho capito che l'ORM ï¿œ uno dei problemi e spesso introduce piï¿œ frizione 
di quella che cerca di togliere, ï¿œ un discorso molto e articolato sia 
chiaro difficile da fare in un post, considera che in azienda ne 
facciamo un corso di 2 giorni per intodurre la povera vittima dell'ORM 
ai concetti di DDD e CQRS in particolare dove non butti via l'ORM (se 
usi un db relazionale) ma ti limiti ad usarlo per fare quello che sa 
fare bene, mapping e impedence mismatch, fine dei giochi.


Ciao Stefano,

Premesso che ho usato EF solo per un progetto, dico che secondo me NH 
vince su tutta la linea per una serie di motivi, che vado tosto ad elencare.
Personalmente ho difficoltà con gli strumenti in cui non ho il "pieno 
controllo" e con EF, interfacce grafiche, ecc. le vedo solo come un 
appesantimento. In secondo luogo, i modelli generati da EF sono 
appesantiti da un sacco di roba di cui ancora non capisco il senso. E' 
vero che AFAIK hanno introdotto anche code first, POCO, ecc., ma per 
quando se ne erano accorti, mi ero già skillato (più o meno... :-)) su 
NH. Che invece è *SEMPLICE*: se hai bisogno di X, fai X. E non X, Y, Z, ecc.
 
NH ha (a mio avviso) un difetto tecnico che è una relativa "debolezza" 
del provider LINQ (ma anche quello di EF è un po' debole) e qualche 
problema (es: le subquery non si basano su join ma solo su subselect), e 
pure un difetto "gestionale": non ha un nome che spinge lo sviluppo, le 
roadmap, ecc.
Ma all'attuale stato delle cose, come dicevo, uso sempre NH.
 
Detto questo, ha *STRA*-ragione Mauro quando dice che l'ORM risolve i 
problemi quando gli si chiede di fare quello per cui è stato fatto. :-)
 
Ciao,
Giulio
 
--