EntityFramework over WCF

Ormai è appurato che sono un fanatico dei DTO (ne ho parlato qui e qui), ma voglio ugualmente segnalare questo articolo di Pablo M. Cibraro che spiega il perchè non debba essere mai esposta direttamente una classe di EntityFramework, bensì un DTO.
Riporto di seguito una frase che mi ha colpito particolarmente:

I do not know what the folks in Microsoft were thinking when they decided to enable a feature like this. They made a good work teaching us about how evil Datasets were for interoperability with other platforms, and now they came up with a solution like this, no way.

Sempre nello stesso post Pablo forza la mano sul DTO, consiglia AutoMapper e successivamente, in un’altro post, parla della nuova versione di EntityFramework 4.0, dell’implementazione POCO e di RIA Application, spiegando che, nonostante la prossima versione dell’O/RM permetta di decorare le classi con gli attributi DataContract e DataMember, questo tipo di approccio rimane sconsigliato.
Di fatto, un forte accoppiamento tra persistenza, contract e client è particolarmente pericoloso per il versioning del servizio; basti pensare che una entity di dominio può cambiare per qualsiasi motivo, ed in questo caso potrebbe essere necessario modificare il contract ed eventuali clients.
A detta di Pablo, un approccio del genere può risultare comodo unicamente per le RIA Applications, che ad oggi occupano solo una piccolissima parte delle applicazioni services oriented.

Ciauz


Comments