2012-05-24 20 views
9

क्या कोई भी डब्ल्यूसीएफ सेवा और एएसपी.नेट वेब एपीआई के बीच वास्तविक अंतर साझा कर सकता है? किस परिदृश्य में हमें डब्ल्यूसीएफ सेवा और एएसपी.नेट वेब एपीआई का उपयोग करना होगा।डब्ल्यूसीएफ सेवा बनाम एएसपी.नेट वेब एपी

+2

संभव डुप्लिकेट: http://stackoverflow.com/questions/9348639/wcf-vs-asp-net-web-api –

उत्तर

9

http://mattmilner.com/Milner/Blog/post/2012/02/28/WebAPI-or-WCF.aspx, इस मुद्दे पर कोई बेहतरीन पोस्ट से: "WCF इमारत सेवाओं जहां के लिए रूपरेखा बनी हुई है आप परिवहन लचीलापन की परवाह करते हैं। वेब एपीआई सेवाओं के निर्माण के लिए ढांचा है आप HTTP के बारे में परवाह करते हैं। "

11

डब्ल्यूसीएफ वेब एपीआई माइक्रोसॉफ्ट के सेवा ढांचे की अगली पीढ़ी है।

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

सबसे प्रचलित उपयोग केस (आईएमओ), अतिरिक्त डेटा के लिए ब्राउज़र से AJAX अनुरोधों के माध्यम से वेब अनुप्रयोगों को समर्थन प्रदान करने के लिए डब्ल्यूसीएफ सेवाओं का उपयोग कर रहा है। साथ ही, जब डब्ल्यूसीएफ मूल रूप से पेश किया गया था, तब से एप्लिकेशन के लिए http का उपयोग करके एपीआई प्रदान करना आम हो गया है।

इस वजह से, नया डब्ल्यूसीएफ वेब एपीआई सेवा आधारभूत संरचना को सरल बनाने और http परिवहन प्रोटोकॉल मानने का प्रयास है।

यदि आप एक नया वेब एप्लिकेशन बना रहे हैं, तो मैं नई वेब एपीआई का उपयोग करूंगा। मैं केवल डब्ल्यूसीएफ सेवाओं का उपयोग करने पर विचार करता हूं अगर मुझे किसी अन्य सिस्टम के साथ किसी अन्य सिस्टम के साथ संवाद करने की आवश्यकता होती है।


WCF चैनल वास्तुकला

http://msdn.microsoft.com/en-us/library/ms729840.aspx

WCF वेब एपीआई

http://www.asp.net/web-api

+1

क्रेग की काफी सिर पर कील यहाँ मारा। WebAPI = POX/JSON सेवाओं के साथ कुछ भी करने के लिए। डब्ल्यूसीएफ आईपीसी/नेटटीसीपी/एसओएपी/आरपीसी समेत बाकी सब कुछ करता है। – leon

0

वेब सेवा

यह साबुन के आधार पर और एक्सएमएल रूप में डेटा लौट रहा है। यह केवल HTTP प्रोटोकॉल का समर्थन करता है। यह ओपन सोर्स नहीं है लेकिन एक्सएमएल को समझने वाले किसी भी ग्राहक द्वारा इसका उपभोग किया जा सकता है। इसे केवल आईआईएस पर होस्ट किया जा सकता है।

WCF

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

WCF बाकी

WCF बाकी सेवा आप webHttpBindings सक्षम करने के लिए के रूप में WCF का उपयोग करें। यह क्रमश: [WebGet] और [WebInvoke] विशेषताओं द्वारा HTTP GET और POST क्रियाओं का समर्थन करता है। अन्य HTTP क्रियाओं को सक्षम करने के लिए आपको उस विशेष क्रिया के अनुरोध को स्वीकार करने के लिए आईआईएस में कुछ कॉन्फ़िगरेशन करना है।एसवीसी फाइलें वेबगेट की आवश्यकता वाले पैरामीटर का उपयोग करके पैरामीटर के माध्यम से डेटा पास करना आवश्यक है। UriTemplate को निर्दिष्ट किया जाना चाहिए यह XML, JSON और ATOM डेटा प्रारूप का समर्थन करता है।

वेब एपीआई

यह आसान और सरल तरीके के साथ HTTP सेवाओं के निर्माण के लिए नए रूपरेखा है। वेब एपीआई ओपन सोर्स .NET Framework पर REST-ful सेवाओं के निर्माण के लिए एक आदर्श मंच है। WCF बाकी सेवा के विपरीत, यह (यूआरआई, अनुरोध/प्रतिक्रिया हेडर, कैशिंग, संस्करण, विभिन्न सामग्री प्रारूपों की तरह) पूरे HTTP की featues यह भी इस तरह के मार्ग, नियंत्रक, कार्रवाई के परिणाम, फिल्टर, मॉडल बाइंडरों के रूप में MVC सुविधाओं का समर्थन करता का उपयोग , आईओसी कंटेनर या निर्भरता इंजेक्शन, यूनिट परीक्षण जो इसे अधिक सरल और मजबूत बनाता है। इसे एप्लिकेशन या आईआईएस में होस्ट किया जा सकता है। यह हल्के वजन वास्तुकला और उन उपकरणों के लिए अच्छा है जिनके पास स्मार्ट फोन की तरह सीमित बैंडविड्थ है। प्रतिक्रियाएँ JSON, एक्सएमएल या जो कुछ भी प्रारूप आप एक MediaTypeFormatter के रूप में जोड़ना चाहते हैं में वेब एपीआई MediaTypeFormatter द्वारा प्रारूपित हैं।

करने के लिए जिसे WCF या वेब एपीआई के बीच चयन

चुनें WCF जब आप एक सेवा है कि विशेष स्थितियों जैसे एक तरह से संदेश, संदेश कतार, द्वैध संचार आदि का समर्थन करना चाहिए बनाना चाहते हैं WCF जब आप चुनें एक सेवा तेजी से परिवहन चैनलों का उपयोग कर सकते हैं कि उपलब्ध होने पर, इस तरह के टीसीपी, नाम पाइप्स, या शायद यूडीपी (WCF 4.5 में), और आप के रूप में भी HTTP का समर्थन करने के लिए जब अन्य सभी परिवहन चैनलों उपलब्ध नहीं हैं चाहता हूँ बनाना चाहते हैं। जब आप HTTP पर एक संसाधन उन्मुख सेवाओं (यूआरआई, अनुरोध/प्रतिक्रिया हेडर, कैशिंग, संस्करण, विभिन्न सामग्री प्रारूपों की तरह) का उपयोग नहीं से भरा सुविधाओं का उपयोग कर सकते हैं कि बनाना चाहते हैं वेब एपीआई का चयन करें। जब आप ब्राउज़र, मोबाइल, आईफोन और टैबलेट सहित ग्राहकों की एक विस्तृत श्रृंखला में अपनी सेवा का खुलासा करना चाहते हैं तो वेब एपीआई चुनें।

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