Ok, io e Janky non siamo d'accordo...

...E' evidente (ma lo sapevo :-) ). Da anni sostengo che i pattern non siano nè dogmi nè "la Forza", ma li paragono alle centurie di Nostradamus, poichè vanno interpretati. Chiunque, a partire dal famigerato workshop "Architecture & Management" di dicembre 2004, mi abbia sentito parlare di questo argomento si è "beccato" (e si sarà stufato, presumibilmente) di questa mia affermazione. Citando Fowler (non per "amore", bensì perchè dobbiamo pur basarci su una definizione), "the essence of an Active Record is a Domain Model in which the classes match very closely to the record structure of an underlying database". *Chi* o *cosa* effettui la persistenza non è determinante, poichè la capacità degli oggetti definiti in AR di "autopersistersi" è una caratteristica che (sempre stando a Fowler) è *tipicamente* (concetto differente da "sempre") implementata.

Poichè attribuire un significato "universale" alle espressioni "very closely" e "tipically" avrebbe una difficoltà, come dice un mio amico, pari solamente a quella di capire le donne, ho sempre definito AR come "il miglior object model che siamo in grado di far emergere dal database". Ovviamente, escludendo le implementazioni "manuali", il toolkit utilizzato è determinante il tal senso: Linq to SQL ha (ad esempio) un limitato supporto alla ereditarietà e capacità di mapping via xml, mentre CastleProject supporta i component, potendosi basare sull'engine di NHibernate. Entrambi permettono di modificare la struttura del grafo rispetto a quella del DB, quindi a voler essere fiscali dovremmo dire che entrambi non sono AR, ma... Mi sembrerebbe una tesi difficilmente sostenibile. Entrambi (meno male!) offrono ben di più del "minimo sindacale" previsto da AR, ma non mi sembrano paragonabili a NH o a EF.

Technorati Tags:

posted @ lunedì 26 novembre 2007 17:24

Print

Comments on this entry:

# re: Ok, io e Janky non siamo d'accordo...

Left by Raffaeu at 26/11/2007 17:40
Gravatar
Se il discorso è incentrato sulla 'teoria' beh allora fowler, per dare ragione a Janky, avrebbe dovuto scrivere 'the essence of an Active Record is a Domain Model in which the classes match very closely to the record structure of an underlying database and its behavior ...' poichè a parer mio, il metodo Save è un behavior del record e non una parte della struttura.
Comments have been closed on this topic.
«agosto»
domlunmarmergiovensab
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345