2009-03-06 4 views
5

ऑब्जेक्ट्स .NET XML serializer का उपयोग कर डेटाबेस में क्रमबद्ध हैं। ऑब्जेक्ट समय के साथ बदल सकता है, और इसलिए एक ही समय में डेटाबेस में कई संस्करण मौजूद हैं।संस्करणों को क्रमबद्ध करने और deserialize करने के लिए सर्वोत्तम अभ्यास

अपने कोड को बनाने का सबसे अच्छा तरीका के लिए कोई सुझाव, ताकि आप इस ऑब्जेक्ट को नवीनतम संस्करण में अभी भी deserialize कर सकें। (इंटरफेस/मैप्स/मैनुअल सीरियलाइजेशन इत्यादि)

उत्तर

1

यह सब आपके आवेदन पर निर्भर करता है। क्या यह एक वितरित समृद्ध एप्लिकेशन है जहां पुराने अनुप्रयोगों को केंद्रीय डेटाबेस या अन्य स्रोत से नई डेटा ऑब्जेक्ट्स का सामना करना पड़ सकता है? (कार्यालय अनुप्रयोगों के पुराने संस्करणों की तरह नए दस्तावेज़ प्रारूपों से निपटने के कुछ तरीकों की आवश्यकता होती है।)

यदि ऐसा है, तो कस्टम स्कीमा संस्करण संख्या के साथ कस्टम क्रमबद्धता और deserialization, मैं कहूंगा। मैं प्रत्येक तत्व और विशेषता पर स्पष्ट मेटाडेटा डालूंगा, यह बताते हुए कि पाठक को तत्व/विशेषता (और यदि डिफ़ॉल्ट मान नहीं है) को समझना चाहिए या नहीं। यह निश्चित रूप से बहुत सारी जगह का उपभोग कर सकता है और कोड जटिलता बढ़ा सकता है ...

लेकिन उत्तर वास्तव में इस बात पर निर्भर करता है कि आप डेटाबेस के लिए क्रमबद्ध क्यों हैं। आप अपनी संबंधपरक क्षमताओं के लिए डेटाबेस का उपयोग करने में रुचि नहीं रखते हैं? अन्यथा, एक ओ/आर मैपिंग समाधान ब्याज का हो सकता है।

0

गुणों को हटाएं/नाम बदलें। केवल उन्हें जोड़ें।

सभी गुणों के लिए डिफ़ॉल्ट मान असाइन करें।

यह गारंटी देगा कि xml serializer पुराने ऑब्जेक्ट को नए ऑब्जेक्ट में deserialize करने में सक्षम हो जाएगा, और उस ऑब्जेक्ट में "sane" मान होंगे।

0

एलेक्स रीटबॉर्ट क्या कहता है।

तुम भी संभाल करने ISerializable इंटरफ़ेस को लागू कर सकते पुराने मूल्य के

2

धारावाहिक वस्तु में एक स्कीमा संस्करण नंबर रखें। कस्टम deserialization का उपयोग, पहले संस्करण विशेषता की जांच करें, और यदि यह एक पुराना संस्करण साबित होता है, तो इसे deserializing से पहले नवीनतम स्कीमा में अपग्रेड करें।

+0

मुझे लगता है कि यह सबसे लचीला समाधान है। –

2

Look here डब्ल्यूसीएफ डाटाकंट्रैक्ट वर्जनिंग पर सर्वोत्तम प्रथाओं के बारे में यह बात, यह वास्तव में आप जो चाहते हैं उससे थोड़ा अधिक विशिष्ट है, लेकिन ये पैटर्न आपके जैसी ही समस्या को हल करते हैं, आप उन्हें अपनी इच्छित तकनीक में उपयोग कर सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे