2012-02-26 15 views
40

के बीच क्या अंतर है मैंने पहले डब्लूसीएफ वेबएपीआई का उपयोग करके थोड़ा सा काम किया है और वास्तव में इसकी कई विशेषताएं पसंद आई हैं, मैं बस एएसपी.नेट वेब एपीआई के साथ खेल रहा हूं फिलहाल और यह पूरी तरह से अलग लगता है (आईई पूरी तरह से डब्ल्यूसीएफ से हटा दिया गया)।डब्ल्यूसीएफ वेब एपीआई और एएसपी.नेट वेब एपीआई

क्या किसी को पता है कि डब्ल्यूसीएफ वेबएपीआई की कौन सी विशेषताएं एएसपी.नेट 4 वेब एपीआई में शामिल हैं?

+4

यह एमवीसी वेबएपीआई नहीं है, यह एएसपी.नेट वेब एपीआई है और एएसपी.नेट एमवीसी के साथ किसी भी तरह से नहीं है। इस ब्लॉग पोस्ट को देखें: http://blogs.msdn.com/b/henrikn/archive/2012/02/23/using-asp-net-web-api-with-asp-net-web-forms.aspx आप कर सकते हैं यदि आप चाहें तो स्वयं को होस्ट करें। – tugberk

उत्तर

22

Ive इस पर इस के चारों ओर एक छोटे से अधिक पढ़ने किया और पाया एमएस लोगों द्वारा कुछ पन्नों:

http://wcf.codeplex.com/wikipage?title=How%20to%20Migrate%20from%20WCF%20Web%20API%20to%20ASP.NET%20Web%20API:

WCF वेब एपीआई कपोल-कल्पना मोटे तौर पर ASP.NET वेब एपीआई के लिए नक्शे के रूप में

इस प्रकार है

WCF वेब एपीआई -> ASP.NET वेब एपीआई

  • सेवा -> जाल एपीआई नियंत्रक
  • ऑपरेशन -> कार्रवाई
  • सेवा अनुबंध -> लागू नहीं
  • Endpoint -> लागू नहीं
  • यूआरआई टेम्पलेट्स -> ASP.NET रूटिंग
  • संदेश संचालकों -> एक ही
  • formatters -> एक ही
  • ऑपरेशन संचालकों -> फिल्टर, मॉडल बाइंडरों

और http://wcf.codeplex.com/discussions/319671

एकीकृत ढेर निम्नलिखित विशेषताएं समर्थन करता है:

  • आधुनिक HTTP प्रोग्रामिंग मॉडल
  • ASP.NET रूटिंग
  • सामग्री बातचीत और कस्टम formatters
  • मॉडल बंधन और सत्यापन के लिए
  • पूर्ण समर्थन
  • फ़िल्टर
  • क्वेरी संरचना
  • आसान इकाई परीक्षण करने के लिए
  • DependencyResolver के माध्यम से नियंत्रण (आईओसी) की बेहतर उलट
  • कोड आधारित विन्यास
  • स्व मेजबान
14

जो मैंने सीखा है, उससे माइक्रोसॉफ्ट ने यहां कुछ नामकरण भ्रम किया है।

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

नरक के रूप में उपयोग करना मुश्किल है (मेरे लिए कम से कम) और इसे बूट करने के लिए बहुत सारे बूटस्ट्रैप की आवश्यकता होती है, और अंततः उन्हें यह एहसास हुआ और सरल http सेवाओं (डब्ल्यूसीएफ आरईएसटी स्टार्टर किट किसी के लिए कुछ डिफ़ॉल्ट कॉन्फ़िगरेशन प्रदान करना शुरू कर दिया?) । एएसपी.नेट एमवीसी गति प्राप्त कर रहा था और कुछ सुविधाओं को प्रदान किया गया था (उदाहरण के लिए मिलान करने वाले स्वचालित तर्क) डब्ल्यूसीएफ में दिखने लगे।

घोषणा:: WCF वेब एपीआई अब ASP.NET वेब एपीआई है

अब जब कि स्थिति है! एएसपी.नेट वेब एपीआई एएसपी.नेट एमवीसी 4 बीटा के साथ जारी किया गया। WCF वेब एपीआई और इस साइट डब्ल्यूएलएल पर jQuery सामग्री 2012.

http://wcf.codeplex.com/wikipage?title=Getting%20started:%20Building%20a%20simple%20web%20api

के अंत तक हटा लिए WCF समर्थन और वह बेहतर imho है।

मुझे यकीन है कि डब्ल्यूसीएफ (यदि आपको कभी इसकी आवश्यकता है) के शीर्ष पर एएसपीएनटी एमवीसी 4 वेबपीआई होस्ट करना संभव है, लेकिन मुझे दस्तावेज नहीं मिल रहा है जो मुझे सही (या गलत) साबित कर सकता है।

अद्यतन (टिप्पणी के रूप में फिट नहीं कर सकते): रुकिए, के बीच और "WCF की जगह" "दूसरे करने के लिए एक पुस्तकालय/ढांचे से संचार प्रौद्योगिकी के एक सबसेट चलती" एक विशाल अलग है। मैं व्यक्तिगत रूप से सोचता हूं कि डब्ल्यूसीएफ को किसी प्रकार की संचार अवधारणा के लिए डिजाइन किया गया था और इसमें एक अच्छा डिजाइन है, लेकिन वितरित कंप्यूटिंग कुछ हद तक नए (और सरल) समाधानों पर चल रही है (फीचर समृद्ध एसओएपी बनाम दुबला ई लचीला आरईएसटी, हालांकि कई लोग अभी भी एक आरपीसी तरीके से आरईएसटी का उपयोग करते हैं), और मुझे लगता है कि इस प्रकार के प्रोग्रामिंग पैटर्न डब्ल्यूसीएफ की तुलना में एमवीसी आर्किटेक्चर में बेहतर फिट बैठते हैं। डब्ल्यूसीएफ के शीर्ष पर वेब सेवाओं के निर्माण/उपभोग करने के कुछ आसान तरीके को डिजाइन करने पर प्रयास किया गया था, लेकिन अंततः उन्हें पता चला कि यह सही समाधान नहीं था।

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

मुझे लगता है कि रूटिंग तंत्र अद्भुत है और जाने का सही तरीका है, और यदि आप बारीकी से देखते हैं, तो इसमें डब्ल्यूसीएफ में इसका हिस्सा शामिल था (विभिन्न नामों और प्रकारों के साथ, लेकिन पैटर्न वहां था)। तो हाँ, मुझे लगता है कि यदि एमएस डब्ल्यूसीएफ के उस हिस्से को खारिज नहीं करता है तो हम इसे करना चाहिए। सख्ती से जवाब देने के लिए, नहीं, मुझे नहीं लगता कि आपको कभी भी एएसपीनेट एमवीसी * में वेबगेट/वेबइनवोक मिलेगा, यह बस फिट नहीं है।

हाँ स्वयं-होस्ट शायद डब्ल्यूसीएफ का एकमात्र बिट है अभी एएसपी.नेट एमवीसी 4 में।

+0

हाँ मैं एमवीसी 4 वेब एपीआई को बता सकता हूं कि डब्ल्यूसीएफ वेबएपी के लिए प्रत्यक्ष प्रतिस्थापन के लिए डिज़ाइन किया गया है। लेकिन मुझे यकीन नहीं है कि यह कैसे काम करता है जैसा कि एएसपी पर डब्ल्यूसीएफ नहीं प्रदान किया जाता है, जो थोड़ा अजीब है। क्या एएसपी डब्ल्यूसीएफ को प्रतिस्थापित करना चाहता है? मैं यह भी सुनिश्चित नहीं करता कि डब्ल्यूसीएफ वेबएपीआई के नए बिट्स को नए उत्पाद में शामिल किया गया है, मैंने देखा कि टेस्ट क्लाइंट अभी तक नहीं है, लेकिन मैं रूटिंग (और अन्य क्षेत्रों) में मतभेदों के बारे में भी सोच रहा था, एएसपी.Net रूटिंग को प्रतिस्थापित करना है WCF WebAPI के लिए WebInvoke एक्सटेंशन या वे अभी भी कहीं हैं? –

+0

मुझे यकीन नहीं है कि आपका क्या मतलब है "मुझे यकीन है कि डब्ल्यूसीएफ के शीर्ष पर एएसपीएनटी एमवीसी 4 वेबपीआई होस्ट करना संभव है" वे मेरे लिए थोड़ा पारस्परिक रूप से अनन्य लगते हैं, क्या आपका मतलब 'सेल्फ होस्टिंग' है? –

+0

पोस्ट संपादित करें (टिप्पणी के रूप में फिट नहीं हो सकता है) – WDRust

14

यह WCF की तरह दिखता है ही किसी भी तरह मर रहा है या कम से कम होता जा रहा है यह बहुत कम महत्वपूर्ण था और ऐसा माना जाता था कि इसके फीचर सेट में भी बहुत कम विकास प्रयास किया गया है। New features in WCF स्वयं अधिक कॉस्मेटिक हैं।

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

+0

डब्ल्यूसीएफ HTTP, टीसीपी, आदि को सारण करने के बारे में सब कुछ था। दूसरी तरफ आरईएसटी स्टैक HTTP का उपयोग करने के बारे में है, इसलिए दोनों को अलग करना एक शुद्ध प्रोटोकॉल तटस्थ सेवा ढेर के रूप में डब्ल्यूसीएफ को रखने के नाम पर एक उत्कृष्ट कदम है। –

+9

-1: "एएसपी.नेट" वेब एपीआई यह मानने का कोई कारण नहीं है कि डब्ल्यूसीएफ मर रहा है या कम महत्वपूर्ण हो रहा है। यह विश्वास करने का एक कारण है कि आरईएसटी सेवाओं के लिए लक्षित बाजार डब्ल्यूसीएफ के लिए लक्षित बाजार नहीं है। –

+1

डब्ल्यूसीएफ एक बैक-एंड सेवा है, इस बीच वेबएपी फ्रंट-एंड सेवा –

9

डब्ल्यूसीएफ वेब एपीआई को एएसपी द्वारा प्रतिस्थापित किया गया है।नेट वेब एपीआई जो डब्ल्यूसीएफ वेब एपीआई से फीचर्स लेती है और एएसपीनेट एमवीसी की सुविधाओं के साथ विलय करती है। एएसपी.नेट वेब एपीआई एचटीटीपी सेवाओं के निर्माण और उपभोग और रीस्टफुल सेवा के निर्माण के लिए एक मंच के लिए एक नया (02/2012) ढांचा है।

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

संदर्भ

  1. CodePlex: WCF Web API is now ASP.NET Web API
  2. CodePlex: Daniel Roth on the Future of WCF
  3. Chanel9: Dan Roth on the new ASP.NET Web API
0

ASP.net वेब एपीआई हल्के और बाकी समर्थन इनबिल्ट है। यह मोबाइल एप्लिकेशन के लिए अधिक उपयुक्त है। सीसीएफ अधिक विकल्पों के साथ फूला हुआ है। यह इनमें से किसी एक को चुनने के लिए सिस्टम की जटिलता पर निर्भर करता है।

+0

-1 से अधिक है: "ब्लोटेड" एक बकवास शब्द है। इसके अलावा, डब्ल्यूसीएफ के पास आरईएसटी समर्थन है। –

1

this MSDN page पर पाया गया निम्न अंश इस दुविधा को अच्छी तरह से सारांशित करता है।

विश्वसनीय, सुरक्षित वेब सेवाओं को बनाने के लिए डब्ल्यूसीएफ का उपयोग करें जो विभिन्न प्रकार के परिवहन पर पहुंच योग्य है। विभिन्न प्रकार के ग्राहकों से उपलब्ध HTTP-आधारित सेवाओं को बनाने के लिए ASP.NET वेब API का उपयोग करें। यदि आप नई रीस्ट-स्टाइल सेवाओं को बना रहे हैं और डिज़ाइन कर रहे हैं तो एएसपी.नेट वेब एपीआई का प्रयोग करें। हालांकि डब्लूसीएफ आरईएसटी-स्टाइल सेवाओं को लिखने के लिए कुछ समर्थन प्रदान करता है, एएसपी.नेट वेब एपीआई में आरईएसटी के लिए समर्थन अधिक पूरा हो गया है और सभी भावी आरईएसटी फीचर सुधार एएसपी.नेट वेब एपीआई में किए जाएंगे। यदि आपके पास मौजूदा डब्लूसीएफ सेवा है और आप अतिरिक्त आरईएसटी एंडपॉइंट्स का पर्दाफाश करना चाहते हैं, तो डब्ल्यूसीएफ और वेबहट्प बाइंडिंग का उपयोग करें।

1

यहाँ वेब सेवा, WCF और वेब एपीआई http://goo.gl/T29A5B

वेब सेवा

  • सोप के आधार पर और वापसी एक्सएमएल डाटा
  • समर्थन केवल HTTP प्रोटोकॉल पर अच्छा लेख है। यह केवल HTTP प्रोटोकॉल का समर्थन करता है।
  • क्लाइंट द्वारा उपभोग जो एक्सएमएल एसओएपी सेवाओं को समझने में सक्षम है।
  • आईआईएस पर होस्ट कर सकते हैं। इसे केवल आईआईएस पर होस्ट किया जा सकता है।
  • सीखना और समझना आसान है।

WCF

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

वेब एपीआई (वेब ​​एपीआई 2,0)

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