luglio 2006 Entries
I brevetti software colpiscono ancora...

... e purtroppo neanche Hibernate ne è immune. Da questo post di Roy Osherove che cita una notizia di ORMappers.com:

"Red Hat will face a patent infringement lawsuit this week over whether Hibernate, which it inherited from JBoss violates ORM patents held by FireStar Software. FireStar alleges that Hibernate violates U.S. patent 6,101,502 -- " Object model mapping and runtime engine for employing relational database with object oriented software."

[NetworkWorld.Com]

Si tratta di un brevetto che riguarda la generazione di strutture di DataBase a partire da modelli a oggetti e viceversa.

Mah...

powered by IMHO 1.3

Add Comment Filed Under [ NHibernate Misc ]
La Unit of Work e le Web Apps

Ieri Imperugo di ASPItalia ha pubblicato un post a proposito di NHibernate sul suo blog e ne è seguita una discussione parecchio interessante con nostromo, Daniele e ricky, proseguita con quest'ultimo anche su MSN.

Un passo di tutto questo disquisire era qualcosa del tipo: "ha senso una Unit of Work in una Web Application, in cui il codice lato server è solitamente stateless?"

Secondo Riccardo "una UoW ha il compito di creare un contesto transazionale a livello di logica applicativa, cosa che nel web per motivi prestazionali è preferibile fare in altri modi" e quindi scegliere se utilizzarla o meno dipende dai casi; ma dopo essermi confrontato anche con Janky e alla luce della mia esperienza (che comunque non è paragonabile a quella dei miei interlocutori), io sono convinto del contrario.

L'esempio è quello di una qualsiasi relazione Master-Detail; pensiamo di avere un ipotetico oggetto di tipo Fattura, recuperato in qualche modo dal DB. Tale oggetto ha una collection di DettaglioFattura e ogni Dettaglio ha la sua bella reference alla fattura stessa. In pratica:

Ora, supponiamo di andare a modificare la composizione delle righe, perché eliminamo un dettaglio. Io, nel mio codice, voglio limitarmi a scrivere qualcosa di tipo

miaFattura.Details.RemoveAt(3);
provider.Persist(miaFattura);

Se ci pensiamo, non è banale fare in modo che questo codice funzioni, perché non faccio nessuna chiamata ad un DAL per il mio dettaglio, che è ancora lì in memoria e punta ancora alla mia fattura. Ma la Unit of Work si accorge che la composizione del dettaglio è cambiata e genera una query di DELETE sul DB per quella riga che è stata rimossa.

UPDATE: Ho scritto una cosa errata, interpretando male il pensiero di Riccardo: egli non dice che NON abbia senso una UoW in uno scenario Web, ma che NON HA SENSO SEMPRE. Mi scuso con il diretto interessato per aver travisato la sua idea.

powered by IMHO 1.3

[OT] Telefonare gratis...

Tempo fa era un sogno, oggi si sta avverando sempre di più grazie alle tecnologie VOIP. Ho scovato per caso JaJah, magari molti di voi lo consceranno già.. beh, è semplicemente geniale. Inserisci il tuo numero e il numero che vuoi chiamare, i telefoni squillano e si parla senza utilizzare cuffie, microfoni, ecc.ecc...! E se si è entrambi utenti registrati la chiamata è gratuita! Mica male, eh?

Peccato solo che in Italia non funzioni con i cellulari

powered by IMHO 1.3

One Comment Filed Under [ Off topic ]
BindingWrapper per classi che espongono solo fields pubblici

Quando ci si deve interfacciare con un webservice che restituisce custom types, il tool WSDL.EXE provvede da solo a definire alcune classi che rispecchiano il naming dei tipi in origine e che possono essere direttamente utilizzate nel codice del nostro client.

Click sul titolo per leggere...

Add Comment Filed Under [ .Net 2.0 ]