विशिष्ट परिदृश्य। हम ओल्ड-स्कूल एक्सएमएल वेब सेवाओं आंतरिक एक सर्वर फ़ार्म और कई वितरित और स्थानीय ग्राहकों के बीच संवाद स्थापित करने के लिए इस्तेमाल करते हैं। कोई तीसरा पक्ष शामिल नहीं है, केवल हमारे आवेदन हमारे और हमारे ग्राहकों द्वारा उपयोग किए जाते हैं।डब्ल्यूसीएफ - डोमेन ऑब्जेक्ट्स और IExtensibleDataObject
वर्तमान में हम एक्सएमएल WS से एक WCF/वस्तु आधारित मॉडल में जाने पर विचार कर रहे हैं और विभिन्न दृष्टिकोण के साथ प्रयोग किया गया है। उनमें से एक में सीधे तारों पर डोमेन ऑब्जेक्ट्स/एग्रीगेट्स को स्थानांतरित करना शामिल है, संभवतः उन पर डेटाकंट्रैक्ट विशेषताओं का आविष्कार करना।
डेटामेम्बर पर ऑर्डर प्रॉपर्टी का उपयोग करके IExtensibleDataObject और डेटाकंट्रैक्ट का उपयोग करके, हमें सरल संपत्ति संस्करण समस्याओं से निपटने में सक्षम होना चाहिए (याद रखें, हम सभी ग्राहकों को नियंत्रित करते हैं और आसानी से उन्हें अपडेट कर सकते हैं)।
मैं सुनवाई है कि हम तार पर समर्पित, स्थानांतरण-केवल डाटा ट्रांसफर ऑब्जेक्ट (DTOs) का उपयोग करना चाहिए रखने के लिए।
क्यों? क्या ऐसा करने का अभी भी कोई कारण है? हम सर्वर साइड और क्लाइंट साइड पर, उसी डोमेन मॉडल का उपयोग करते हैं, बेशक, संग्रहों को प्रीफ़िल करना आदि, केवल तभी सही और "जरूरी" माना जाता है। संग्रह गुण सेवा लोकेटर सिद्धांत और आईओसी का उपयोग सीधे एनएचबीर्नेट-आधारित "सेवा" को सीधे डेटा (सर्वर पक्ष पर) लाने के लिए, और डब्ल्यूसीएफ सर्वर फार्म से बात करने के लिए क्लाइंट साइड पर डब्ल्यूसीएफ "सेवा" क्लाइंट का आह्वान करने के लिए करते हैं।
तो - हम क्यों DTOs उपयोग करने के लिए की जरूरत है?
हाँ, अक्कद, ये बिल्कुल वैसे ही विचार हैं जो मैं भी कर रहा हूं। हम संभवतः एक ऐसे दृष्टिकोण के लिए जा रहे हैं जो इस तरह के मिश्रण को शुद्ध करता है, जहां उचित "इकाइयों" को स्थानांतरित किया जाता है, लेकिन शुद्ध व्यवसाय-प्रक्रिया प्रकार कॉल के लिए अधिक कमांड-आधारित "संदेश" प्रारूप कर रहा है। – HenningK