WCF में वेब संदर्भ और सेवा संदर्भ के बीच अंतर क्या है? डब्ल्यूसीएफ में कौन बेहतर है?
WCF में वेब संदर्भ और सेवा संदर्भ के बीच अंतर क्या है? डब्ल्यूसीएफ में कौन बेहतर है?
जवाबों:
यहां निम्न-स्तरीय उत्तर यह है कि एक वेब संदर्भ एक क्लाइंट प्रॉक्सी क्लास बनाएगा जो आपके कोड को WSDL के माध्यम से वर्णित वेब सेवा से बात करने की अनुमति देता है और SOAP या HTTP GET के माध्यम से संचार करता है (अन्य पोस्टरों से संकेत मिलता है कि यह केवल ASMX है, लेकिन वेब सन्दर्भ जावा-आधारित वेब सेवाओं या पायथन-आधारित या रूबी से इतनी देर तक बात कर सकते हैं जब तक वे सभी WSDL से बात करते हैं और WS-I अंतर-मानक के अनुरूप होते हैं)।
एक सेवा संदर्भ एक क्लाइंट प्रॉक्सी क्लास बनाएगा जो WCF- आधारित सेवा के साथ संचार करता है: इस बात की परवाह किए बिना कि WCF सेवा एक वेब सेवा है या नहीं।
एक वेब संदर्भ आपको किसी भी तकनीक पर आधारित किसी भी सेवा के साथ संवाद करने की अनुमति देता है जो WS-I बेसिक प्रोफाइल 1.1 को लागू करता है, और संबंधित मेटाडेटा को WSDL के रूप में उजागर करता है। आंतरिक रूप से, यह क्लाइंट की तरफ ASMX संचार स्टैक का उपयोग करता है।
एक सेवा संदर्भ आपको किसी भी तकनीक के आधार पर किसी भी सेवा के साथ संवाद करने की अनुमति देता है जो डब्ल्यूसीएफ द्वारा समर्थित कई प्रोटोकॉलों में से किसी को लागू करता है (जिसमें डब्लूएस-आई बेसिक प्रोफाइल तक सीमित नहीं है)। आंतरिक रूप से, यह क्लाइंट पक्ष पर WCF संचार स्टैक का उपयोग करता है।
ध्यान दें कि ये दोनों परिभाषाएँ काफी व्यापक हैं, और दोनों में ऐसी सेवाएँ शामिल हैं जो .NET में नहीं लिखी गई हैं।
यह पूरी तरह से संभव है (हालांकि अनुशंसित नहीं है) एक वेब संदर्भ जोड़ने के लिए जो डब्ल्यूसीएफ सेवा को इंगित करता है, जब तक कि डब्ल्यूसीएफ समापन बिंदु basicHttpBinding
या कुछ संगत कस्टम संस्करण का उपयोग करता है ।
सेवा संदर्भ जोड़ना संभव है जो ASMX सेवा की ओर इशारा करता है। नया कोड लिखते समय, आपको हमेशा एक सेवा संदर्भ का उपयोग करना चाहिए , क्योंकि यह अधिक लचीला और भविष्य-प्रमाण है।
Client
प्रत्यय के साथ एक वर्ग के लिए देखो ।
सेवा संदर्भ WCF सेवाओं के सभी प्रकार के संदर्भ जोड़ने के लिए नया इंटरफ़ेस है (वे वेब सेवाएँ नहीं हो सकते हैं) जबकि वेब संदर्भ विशेष रूप से ASMX वेब संदर्भों से संबंधित है।
आप सेवा के संदर्भ में उन्नत विकल्पों के माध्यम से वेब संदर्भों का उपयोग कर सकते हैं (यदि मैं सही ढंग से याद करता हूं)।
मैं सेवा संदर्भ का उपयोग करूंगा क्योंकि जैसा कि मैं समझता हूं, यह दोनों का नया तंत्र है।
सेवा संदर्भ एंडपॉइंट और बाइंडिंग के साथ सौदा करते हैं, जो पूरी तरह से विन्यास योग्य हैं। वे आपको किसी भी परिवहन प्रोटोकॉल (HTTP, टीसीपी, साझा मेमोरी आदि) के माध्यम से अपने क्लाइंट प्रॉक्सी को डब्ल्यूसीएफ के लिए इंगित करते हैं।
वे WCF के साथ काम करने के लिए डिज़ाइन किए गए हैं।
यदि आप एक WebProxy का उपयोग करते हैं, तो आप HTTP पर WCF का उपयोग करने के लिए अपने आप को बहुत बाध्यकारी हैं
ध्यान रखने वाली एक और बात यह है कि सर्विस इंटरफेस के लिए नया यूआई आपको अपने प्रॉक्सी क्लास को बनाने के तरीके के बारे में अधिक लचीलापन देगा। उदाहरण के लिए, यह आपको मौजूदा dll में डेटा अनुबंधों को मैप करने की अनुमति देगा, यदि वे मेल खाते हैं (वास्तव में यह डिफ़ॉल्ट व्यवहार है)।