Ciao a tutti, in questi giorni sto avendo una ardua discussione al lavoro con il team e vorrei far capire loro perche' e' principalmente sbagliato serializzare un dominio medio/complesso.
Personalmente ritengo molto piu' ottimizzabile la trasformazione di una query di dominio in un semplice DTO che puo' essere inviato al Client tramite WCF e ritengo molto impegnativo il dover mantere serializzabile un intero dominio, specialmente se il dominio e' medio/complesso.
Mi piacere sapere un vostro parere a riguardo, se e quando serializzate i domini, perche' no e perche' si.
Sono residuato da un periodo di lavoro essenzialmente stressante :), per cui mi scuso per la tarda risposta.
Concordo, il dominio non dovrebbe sottostare a queste regole, e non dovrebbe nemmeno essere serializzabile. Dipende a mio avviso molto da quanto il dominio stesso è anemico. Se segui i principi di CQRS ad esempio avrai probabilmente domini con nemmeno proprietà visibili, ma solo metodi, e tutto viene gestito da domain events.
In generale però tutti i giorni ci troviamo con domini più o meno anemici, e quindi la serializzazione può essere un requisito. Una soluzinoe ibrida potrebbe essere questa, io ho ad esempio una classe base in cui tutte le proprietà /(siano esse private o meno) vengono tentute dentro un dizionario, ed ho un serializzatore specializzato che mi serializza lo stato dell'oggetto di dominio. In questo modo puoi un po salvare capra e cavoli.
alk.
--Blog Eng: http://www.codewrecks.com/blogBlog Ita: http://blogs.ugidotnet.org/rgmTwitter: http://twitter.com/alkampfer
Interessante questo approccio, sarebbe bello avere un' idea piu' dettagliata dell' implementazione. Che cosa passi tramite WCF, un DTO o un dizionario di chiavi, valori?
Per ora mi tengo leggero, normalmente utilizzo dto e quindi non ho tantissimi problemi, però ho necessità talvolta di spostare delle classi di dominio direttamente sul client, in questo caso utilizzo la serializzazione dello stato che attualmente è un semplice formato XML :).