2008-09-22 5 views
7

क्या मुझे एक webservice से दृढ़ता से टाइप किए गए डेटासेट का पर्दाफाश करना चाहिए और इसे सीधे क्लाइंट में बांधना चाहिए? या एएसएमएक्स वेब सेवाओं के लिए और अधिक समझदार तरीके हैं? मैं सीआरयूडी संचालन कर रहा हूं (बनाएं, पढ़ें, अपडेट करें, हटाएं)।क्या मुझे एक webservice से दृढ़ता से टाइप किए गए डेटासेट को वापस करना चाहिए?

मुझे डेटासेट्स के साथ काम करने में निराशा होती है और उदाहरण के लिए जब तालिका में डालने के दौरान उदाहरण के लिए काम करना मुश्किल होता है। केवल एक रिकॉर्ड डालने पर या डेटासेट के भीतर किसी विशेष तालिका से केवल एक रिकॉर्ड प्राप्त करते समय पूरे डेटासेट को आगे बढ़ाने के लिए तार्किक प्रतीत नहीं होता है।

क्या कोई बेहतर तरीका है?

क्या मुझे शायद ऑब्जेक्ट्स में कनवर्ट करना चाहिए और webservice पर ऑब्जेक्ट्स का उपयोग करना चाहिए? वस्तुओं को पारित करने के लिए जगह पर रूपांतरण करना शायद उतना ही कठिन है?

उत्तर

4

यह आपकी इंटरऑपरेबिलिटी आवश्यकताओं पर निर्भर करता है। हालांकि डेटासेट एक्सएमएल को व्यावहारिक रूप से किसी भी पर्यावरण से संसाधित करना पूरी तरह से संभव है, लेकिन यह अनावश्यक रूप से प्राप्त हो सकता है। यदि आप अंतःक्रिया नहीं कर रहे हैं तो मैं निश्चित रूप से टाइप किए गए डेटासेट मार्ग की अनुशंसा करता हूं क्योंकि यह सी # और "बस काम करता है" से उपयोग करने के लिए बेहद सरल है।

2

ध्यान दें कि Dataset .NET का विशिष्ट है। यदि आप एपीआई को इंटरऑपरेबल बनाना चाहते हैं, तो आपको प्राथमिक डेटाटाइप और संरचनाओं के साथ रहना चाहिए (अन्यथा, गैर-एनईटी डेवलपर्स के लिए स्थिति बोझिल होने की संभावना है)।

फिर, वेब सेवाओं को एक ही यात्रा में बड़ी वस्तुओं को पारित करने के लिए डिज़ाइन नहीं किया गया है। यदि आपके डेटासेट में कुछ सौ से अधिक केबी हैं, तो आप क्लाइंट-साइड या सर्वर-साइड HTTP टाइमआउट (डिफ़ॉल्ट सेटिंग्स पर विचार करने) के साथ समाप्त होने की संभावना है।

सीआरयूडी परिचालनों के लिए, मैं बस डब्ल्यूएस के माध्यम से सीधे प्रत्येक ऑपरेशन का पर्दाफाश करने का सुझाव दूंगा।

0

मैं जोन्स से सहमत हूं ... वस्तुओं के साथ चिपकें और उन परिचालनों के प्रकार के लिए विशिष्ट तरीके जिन्हें आप बेनकाब करना चाहते हैं।

+0

तुम सिर्फ इस बात से सहमत करने के लिए, पोस्ट कर रहे हैं तुम क्यों नहीं किया था बस इसके बजाय ऊपर की ओर? –

+0

अच्छा सवाल, मस्तिष्क काम नहीं कर रहा था। माओन्स के लिए क्षमा और वोट - किया और किया। –

3

मैं कहूंगा कि ऑब्जेक्ट्स का चयन करें, डेटासेट को थोड़ी गन्दा हो सकती है। ऑब्जेक्ट्स देखने के लिए बहुत साफ हो सकता है, और निश्चित रूप से डीबग।

अमूर्त प्रकारों के साथ काम करते समय सावधान रहें, हालांकि यदि आपके पास सार तत्व/इंटरफ़ेस पर आधारित संग्रह हैं तो वे क्रमबद्ध करने के लिए थोड़ा दर्द हो सकते हैं। मुझे अतीत में इसकी समस्या थी, हालांकि, मैं found a solution

2

मुझे डेटासेट्स के साथ बड़ी सफलता मिली है (सर्वर का उपयोग करता है और दृढ़ता से टाइप किए गए डेटासेट को देता है, जबकि क्लाइंट इसे मानक डेटासेट के रूप में उपभोग करता है)। टॉमर की तरह चेतावनी दी जाती है, मुझे कोई इंटरऑपरेबिलिटी चिंताओं का लाभ नहीं है।

अद्यतन करने के संबंध में, संपूर्ण डेटासेट भेजें एक बुरा विचार है। GetChanges() नामक डेटासेट और डेटाटेबल ऑब्जेक्ट्स पर एक विधि है जो AcceptChanges() को कॉल करने के बाद से सभी संपादन वापस कर देगा। इससे आपको अपने नेटवर्क यातायात को कम रखने में मदद मिलनी चाहिए।