Che dire? Più ci penso (e sperimento), più mi convinco che:
- Con l'avvento dei generics, le collection tipizzate servono a molto poco se lavorate con un Domain Model: il DAL e le classi di servizio possono tranquillamente usare ICollection<T> per scambiarsi insiemi di istanze dei "bussolotti". BTW, dico Collection perchè, come ho già riportato più volte, List è pensata per un uso incapsulato e non pubblico: se non sapete perchè, potrebbe essere una buona idea seguire la sessione di Adrian durante il workshop "Architecture Days"
- Definire "anemico" un Domain Model significa poco o nulla: la domanda corretta è: "Quale è il corretto livello di anemia per il mio Domain Model?". Ok, il DM definisce "both data and behaviour" (cit.) ma io resto convinto del fatto che la persiostenza sia un "servizio" e non un "comportamento". Insomma, per me la PI (Persistance Ignorance) è alla base di tutto, così come l'uso di un approccio POxO-like (Plain Old Java/CLR Objects): se non l'aveste capito, su Active Record "as is" pende una spada di Damocle non indifferente
- Unit Of Work è business e non DAL, e su questo non ci piove. Su Identity Map invece continuo ad avere dubbi, perchè avrei motivi per vederlo bene da entrambe le parti (e viceversa)
(continua)
Technorati tags: software architecture