2008-10-16 4 views
5

का उपयोग करते समय ग्राहकों के लिए वर्जनिंग हैंडलिंग डेस्कटॉप क्लाइंट केंद्रीय सर्वर पर डब्ल्यूसीएफ का उपयोग कर डेटा दबाएंगे।डब्ल्यूसीएफ

जब स्कीमा बदलता है, तो कहें कि 100 कंप्यूटर डेस्कटॉप क्लाइंट का पुराना संस्करण है जबकि शेष नवीनतम निर्माण का उपयोग कर रहे हैं।

दोनों संस्करणों को संभालने के लिए सर्वर के अंत में मुझे क्या करना है? क्या मैं डब्ल्यूसीएफ या 2 स्मार्ट एंडपॉइंट में 2 एंडपॉइंट्स बना सकता हूं जो संस्करण को समझेंगे और तदनुसार कार्य करेंगे?

ध्यान दें: मैं ग्राहक से संस्करण जानकारी गुजर किया जाएगा (यदि आवश्यक है)

उत्तर

4

आप एक विकल्प है:

सबसे पहले आप अपने नामस्थान के साथ, वैसे भी अपने सेवा अनुबंध वर्ज़निंग किया जाना चाहिए; जैसे। सेवा संचालन में बदलाव तोड़ने पर http://idunno.org/2008/10/numptyhttp://idunno.org/2008/11/numpty में बदल जाएगा।

डेटा अनुबंध के साथ डितो; हालांकि यदि आप डेटा अनुबंध में जो भी कर रहे हैं वह additive है तो आप नए फ़ील्ड को वैकल्पिक के रूप में चिह्नित कर सकते हैं;

[DataMember(IsRequired="false")] 

और पुराने ग्राहक काम करेंगे। तो यह आपको इंगित करना चाहिए कि एक सेवा और पैरामीटर में पैरामीटर डेटा अनुबंध भी होना चाहिए; यह आपको लचीलापन देता है।

एमएसडीएन more

+0

मेरी भावनाएं बिल्कुल! –

+0

यह एक अच्छा जवाब है, लेकिन भविष्य के खोजकर्ताओं के लिए मैं बस उल्लेख करना चाहता हूं कि IsRequired वास्तव में डिफ़ॉल्ट रूप से गलत है इसलिए आपको इसे स्पष्ट रूप से सेट करने की आवश्यकता नहीं है। याद रखने का एक महत्वपूर्ण मुद्दा मौजूदा सदस्य के IsRequired ध्वज को झूठी से सच में कभी नहीं बदलता है, और कभी भी नए सदस्यों को सत्य में सेट नहीं करता है! सबसे महत्वपूर्ण रूप से एमएसडीएन लिंक पढ़ें :) – Joshua