Implementasikan IExtensibleDataObject pada kelas Base

Saat ini kami memiliki beberapa layanan WCF yang mengekspos model domain kami secara langsung. Dengan kata lain, kami tidak memiliki lapisan DTO untuk dipetakan antara lapisan domain dan layanan kami. Saya tidak punya pilihan selain langsung menghiasi objek domain kami dengan [DataContract] dan [DataMember]. Saya ingin mengimplementasikan IExtensibleDataObject pada semua objek domain kami yang terekspos di kabel. Adakah yang melihat ada yang salah dengan penerapan IExtensibleDataObject di kelas dasar? Jadi saya akan memiliki:

[DataContract]
public EntityBase:IExtensibleDataObject{///IExtensibleDataObject Impl}

[DataContract] 
public Person:EntityBase{}

[DataContract]
public Employee:Person{}

Terima kasih sebelumnya


person WcfDev    schedule 11.01.2010    source sumber
comment
Kode Anda seharusnya berfungsi dengan baik. Faktanya, jika Anda melihat kode yang dihasilkan oleh svcutil, Anda akan melihat kode yang mirip dengan milik Anda. Lihat tautan ini untuk info lebih lanjut: msdn.microsoft. com/en-us/library/   -  person Kwal    schedule 12.01.2010


Jawaban (1)


Terima kasih Matt. Saya kira saya tahu itu berfungsi dengan baik, tetapi pertanyaan saya lebih berkaitan dengan desain SOA. Saya tahu di dunia OO ini baik-baik saja, tetapi karena objek domain saya juga berfungsi sebagai DTO, saya khawatir menambahkan rantai warisan ini akan menyebabkan masalah di kemudian hari. Apakah ada orang lain yang mengimplementasikan IExtensibleDataObject? Jika demikian, apakah Anda menerapkan IExtensibleDataObject pada semua kontrak data Anda atau pada kelas dasar?

person Community    schedule 12.01.2010
comment
Saya minta maaf karena saya salah memahami apa yang Anda tanyakan. Dari perspektif SOA murni, tidak diinginkan untuk memiliki mekanisme seperti IExtensibleDataObject karena dapat menutupi berbagai hal dari perspektif kontrak. Meski begitu, menurut saya idenya adalah demi kenyamanan. Berikut postingan bagus yang berisi pro (postingan itu sendiri) dan kontra (komentar pertama): bloggingabout.net/blogs/vagif/archive/2009/03/29/ - person Kwal; 15.01.2010