Confronto: NHibernate - Linq 2 SQL - Entity Framework

Mi è stato chiesto molte volte, anche su Guisa esiste un bel thread sul confronto di questi tre ORM, quindi ne ho approfittato per fare una matrice che incrocia le feature di questi tre prodotti. Ahime non ho ancora qualche informazione su Entity Framework e consideranto che quest'ultimo è ancora in CTP,la sua colonna potrebbe essere passibile di modifiche.
Ho usato il simbolo "??" nelle feature di cui non ho ancora conoscenza.
Siete invitati a propormi qualche eventuale feature su sui trovare i confronti, terrò aggiornata la tabella.
NHibernate Linq to SQL Entity Framework
Mapping con Attributi Si Si Si
Mapping con XML Si Si Si
Persistenza Trasparente Si Parziale.
Per la gestione delle collezioni e dei proxy bisogna usare dei tipi specifici
Parziale allo stato attuale. Le entity devono implementare una interfaccia
Persistenza Transitiva Si No No
Strategie di Fetching Si Si Si
Strategie di Ereditarietà Tutte le strategie Solo la Table per Hierarchy Tutte le strategie
Mapping Entity su più tabelle Previsto il porting da Hib 3.2 No Si
Mapping di Value Type Si No Si
Linguaggio di interrogazione a oggetti HQL (stringhe) Linq applicato a DataContext Linq to Entities (applicato a ObjectContext) per c# e vb.net.
eSQL (stringhe) per tutti i linguaggi.
Lazy load Si Si Si
Mapping di chiavi composite Si Si Si
Multi-database vendor Si No Si
Tracking stato entity Contesto di Persistenza. Contesto di Persistenza o Entity ??
Identity Map Si Si Si
Caching di entity e query Si No ??
Estendibilità Molto granulare. Architettura a plug-in in molte parti. Poco granulare. IQuerableProvider è molto complesso. ??
Disponibilià Immediata Da novembre in poi da metà del 2008 in poi
Supporto a pagamento Red Hat Microsoft Microsoft

Nota:
Si!...sono tutti e tre degli ORM...con feature più o meno evolute...ma la sostanza è quella.

Print | posted on Monday, August 27, 2007 10:35 PM

Comments on this post

# Re: Confronto: NHibernate - Linq 2 SQL - Entity Framework

Requesting Gravatar...
Sei un mito!
Left by Michele Bersani on Aug 28, 2007 3:02 AM

# re: Confronto: NHibernate - Linq 2 SQL - Entity Framework

Requesting Gravatar...
@Nicolò, a me piace tantissimo db4objects, solo che...non è un ORM!
Quindi nei casi in cui parlo di ORM non lo cito mai.
E' un database a oggetti puro, una cosa ben diversa da un framework che trasforma classi in righe di tabelle.

@Michele...grazie!
Left by GIancarlo Sudano on Aug 28, 2007 8:45 AM

# ORM a confronto

Requesting Gravatar...
Janky ha scritto un bel postnel quale mette a confronto tre degli ORM più chiacchierati del momento:
Left by Diario di Bordo on Aug 28, 2007 9:21 AM

# re: Confronto: NHibernate - Linq 2 SQL - Entity Framework

Requesting Gravatar...
Ciao Janky, bel post veramente... in quanto alla persistence ignorance direi che Linq To SQL violando qualche principio non la supporta... EF rispetto a prima ha fatto diversi passi avanti anche se a me nn piace nemmeno dover implementare un'interfaccia :)
Left by Luca on Aug 28, 2007 10:55 AM

# re: Confronto: NHibernate - Linq 2 SQL - Entity Framework

Requesting Gravatar...
@Luca
Per quel che riguarda Linq to SQL, nella condizione in cui non si utilizzino le sue collezioni o i suoi proxy tutto funziona comunque perfettamente (quindi le classi possono essere veramente ignoranti alle sue API) ma ci si perde per strada alcune feature di prestazioni (mancanza di lazy load). Diciamo che siamo quasi al confine! :-)
Left by GIancarlo Sudano on Aug 28, 2007 1:31 PM

# re: Confronto: NHibernate - Linq 2 SQL - Entity Framework

Requesting Gravatar...
@Moreno
NHibernate è in RTM da quasi due anni, più che altro sono gli ORM di MSFT a essere in beta.
Senza dubbio quello più promettente ed anche l'unico che può contrastare NH è l'Entity Framework, solo che il suo rilascio mi pare sia a metà dell'anno prossimo (se non ci sono stati cambiamenti).
Left by GIancarlo Sudano on Aug 31, 2007 1:06 PM
Comments have been closed on this topic.