575 messaggi dal 23 giugno 2003
www.padovaboy.it
WOA!
Complimenti davvero per questi articoli su Hibernate! (per non parlare degli altri, ma questi mi han incuriosito di più ;))
Sono davvero utili per avvicinarsi a questo progettone!

Quel che mi domando sono le limitazioni del progetto o quello che potranno comportare nel futuro in un progetto che lo implementa.
(nello scorso articolo si accennava alla complessità di scrivere con attenzione i file mapping xml ...ma non mi sembra una gran noia visti anche i vantaggi)

Del resto è come ogni buon pattern a "design time": possono renderti la vita più facile ma c'è sempre da tenere conto che un qualche "scotto" lo dovrai pagare prima o poi.

Se posso chiedere: vi sono mica dei "case history" al negativo? Mi spiego: dei casi in cui l'Hibernate una volta implementato ha mostrato i suoi punti deboli e limitazioni?

Grazie mille ancora!

www.padovaboy.it dal 2001 con furore :D
Ciao,
sul sito ufficiale del prodotto, è possibile visionare i case studies che hanno avuto successo; se ci butti un'occhiata, noterai che Hibernate/NHibernate sono stati utilizzati con profitto in un gran numero di applicazioni di livello enterprise da aziende di livello mondiale (cito Sony e Cisco, tanto per fare un esempio).

La mia personalissima esperienza è questa: se usi un domain model, realizzare il layer di persistenza è un serio problema, e purtroppo te ne rendi conto solo quando ci metti le mani. NHibernate è una soluzione ottima, lo uso professionalmente da un paio d'anni oramai sia in applicazioni web che smart client e ti assicuro che il guadagno in produttività è semplicemente impressionante (un esempio di vita vissuta lo trovi qui:
http://blogs.ugidotnet.org/crad/archive/2007/06/07/80711.aspx)

Tieni però presente che ciò che hai letto nell'articolo è una mera introduzione, in realtà pensare a NH come "un qualcosa che non ci fa più scrivere le query SQL" è sbagliato. E' un framework, e come tale ha bisogno di essere imparato per bene, per poterlo utilizzare con profitto: bisogna capire come lavora per riuscire a sfruttarlo a dovere, poi vedrai che non troverai nessuno "scotto" da pagare :)

Personalmente le difficoltà più grandi le ho trovate nel supportare le basi dati legacy: si può fare e NH offre pieno supporto ad esse, ma bisogna che siano progettate in maniera decente, altrimenti diviente praticamente inutilizzabile. Se inoltre sei obbligato ad utilizzare stored procedure, sappi che NH riesce a gestirle in maniera MOLTO LIMITATA (anche se usare un ORM con le storeproc a mio modo di vedere è un controsenso).

Per il resto, inizia ad ibernare anche tu e vedrai che poi non tornerai più indietro :D
Modificato da Cradle il 21 giugno 2007 07.41 -
575 messaggi dal 23 giugno 2003
www.padovaboy.it
Gracias per la risposta completa!

Mi son già scaricato NHibernate e sto dando un occhio alla documentazione (al riguardo mi sono scaricato anche i Contribute tanto per avere anche un sistema che mi faccia pure il codice delle classi in c#).

In realtà chiedevo un Negative Case History perché su quello poi, puoi capire effettivamente dove ci sono i limiti.
Ho sempre avuto un atteggiamento da diffidente su prodotti che sulla carta leggi più elogi e cose del tipo "fa PROPRIO tutto TRANNE il caffè, perdonateci" :P

Poi per quello che fa, si si capisce bene, anche dall'articolo che non è un "semplificatore" di sql è proprio un framework su cui sviluppare e imparare per fare del tuning decente.

Scusa la domanda da "nubbio" ma Legacy non ho capito esattamente cosa sia.
Il gran Viki P. parla di sistemi "obsoleti": intendi dire che usare Nhibernate come middleware su sistemi db antiquati diventa un problema?

Peccato per le Store Procedure perché non le ho mai usate (usando mysql 4.1 principalmente) e volevo proprio cominciare ad usarle :P

www.padovaboy.it dal 2001 con furore :D
padovaboy ha scritto:
In realtà chiedevo un Negative Case History perché su quello poi, puoi capire effettivamente dove ci sono i limiti.
Ho sempre avuto un atteggiamento da diffidente su prodotti che sulla carta leggi più elogi e cose del tipo "fa PROPRIO tutto TRANNE il caffè, perdonateci" :P

Giustissimo, ma imho la cosa migliore è sempre quello di provare sulla propria pelle: fa' un po' di prove, poi qualche progettino semplice, poi aumenta sempre di più la complessità e vedi se ti trovi bene. Dopo le prime 2 o 3 applicazioni reali, trai qualche conclusione.

Scusa la domanda da "nubbio" ma Legacy non ho capito esattamente cosa sia.
Il gran Viki P. parla di sistemi "obsoleti": intendi dire che usare Nhibernate come middleware su sistemi db antiquati diventa un problema?

Dipende dallo schema, non dall'engine. Considera un db senza integrità referenziale o non in forma normale.. bene, usare NH con quello è un problema.

Peccato per le Store Procedure perché non le ho mai usate (usando mysql 4.1 principalmente) e volevo proprio cominciare ad usarle :P

Le storeproc rendono rigidi i dati che puoi fetchare da db, ecco perché non è il massimo usarle con un ORM, che invece fa della flessibilità nel generare le query SQL il suo punto di forza. Fossi in te non comincerei :D

Ciao!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.