ASP.NET WebApi बनाम MVC? [बन्द है]


140

ASP.NET MVC नियंत्रकों के साथ आप विभिन्न स्वरूपों में अपने डेटा को उजागर कर सकते हैं। AspNetWebAPI को API बनाने के लिए स्पष्ट रूप से डिज़ाइन किया गया है, लेकिन मैं आसानी से MVC नियंत्रकों के साथ कर सकता हूं, मेरे लिए यह स्पष्ट नहीं है कि पारंपरिक MVC नियंत्रकों की तुलना में यह किन मामलों में बेहतर होगा। मुझे ऐसे परिदृश्यों में दिलचस्पी है जहाँ WebApi के लाभ स्पष्ट हैं और यह मेरे अनुप्रयोगों में एक और जटिलता परत जोड़ने के योग्य होगा।

प्रश्न: MVC के संबंध में asp.net WebApi का उपयोग करने के क्या फायदे और / या नुकसान हैं?



11
यह मेरे लिए मज़ेदार है कि ये "बनाम" प्रश्न कितने बेतरतीब हैं या तो तुरंत बंद हो जाते हैं या इस स्तर के वोटों पर चढ़ जाते हैं।
cbmeeks

10
गरर। मैं उन "नफरत के रूप में भी बहुत" बंद बैनर से नफरत है। इसलिए कई बार मुझे इस तरह के महान प्रश्न मिलते हैं। और अधिक बार तो नहीं उनके पास भी महान जवाब हैं। तो क्या हुआ अगर यह बहुत व्यापक है। विशेषज्ञ यहीं हैं और विकिपीडिया या किसी अन्य मंच पर नहीं। इसलिए उन्हें अपनी बात करने दो और रास्ते से हट जाओ।
निहारिका

जवाबों:


47

WebApi WCF या SOAP जैसी औपचारिक सेवा के बजाय HTTP पर उजागर होने वाली सेवाओं को बनाने की अनुमति देता है। एक अन्य अंतर यह है कि WebApi कैसे Http प्रोटोकॉल का उपयोग करता है और इसे सही मायने में प्रथम श्रेणी Http नागरिक बनाता है।

अद्यतन: ASP.NET कोर, वेब एपीआई को MVC प्रोजेक्ट प्रकार में एकीकृत किया गया है। ApiControllerवर्ग में समेकित है Controllerवर्ग। अधिक पर: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

तुलना, चर्चा और ट्यूटोरियल का एक प्रासंगिक लिंक:

यहां छवि विवरण दर्ज करें


20
असहमत हैं कि अन्य पद समान है। दूसरी पोस्ट वास्तव में WCF बनाम WebAPI के बारे में है।
शेन कोर्ट्रेल

तकनीकी रूप से यह कहते हुए कि WCF वेब एपीआई, दूसरी पंक्ति पर उल्लेख करता है कि इसे अब Asp.net web api में विलय कर दिया गया है और यह स्वयं होस्टिंग का समर्थन करता है। मैंने हाल ही में एक से अधिक लिंक को अपडेट किया है। आशा है कि मदद मिलेगी।
युसुबोव

संदर्भों को अपडेट किया।
यूसुबोव

23

WebAPI OData से बाहर निकलता है, इसलिए आपको OData का उपयोग करने के सभी फायदे मिलते हैं। उदाहरण के लिए, WebAPI के साथ:

  • क्वेरी विकल्प जैसे $ फ़िल्टर, $ टॉप, $ ऑर्डरबी इत्यादि।
    • पारंपरिक एमवीसी नियंत्रकों के साथ आपको इन्हें स्वयं लागू करने की आवश्यकता है।
  • प्रारूप का मानकीकरण
    • OData क्लाइंट हैं जो आपके RESTful API के अंतर्निहित प्रारूप को समझेंगे।

5
की तरह। मैं oData का समर्थन कर सकता हूं, लेकिन केवल यदि आप कार्रवाई को 'क्वेरी करने योग्य' विशेषता के साथ सजाते हैं, तो कम से कम आरसी के रूप में।
ईबोरल

14

Asp.Net वेब एपीआई VS Asp.Net MVC 1 । Asp.Net MVC का उपयोग वेब एप्लिकेशन बनाने के लिए किया जाता है जो दृश्य और डेटा दोनों को लौटाता है लेकिन Asp.Net वेब एपीआई का उपयोग आसान और सरल तरीके से पूर्ण विकसित HTTP सेवाओं को बनाने के लिए किया जाता है जो केवल डेटा नहीं देखते हैं।यहां छवि विवरण दर्ज करें

। वेब एपीआई .NET फ्रेमवर्क पर REST-ful सेवाओं का निर्माण करने में मदद करता है और यह सामग्री-बातचीत का भी समर्थन करता है (यह सबसे अच्छा प्रतिक्रिया प्रारूप डेटा तय करने के बारे में है जो क्लाइंट द्वारा स्वीकार्य हो सकता है। यह JSON, XML, ATOM या अन्य स्वरूपित डेटा हो सकता है। ), स्व होस्टिंग जो एमवीसी में नहीं हैं।

। वेब API विशेष रूप से JSON, XML या किसी अन्य अनुरोध में स्वीकार्य शीर्ष लेख के आधार पर डेटा लौटने का भी ध्यान रखता है और आप इसके बारे में चिंता नहीं करते हैं। MVC केवल JSONResult का उपयोग करके JSON प्रारूप में डेटा लौटाता है।

। वेब एपीआई में अनुरोध को HTTP क्रियाओं के आधार पर मैप किया जाता है, लेकिन MVC में इसे एक्शन नाम पर मैप किया जाता है।

। Asp.Net वेब एपीआई नया फ्रेमवर्क है और कोर ASP.NET फ्रेमवर्क का हिस्सा है। वेब एपीआई में मौजूद मॉडल बाइंडिंग, फिल्टर, रूटिंग और अन्य एमवीसी फीचर्स एमवीसी से अलग हैं और नए System.Web.Http असेंबली में मौजूद हैं। MVC में, ये विशेषताएँ System.Web.Mvc के साथ मौजूद हैं। इसलिए वेब एपीआई का उपयोग Asp.Net और स्टैंड अलोन सर्विस लेयर के रूप में भी किया जा सकता है।

। आप उन्नत AJAX अनुरोधों को संभालने के लिए किसी एकल प्रोजेक्ट में वेब API और MVC कंट्रोलर को मिला सकते हैं जो JSON, XML या किसी अन्य प्रारूप में डेटा वापस कर सकते हैं और पूर्ण विकसित HTTP सेवा का निर्माण कर सकते हैं। आमतौर पर, इसे वेब एपीआई सेल्फ होस्टिंग कहा जाएगा।

7 । जब आपने MVC और Web API कंट्रोलर को मिलाया है और आप प्राधिकरण को लागू करना चाहते हैं तो आपको MVC के लिए दो फ़िल्टर बनाने होंगे और Web API के लिए एक और क्योंकि दोनों अलग हैं।

8 । इसके अलावा, वेब एपीआई हल्के वजन की वास्तुकला है और वेब एप्लिकेशन को छोड़कर इसे स्मार्ट फोन एप्लिकेशन के साथ भी इस्तेमाल किया जा सकता है।

मूल स्रोत यहाँ है


13

समानताएँ

1) दोनों ashrerequest के लिए ihhtphandler से विरासत में मिला है, इसलिए मूल रूप से apicontroller या mvc नियंत्रक दोनों web.http के आसपास आवरण हैं।

अंतर: 1) mvc नियंत्रक बहुत भारी है यदि आप इसकी परिभाषा से गुजर सकते हैं तो आप देख सकते हैं कि कितने इंटरफेस और इसका उपयोग किया गया आधार कोड है, वेब एपीआई लाइटर कंट्रोलर है और इसके उत्तीर्ण मापदंडों द्वारा अनुरोध को अलग करता है (हाँ हम इसे भी बदल सकते हैं! )

2) एमवीसी कंट्रोलर में बहुत सारे फीचर्स होते हैं जैसे यह रिटर्न व्यूज, एक्शन रिजल्ट, जावास्क्रिप्ट रिजल्ट आदि लेकिन वेब एप में या तो यासन या XML है

3) एपीआई रेस्टफुल (गेट, पोस्ट, पुट, डिलीट, ऑप्शन) सेवाओं को लागू करने के लिए है, जो स्वतंत्र रूप से किसी भी होस्ट कर सकते हैं, जहां बिना किसी विचार के, एमवीसी कंट्रोलर कैंट सपोर्ट करता है, क्योंकि यह विचारों के साथ मजबूती से एकीकृत है।


1
यह ध्यान देने योग्य है कि आप अभी भी MVC के साथ व्यवहार की तरह API को पूरा कर सकते हैं जैसे कि JSONResult, जैसे MVC एक्शन परिणाम का उपयोग करके। हालांकि आपने बताया कि MVC नियंत्रक भारी है। इसके अलावा जिस तरह से वेब एपीआई नियंत्रकों को लागू किया जाता है वह एमवीसी की तुलना में एपीआई बनाने के लिए अधिक अनुकूल है।
ग्रिजली पीक सॉफ्टवेयर

12

यह छवि मामले के अंतर और समानता को दिखाने के लिए लगती है। मुझे उम्मीद है कि मदद करना मेरे लिए दिलचस्प है।

यहां छवि विवरण दर्ज करें


10

कुछ बिंदु पर आप ASP.NET MVC को सभी एक साथ भूल सकते हैं। यदि आप एक .NET डेवलपर हैं, लेकिन आप एक सिंगल-पेज एप्लिकेशन (उदाहरण के लिए कोणीय का उपयोग करके) बनाना चाहते हैं, तो आप ASP.NET MVC के साथ आने वाले सभी अनावश्यक ब्लोट के बिना एक RESTful सेवा (WebAPI) के लाभ चाहते हैं।


5

ASP.NET MVC और ASP.NET वेब एपीआई दोनों अलग-अलग उद्देश्य के लिए उपयोग कर रहे हैं

ASP.NET

ASP.NET वेब एप्लिकेशन बनाने के लिए तीन रूपरेखाएँ प्रदान करता है: वेब फॉर्म, ASP.NET MVC और ASP.NET वेब पेज। सभी तीन रूपरेखाएं स्थिर और परिपक्व हैं, और आप उनमें से किसी के साथ महान वेब एप्लिकेशन बना सकते हैं। कोई फर्क नहीं पड़ता कि आप कौन सा ढांचा चुनते हैं, आपको हर जगह ASP.NET के सभी लाभ और सुविधाएँ मिलेंगी।

प्रत्येक फ्रेमवर्क एक अलग विकास शैली को लक्षित करता है। आप जो चुनते हैं, वह आपकी प्रोग्रामिंग परिसंपत्तियों (ज्ञान, कौशल और विकास के अनुभव) के संयोजन पर निर्भर करता है, जिस प्रकार का एप्लिकेशन आप बना रहे हैं, और जिस विकास दृष्टिकोण के साथ आप सहज हैं। सभी तीन चौखटे ASP.NET के भविष्य के रिलीज में समर्थित, अद्यतन और बेहतर होंगी।

MVC

ASP.NET MVC आपको गतिशील वेबसाइट बनाने के लिए एक शक्तिशाली, पैटर्न-आधारित तरीका देता है जो चिंताओं को अलग करने में सक्षम बनाता है और यह आपको सुखद, चुस्त विकास के लिए मार्कअप पर पूर्ण नियंत्रण देता है। ASP.NET MVC में कई विशेषताएं शामिल हैं जो नवीनतम वेब मानकों का उपयोग करने वाले परिष्कृत अनुप्रयोगों को बनाने के लिए तेज, टीडीडी-अनुकूल विकास को सक्षम करती हैं।

वेब एपीआई

ASP.NET वेब एपीआई एक ढांचा है जो HTTP सेवाओं का निर्माण करना आसान बनाता है जो ब्राउज़रों और मोबाइल उपकरणों सहित क्लाइंट की एक विस्तृत श्रृंखला तक पहुंचते हैं। ASP.NET वेब एपीआई .NET फ्रेमवर्क पर Restful अनुप्रयोगों के निर्माण के लिए एक आदर्श मंच है।

आप यहाँ पर अधिक फॉर्म पढ़ सकते हैं http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html


3

ASP.NET MVC HTML के आउटपुट को आसान बनाने पर केंद्रित है। ASP.NET वेब एपीआई कच्चे डेटा के उत्पादन को आसान बनाने पर केंद्रित है।

WebForms की दुनिया में, ASP.NET MVC .aspx पृष्ठों के बराबर होगा और ASP.NET वेब API .asmx होगा।


2

Asp.Net MVC का उपयोग वेब एप्लिकेशन बनाने के लिए किया जाता है जो दृश्य और डेटा दोनों को लौटाता है लेकिन Asp.Net वेब एपीआई का उपयोग आसान और सरल तरीके से पूर्ण विकसित HTTP सेवाओं को बनाने के लिए किया जाता है जो केवल डेटा नहीं देखते हैं।

वेब एपीआई .NET फ्रेमवर्क पर REST-ful सेवाओं का निर्माण करने में मदद करता है और यह सामग्री-बातचीत का भी समर्थन करता है (यह सबसे अच्छा प्रतिक्रिया प्रारूप डेटा तय करने के बारे में है जो क्लाइंट द्वारा स्वीकार्य हो सकता है। यह JSON, XML, स्वयं होस्टिंग हो सकता है जो नहीं हैं। एमवीसी में।

वेब API विशेष रूप से JSON, XML या किसी भी अन्य अनुरोध में स्वीकार्य शीर्ष लेख के आधार पर डेटा लौटने का ध्यान रखता है और आप इसके बारे में चिंता नहीं करते हैं। MVC केवल JSONResult का उपयोग करके JSON प्रारूप में डेटा लौटाता है।


1

आमतौर पर, वेबएपीआई डेटा सेवाओं के लिए उपयोग किया जाता है जहां एमवीसी अधिक प्रकार के आउटपुट उत्पन्न कर सकते हैं।

WebAPI सुनिश्चित करने के लिए जिस तरह से हम डेटा सेवाएँ बना सकते हैं, उसे सरल बनाता है। यह इस उद्देश्य के लिए साफ और आसान है। एमवीसी कुछ और उपकरणों के साथ आता है।

MVC किसी भी आउटपुट को उत्पन्न कर सकता है WebAPI आउटपुट कर सकता है। MVC में टेम्प्लेट से जेनरेट करने वाले आउटपुट आसानी से हासिल किए जा सकते हैं। मुझे WebAPI में ऐसा करने का कारण नहीं मिल रहा है। PHP डेवलपर्स और पुराने एएसपी प्रोग्रामर को अतीत के इस रवैये का पता चल सकता है, जहां आप अंदर सी # कोड से जुड़ी HTML फाइलें बना सकते हैं।

WebAPI- डेटा MVC - डेटा, UI / HTML, XHTML, फ़ाइलें, टेम्पलेट आदि।

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