ASP.NET WebApi vs MVC? [zamknięte]

Z ASP.NET Kontrolery MVC możesz udostępniać swoje dane w różnych formatach. AspNetWebAPI jest przeznaczony jawnie do tworzenia API, ale mogę to łatwo zrobić ze sterownikami MVC, nie jest dla mnie jasne, w jakich przypadkach byłoby lepiej niż tradycyjne Kontrolery MVC. Interesują mnie scenariusze, w których korzyści z WebApi są oczywiste i warto byłoby dodać kolejną warstwę złożoności do Moich aplikacji.

Pytanie: Jakie są zalety i / lub wady za pomocą asp.net WebApi w odniesieniu do MVC ?

Author: EL Yusubov, 2012-07-05

10 answers

WebApi pozwala na tworzenie usług, które mogą być wyświetlane przez HTTP, a nie przez formalną usługę, taką jak WCF lub SOAP. Inną różnicą jest sposób, w jaki WebApi używa protokołu Http i czyni go prawdziwie pierwszorzędnym obywatelem Http.

UPDATE: The ASP.NET Core, Web API zostało zintegrowane z typem projektu MVC. Klasa ApiController jest konsolidowana do klasy Controller. Więcej na: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

A odpowiedni link do porównania, dyskusji i samouczków:

Tutaj wpisz opis obrazka

 38
Author: EL Yusubov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-22 03:58:07

WebAPI wypluwa OData, więc masz wszystkie zalety korzystania z OData. Na przykład z WebAPI otrzymujesz:

  • opcje zapytania, takie jak $filter, $top, $orderby, itp.
    • z tradycyjnymi kontrolerami MVC musisz je zaimplementować samodzielnie.
  • standaryzacja formatu
    • istnieją klienci OData, którzy zrozumieją podstawowy format interfejsu API RESTful.
 20
Author: Paolo del Mundo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-05 19:20:32

Podobieństwa

1) oba dziedziczą z ihhtphandler dla asyncrequest, więc zasadniczo apicontroller lub MVC controller są opakowaniem wokół sieci.http

Różnice: 1) mvc controller jest bardzo ciężki jeśli można przejść przez jego definicję można zobaczyć, jak wiele interfejsów i kod podstawowy został użyty, web api jest lżejszy kontroler i odróżnić żądanie przez jego przekazywane parametry(tak, możemy to zmienić zbyt!)

2) MVC controller ma zbyt wiele funkcji, takich jak zwraca widoki, wynik akcji, wynik javascript itp., ale w web api ma albo JSON, albo XML

3) API jest do implementacji Restful(get, post,put, delete, options) usługi, które mogą niezależnie może obsługiwać dowolne miejsce bez zależności od widoków, kontroler MVC nie może wspierać, że jak ściśle zintegrowany z widokami.

 12
Author: LostCoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-06 11:07:30

W pewnym momencie możesz chcieć zapomnieć ASP.NET MVC razem. Jeśli jesteś programistą. NET, ale chcesz zbudować aplikację jednostronicową (na przykład za pomocą Angular), będziesz chciał korzyści płynące z usługi RESTful (WebAPI) bez zbędnego wzdęcia, które pochodzi z ASP.NET MVC.

 9
Author: What-About-Bob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 12:39:30

Asp.Net Web API VS Asp.Net MVC Tutaj wpisz opis obrazka 1. Asp.Net MVC służy do tworzenia aplikacji internetowych, które zwracają zarówno widoki i dane, ale Asp.Net Web API służy do tworzenia pełnego http usługi w łatwy i prosty sposób, który zwraca tylko dane nie Widok.

2. Web API pomaga budować usługi REST-ful na. Net Framework i obsługuje również treść-negocjacje(chodzi o wybór najlepszego dane formatu odpowiedzi, które mogą być akceptowalny przez Klienta. Informatyka może być JSON, XML, ATOM lub inne sformatowane dane), własny hosting, który nie są w MVC.

3. Web API zajmuje się również zwracaniem danych w określonym formacie, takim jak JSON, XML lub inne oparte na nagłówku Accept w żądaniu i nie martw się o to. MVC zwraca tylko dane w formacie JSON korzystanie z JsonResult.

4. W Web API żądanie jest mapowane do akcji opartych na czasownikach HTTP ale w MVC jest mapowane do nazwy akcji.

5. Asp.Net Web API jest nowym frameworkiem i częścią rdzenia ASP.NET ramy. Model wiązania, filtrów, routingu i innych MVC funkcje istniejące w Web API różnią się od MVC i występują w nowy System.Www.Montaż Http. W MVC te cechy istnieją z w System.Www.Mvc. Dlatego Web API może być również używany z Asp.Net i jako samodzielna warstwa usługowa.

6. Możesz połączyć Web API i kontroler MVC w jednym projekt do obsługi zaawansowane żądania AJAX, które mogą zwracać dane w JSON, XML lub dowolnym inne formatują i budują pełną obsługę HTTP. Typowo, będzie to nazywane Web API self hosting.

7. Gdy masz mieszany kontroler MVC i Web API i chcesz zaimplementuj autoryzację, wtedy musisz utworzyć dwa filtry jeden dla MVC i inny dla Web API, ponieważ boty są różne.

8. Co więcej, Web API jest lekką architekturą i z wyjątkiem sieci aplikacja może być również używany z aplikacjami na smartfony.

Oryginalne źródło to tutaj

 9
Author: curiousBoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-16 23:49:05

Ten obraz wydaje się pokazywać różnice i podobieństwa w sposobie materii. Mam nadzieję, że to mi pomoże.

Tutaj wpisz opis obrazka

 8
Author: BehrouzMoslem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-10 13:56:20

ASP.NET MVC i ASP.NET Web api oba z nich są używane do różnych celów

ASP.NET

ASP.NET oferuje trzy frameworki do tworzenia aplikacji internetowych: formularze internetowe, ASP.NET MVC, oraz ASP.NET strony www. Wszystkie trzy frameworki są stabilne i dojrzałe, a za ich pomocą można tworzyć świetne aplikacje internetowe. Bez względu na to, jaki framework wybierzesz, otrzymasz wszystkie korzyści i funkcje ASP.NET wszędzie.

Każdy framework ma na celu inny rozwój styl. Wybór zależy od kombinacji zasobów programistycznych (wiedzy, umiejętności i doświadczenia programistycznego), rodzaju tworzonej aplikacji i podejścia programistycznego, z którym czujesz się komfortowo. Wszystkie trzy frameworki będą obsługiwane, aktualizowane i ulepszane w przyszłych wydaniach ASP.NET.

MVC

ASP.NET MVC to potężny, oparty na wzorcach sposób na budowanie dynamicznych stron internetowych, który umożliwia czyste oddzielenie problemów i daje pełną kontrola nad znacznikami dla przyjemnego, zwinnego rozwoju. ASP.NET MVC zawiera wiele funkcji, które umożliwiają szybki, przyjazny TDD rozwój do tworzenia zaawansowanych aplikacji, które korzystają z najnowszych standardów internetowych.

Web API

ASP.NET Web API to framework, który ułatwia tworzenie usług HTTP, które docierają do szerokiego grona klientów, w tym przeglądarek i urządzeń mobilnych. ASP.NET Web API jest idealną platformą do budowania aplikacji RESTful na. Net Ramy.

Możesz przeczytać więcej tutaj http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html

 4
Author: Nikhil VC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-25 11:00:45

Zwykle, WebAPI używane dla usług danych, gdzie MVC może generować więcej typów wyjść.

WebAPI na pewno upraszcza sposób, w jaki możemy tworzyć usługi danych. Jest czysty i łatwy do tego celu. MVC ma więcej narzędzi.

MVC może wygenerować dowolne wyjście WebAPI. Generowanie wyjść z szablonów można łatwo osiągnąć w MVC. Nie mogę znaleźć powodu, aby to zrobić w WebAPI. Programiści PHP i stary programista ASP mogą znać to nastawienie z przeszłości, gdzie potrafi budować pliki HTML związane z kodem C# wewnątrz.

WebAPI-DATA MVC-dane, UI / HTML, XHTML, pliki, szablony itp..

 1
Author: Eitan Revach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-16 09:19:58

ASP.NET MVC koncentruje się na ułatwianiu wyjścia HTML. ASP.NET Web API koncentruje się na ułatwianiu tworzenia surowych danych.

W świecie WebForms, ASP.NET MVC byłoby równoważne .strony aspx i ASP.NET Web API byłoby .asmx

 1
Author: Murugesan Nataraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-27 10:17:29

Asp.Net MVC służy do tworzenia aplikacji webowych, które zwracają zarówno widoki, jak i dane, ale Asp.Net Web API służy do tworzenia pełnowartościowych usług HTTP w łatwy i prosty sposób, który zwraca tylko dane, a nie Widok.

Web API pomaga budować usługi REST-ful na. Net Framework, a także wspiera negocjacje treści(chodzi o wybór najlepszego formatu odpowiedzi, który może być akceptowalny przez Klienta. może to być JSON, XML, self hosting, które nie są w MVC.

Web API również zajmuje się zwracaniem danych w określonym formacie,takim jak JSON, XML lub jakikolwiek inny na podstawie nagłówka Accept w żądaniu i nie martw się o to. MVC zwraca dane tylko w formacie JSON przy użyciu JsonResult.

 0
Author: Nikhil Fegade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 14:22:08