मैं क्यों जवाब दे रहा हूं:
मुझे इन दोनों प्रौद्योगिकियों के बीच अंतर को समझने में बहुत समय लगा। मैं उन सभी बिंदुओं को यहां रखूंगा जो मुझे लगता है कि "अगर मेरे पास इन बिंदुओं की तलाश में उस समय था, जब मैं इस बारे में सोच रहा था, तो मैंने अपनी आवश्यक तकनीक का चयन करने का निर्णय पहले ही कर लिया है।"
सूचना का स्रोत:
Microsoft® Visual Studio® 2015 अनलेशेड
आईएसबीएन -13: 978-0-672-33736-9 आईएसबीएन -10: 0-672-33736-3
क्यों ASP.NET वेब एपीआई और WCF:
ASP.NET वेब एपीआई और WCF की प्रौद्योगिकियों की तुलना करने से पहले, यह समझना महत्वपूर्ण है कि वेब सेवाओं को बनाने के लिए वास्तव में दो शैलियों / मानक हैं: REST (प्रतिनिधि राज्य स्थानांतरण) और SOAP / WSDL। SOAP / WSDL मूल मानक था जिस पर वेब सेवाएँ निर्मित की गई थीं। हालांकि, इसका उपयोग करना कठिन था और इसमें भारी संदेश प्रारूप (जैसे एक्सएमएल) था जिसने प्रदर्शन को कम कर दिया था। REST- आधारित सेवाएँ जल्दी ही विकल्प बन गईं। वे लिखना आसान है क्योंकि वे HTTP (GET, POST, PUT, DELETE) के बुनियादी निर्माणों का लाभ उठाते हैं और आमतौर पर छोटे संदेश स्वरूपों (जैसे JSON) का उपयोग करते हैं। परिणामस्वरूप, REST- आधारित HTTP सेवाएँ अब लेखन सेवाओं के लिए मानक हैं जो वेब को सख्ती से लक्षित करती हैं।
आइए ASP.NET वेब एपीआई के उद्देश्य को परिभाषित करें
ASP.NET वेब एपीआई REST- आधारित HTTP वेब सेवाओं को विकसित करने के लिए Microsoft की तकनीक है। (यह बहुत पहले Microsoft के ASMX की जगह ले चुका था, जो SOAP / WSDL पर आधारित था।) वेब एपीआई HTTP प्रोटोकॉल पर आधारित मजबूत सेवाओं को लिखना आसान बनाता है, जो सभी ब्राउज़र और देशी उपकरण समझते हैं। यह आपको अपने एप्लिकेशन का समर्थन करने और अन्य वेब एप्लिकेशन, टैबलेट, मोबाइल फोन, पीसी और गेमिंग कंसोल से कॉल करने के लिए सेवाएं बनाने में सक्षम बनाता है। कभी-कभी मौजूद वेब कनेक्शन का लाभ उठाने के लिए लिखे गए अधिकांश एप्लिकेशन किसी तरह से HTTP सेवाओं का उपयोग करते हैं।
आइए अब WCF के उद्देश्य को परिभाषित करते हैं:
इंटरनेट पर संचार करना हमेशा सबसे कुशल साधन नहीं है। उदाहरण के लिए, यदि क्लाइंट और सेवा दोनों एक ही तकनीक (या यहां तक कि एक ही मशीन) पर मौजूद हैं, तो वे अक्सर संवाद करने के लिए एक अधिक कुशल साधन (जैसे टीसीपी / आईपी) पर बातचीत कर सकते हैं। सेवा डेवलपर्स ने खुद को वही विकल्प बनाने के लिए पाया जिससे वे बचने की कोशिश कर रहे थे। उन्हें अब कुशल आंतरिक सेवाओं को बनाने और इंटरनेट पर व्यापक पहुंच पाने में सक्षम होने के बीच चयन करना होगा। और, अगर उन्हें दोनों का समर्थन करना था, तो उन्हें अपनी सेवा के कई संस्करण बनाने पड़ सकते हैं या अपनी सेवा तक पहुँचने के लिए कम से कम अलग-अलग परदे के पीछे रहना होगा। यह समस्या Microsoft द्वारा WCF के साथ हल की गई है ।
WCF के साथ, आप सीमाओं के लिए चिंता किए बिना अपनी सेवा बना सकते हैं। फिर आप कॉलिंग क्लाइंट के आधार पर WCF को अपनी सेवा को सबसे कुशल तरीके से चलाने की चिंता कर सकते हैं। इस कार्य को प्रबंधित करने के लिए, WCF समापन बिंदु की अवधारणा का उपयोग करता है। आपकी सेवा में कई समापन बिंदु (डिज़ाइन समय पर या परिनियोजन के बाद कॉन्फ़िगर किए गए) हो सकते हैं। प्रत्येक समापन बिंदु इंगित करता है कि सेवा कॉलिंग क्लाइंट का समर्थन कैसे कर सकती है: वेब पर, रीमोटिंग के माध्यम से, Microsoft संदेश कतारबद्ध (MSMQ), और अधिक के माध्यम से। WCF आपको अपनी सेवा कार्यक्षमता बनाने पर ध्यान केंद्रित करने में सक्षम बनाता है। यह चिंता करता है कि कॉलिंग क्लाइंट के साथ सबसे कुशलता से कैसे बात करें। इस तरह, एक एकल WCF सेवा कुशलतापूर्वक कई अलग-अलग क्लाइंट प्रकारों का समर्थन कर सकती है।
डब्ल्यूसीएफ का उदाहरण:
उदाहरण पर विचार करें:
ग्राहक डेटा अनुप्रयोगों के बीच साझा किया जाता है। प्रत्येक एप्लिकेशन को एक अलग प्लेटफॉर्म पर लिखा जा सकता है, और यह एक अलग स्थान पर मौजूद हो सकता है। आप ग्राहक इंटरफ़ेस को WCF सेवा में साझा कर सकते हैं जो साझा ग्राहक डेटा तक आम पहुँच प्रदान करता है। यह डेटा को केंद्रीकृत करता है, दोहराव को कम करता है, सिंक्रनाइज़ेशन को समाप्त करता है और प्रबंधन को सरल करता है। इसके अलावा, WCF का उपयोग करके, आप कॉलिंग क्लाइंट के लिए समझ में आने वाले तरीके से काम करने के लिए सर्विस एंडपॉइंट्स को कॉन्फ़िगर कर सकते हैं। WCF सेवा में ग्राहक डेटा के केंद्रीकृत उपयोग के साथ चित्र पहले से उदाहरण दिखाता है।
निष्कर्ष:
i) वेब एपीआई कब चुनें:
इस बात से कोई इंकार नहीं है कि ASP.NET Web API का उपयोग करके बनाई गई REST- आधारित HTTP सेवाएं वेब सेवाओं के निर्माण के लिए मानक बन गई हैं। ये सेवाएं वेब डेवलपर्स निर्माण सेवाओं के लिए एक आसान, सरल दृष्टिकोण प्रदान करती हैं। वेब डेवलपर्स HTTP GET और POST को समझते हैं और इस प्रकार इस प्रकार की सेवाओं के लिए अच्छी तरह से अनुकूल होते हैं। इसलिए, यदि आप HTTP पर लक्षित सेवाओं को सख्ती से लिख रहे हैं, तो ASP.NET वेब एपीआई तार्किक विकल्प है।
ii) डब्ल्यूसीएफ कब चुनना है:
WCF तकनीक तब उपयोगी होती है जब आपको विभिन्न प्रोटोकॉल और संदेश प्रारूपों के आधार पर कई सर्विस एंडपॉइंट्स का समर्थन करने की आवश्यकता होती है। Microsoft BizTalk जैसे उत्पाद मजबूत सेवाओं को बनाने के लिए WCF का लाभ उठाते हैं जो वेब के साथ-साथ विभिन्न मशीन-टू-मशीन कॉन्फ़िगरेशन के माध्यम से उपयोग किए जा सकते हैं। हालांकि, आपको स्थानीय से कनेक्ट होने पर टीसीपी / आईपी पर संचार करने वाले एप्लिकेशन को लिखना होगा। नेटवर्क और HTTP पर काम करता है जब नेटवर्क के बाहर, WCF आपका जवाब है ।
चेतावनी दी:
वेब डेवलपर अक्सर WCF को विकसित करने के लिए अधिक कठिन और जटिल के रूप में देखते हैं। इसलिए, यदि आप मल्टीप्रोटेकोल सेवाओं की आवश्यकता का पूर्वाभास नहीं करते हैं, तो आप संभवतः ASP.NET वेब एपीआई से चिपके रहेंगे।