डब्ल्यूसीएफ बनाम एएसपी .नेट वेब एपीआई


93

प्रत्येक तकनीक का उपयोग करने के पेशेवरों और विपक्ष क्या हैं?

WCF वेब Api अब Asp.net Asp.net वेब में विलय कर दी गई है। वेब एप अब स्वयं होस्टिंग का समर्थन करता है।

मैं अभी भी कल्पना करता हूं कि अगर मैं एक ही ऑपरेशन के लिए कई प्रोटोकॉल स्कीमाओं को उजागर करना चाहता हूं तो मैं अभी भी डब्ल्यूसीएफ की ओर झुकाव करूंगा या क्या एमएक्स एंड पॉइंट भी ऐसा कर सकता है?

इसके अलावा नई Asp.Net वेब एपीआई Wsdl को उजागर करती है? यदि नहीं, तो ग्राहक कैसे पता लगा पाएंगे कि उनके लिए कौन सा ऑपरेशन उपलब्ध है?

यकीनन Mvc की सबसे अच्छी विशेषता मॉडलबिंडर है। WCF समतुल्य कितना मजबूत है?

तो क्या कोई मुझे बता सकता है कि Asp.net web api तालिका में क्या लाभ लाता है? WCF अत्यधिक शक्तिशाली / स्केलेबल पसंद है, इमो। WCF मॉडल पर Mvc Web Api की एकमात्र चीज़ के बारे में शायद विकास में आसानी है, लेकिन इसका मतलब है कि अगर यह सड़क के नीचे एक गंभीर डिजाइन सीमा हो तो स्क्वाट होता है।


15
मुझे इस सवाल का शीर्षक थोड़ा भ्रामक लगता है। शीर्षक "एमवीसी 4 बनाम डब्ल्यूसीएफ वेब एपी" है, लेकिन सवाल डब्ल्यूसीएफ बनाम एएसपी .नेट एपीआई के साथ अधिक व्यवहार करता है। शीर्षक से मुझे लगा कि जो तुलना की जा रही थी, वह मानक MVC 4 फ्रेमवर्क (नियंत्रकों, मॉडल, दृश्य) बनाम .Net वेब एपीआई की रूपरेखा थी। किसी और को यह शीर्षक भ्रामक लगता है?
ब्रूसहिल

जवाबों:


72

सबसे पहले, मैं सुझाव देता हूं कि आप इस विषय पर मेरी पोस्ट पढ़ें: http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my- दो सेंट-ऑन-द subject.aspx

अपने WSDL प्रश्न के बारे में - चूंकि WebApi SOAP का उपयोग नहीं करता है, इसलिए इसे WSDL की आवश्यकता नहीं है, और यह एक निर्यात नहीं करता है। आप हाइपरमीडिया को संसाधनों की संभावित गतिविधि URL की सूची के साथ वापस करने के लिए उपयोग कर सकते हैं (इसे स्वयं-वर्णन संसाधन के रूप में देखें)


6
यह एक बहुत अच्छा लेखन है। सबसे अच्छा जो मैंने कभी देखा है। लेकिन मैं अब पहले से ज्यादा भ्रमित हूं। WebApi बहुत कुछ जोड़ता है, लेकिन अन्य समापन बिंदु को उजागर करने में असमर्थता बहुत प्रतिबंधात्मक लगती है। यदि आपके पास एक क्लाइंट है जो साबुन का उपयोग कर सकता है, तो उन्हें अब कार्रवाई का निर्माण करने के लिए मजबूर किया जाएगा और हाथ से परिणाम को पार्स किया जाएगा जब साबुन उनके लिए संपूर्ण संदर्भ उत्पन्न कर सकता था। तुम भी उन्हें और अधिक उन्नत साबुन सुविधा जैसे विश्वसनीय सत्र और एसिड लेनदेन से बाहर बंद कर देंगे ... आह।
अल्विन

2
@Alwyn - मुझे लगता है कि आपके द्वारा बताए गए सभी तथ्य सही हैं और इसलिए आपको भ्रमित नहीं करना चाहिए, बल्कि आपको निर्णय लेने में मदद करनी चाहिए - वेब एपीआई के अपने फायदे हैं, लेकिन यदि आपकी सेवा को अन्य प्रोटोकॉल सहित कई समापन बिंदुओं से अवगत कराना है, या आपके पास क्लाइंट ऑटो जनरेटिंग फीचर या सोप एडवांस्ड फीचर्स की मजबूत आवश्यकता है - इन पर विचार किया जा सकता है कि क्यों वेब API पर WCF को प्राथमिकता दी जाए
BornToCode

@BornToCode: क्लाइंट कोड WebAPI के साथ ऑटो-जनरेट किया जा सकता है। आप WebAPI कोड का उपयोग करके एक स्वैगर json फ़ाइल बना सकते हैं। उस json फ़ाइल को तब कोड जनरेटर द्वारा उपयोग किया जा सकता है जैसे कि स्वैगर-कोडगेन में बड़ी संख्या में लक्षित भाषाओं में ग्राहक कोड का उत्पादन करना।
अनपेक्षित रूप से, रिक्त

@unintentallyleftblank - IMHO यह अभी भी वेब API की तुलना में WCF के माध्यम से ग्राहक कोड उत्पन्न करने के लिए ऑटो के लिए "उपयोगकर्ता के अनुकूल" अधिक है।
बोर्नटोडकोड

15

चुनाव इस बात पर निर्भर करता है कि हम क्या करना चाहते हैं।

  1. ASP.NET वेब एपीआई केवल HTTP पर गैर-सोप आधारित सेवाओं के निर्माण के लिए एक रूपरेखा है - इसलिए इस ढांचे का उपयोग करके अधिक परिवहन प्रोटोकॉल उपलब्ध नहीं हैं।
  2. WCF / Windows संचार फाउंडेशन SOAP- आधारित संदेशों के आदान-प्रदान के लिए एक रूपरेखा है - यहाँ हम परिवहन प्रोटोकॉल का बहुत उपयोग करते हैं: HTTP, TCP, नामांकित पाइप, MSMQ, आदि ...

मुझे यकीन नहीं है कि डेटा की मात्रा के बारे में किसी के पास बेहतर प्रदर्शन है, शायद डब्ल्यूसीएफ क्योंकि हम कम प्रोटोकॉल का उपयोग कर सकते हैं। किसी भी टिप्पणी की सराहना की है।


2
कोई अपराध नहीं है, लेकिन HTTP सिर्फ एक एप्लिकेशन-लेयर प्रोटोकॉल है। इसका कोई अंतर्निहित प्रतिबंध नहीं है कि परिवहन-परत प्रोटोकॉल का क्या उपयोग किया जा सकता है।
smwikipedia

8

WCF वेब एपीआई मुख्य रूप से REST कार्यान्वयन पर केंद्रित है। यदि आप एक आरईएसटी कार्यान्वयन की स्थापना कर रहे हैं, तो मानक WCF बिट्स रियर में थोड़ा दर्द कर रहे हैं। यदि आप RESTful सेवाओं की स्थापना कर रहे हैं, तो आपको WCF Web API बहुत अच्छा अनुभव मिलेगा। यदि आप SOAP सेवाएँ सेट कर रहे हैं, तो WCF Web API आपका सबसे अच्छा दोस्त नहीं है, और आप अपनी सेवाओं के लिए WCF का उपयोग करना बेहतर समझते हैं।


2
हाँ, विन्यास एक दर्द है, लेकिन यह एक बार स्थापित लागत है। एक बार जब आप इसे कर लेते हैं, तो आप व्यवहार को बहुत कॉपी / पेस्ट कर सकते हैं और दूसरी सेवा को समाप्त कर सकते हैं। ज्यादातर समय आपको वेबगेट के साथ नए ऑपरेशन को टैग करके ही मिलता है। दूसरी ओर यदि आपको कभी ऐसा क्लाइंट मिलता है जो साबुन + डब्ल्यूएसडीएल का उपयोग करना चाहता है, तो यह कोड + परिनियोजित + क्यूए + बाकी के विपरीत सिर्फ एक विन्यास परिवर्तन है। तो Mvc Web Api कैसे बेहतर है?
अल्विन

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

0

इंट्रानेट / बी 2 बी साइटों के लिए डब्ल्यूसीएफ का उपयोग करें बी 2 सी / सी 2 सी / इंटरनेट साइटों के लिए वेब एपीआई ... एसओएपी / एक्सएमएल अभी भी इंट्रा-बिजनेस संचार के लिए मानक है n यह दूर नहीं जा रहा है !!!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.