Różnica między projektem MVC 5 a projektem Web Api

Jestem nowy ASP.NET MVC i Web API i próbuje zdobyć podstawy. AFAIK, mamy szablony projektów w VS 2013, nazwane jako MVC, Web API i Both of them together.

Przejrzałem samouczki i dowiedziałem się, że możemy stworzyć API używając samego MVC, jak również szablonu Web API.

Jakie są więc różnice między nimi, oparte na architekturze i wykorzystaniu ?

Author: loop, 2014-03-23

4 answers

W zasadzie, kontroler Web API jest kontrolerem MVC, który używa HttpMessageResponse jako podstawowego typu swojej odpowiedzi, zamiast ActionResponse. Są one takie same w większości innych aspektów. Główną różnicą między typami projektów jest to, że typ projektu MVC Application dodaje specyficzne dla sieci rzeczy, takie jak domyślne CSS, JavaScript pliki i inne zasoby potrzebne dla witryny internetowej, które nie są potrzebne dla API.

MVC służy do tworzenia stron internetowych. W tym przypadku Controllers zazwyczaj zwraca View (tj. odpowiedź HTML) do żądania przeglądarki. Z drugiej strony Web API są zwykle używane przez inne aplikacje. Jeśli chcesz zezwolić innym aplikacjom na dostęp do Twoich danych / funkcji, możesz utworzyć Web API, aby ułatwić ten dostęp. Na przykład Facebook ma API, aby umożliwić twórcom aplikacji dostęp do informacji o użytkownikach korzystających z aplikacji. Interfejsy API nie muszą być przeznaczone do użytku publicznego. Możesz także utworzyć API do obsługi własnych aplikacji. Na przykład stworzyliśmy Web API, aby obsługa funkcjonalności AJAX naszej strony internetowej MVC.

Microsoft zmienił sposób prezentacji różnych szablonów. Teraz zamiast używać różnych szablonów dla różnych typów projektów, zachęcają deweloperów do mieszania ASP.NET technologie wewnątrz tego samego projektu, w zależności od potrzeb. Microsoft nazywa to vNext.

UPDATE: For ASP.NET Core, Web API zostało zintegrowane z typem projektu MVC 6, A klasa ApiController została skonsolidowana do klasy Controller. Więcej informacji at: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

 170
Author: Elad Lachmi,
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-07-21 11:08:01

Moje dwa centy...

  1. W ASP.Net MVC {[9] – - MVC 's Controller decyduje, co powinno być View - tzn. kontroler decyduje, co użytkownik powinien "zobaczyć" (na podstawie aktualnego scenariusza lub kontekstu), kiedy składa żądanie.
  2. W ASP.Net Web Forms , Strony ASPX decydują o tym, co użytkownik powinien "zobaczyć" podczas składania żądania.
  3. [[7]} ale w Web API nie ma żadnej kontroli/władzy nad żadną z funkcji Web API, aby zdecydować, co użytkownik powinien " zobaczyć" kiedy złożą prośbę.

Web API nie jest technologią związaną tylko ze stronami internetowymi. Może być używany do wielu celów – nie tylko stron internetowych. Więc nie zna znaczenia rendering

Czytaj Dalej

  1. planowanie rozwiązań internetowych dziś: formularze internetowe, ASP.NET MVC, Web API i OWIN.
  2. WCF lub ASP.NET Web API? Moje dwa grosze w temacie
  3. Nowa generacja. NET – ASP.NET vNext
  4. pierwsze kroki z ASP.NET MVC 6
 66
Author: Lijo,
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-07-11 15:25:52

Kontroler MVC wywodzący się z klasy kontrolera. W Mvc możesz zwracać widoki. Mvc achitecture używa do tworzenia aplikacji. Jednak Web API są używane do dostarczania danych do różnych aplikacji.

Web Api uruchamia kontroler Api i nie zwraca widoku.

Uwaga: Możesz również utworzyć Web Api z kontrolera MVC, ale musisz zwrócić wynik jako jsonresult lub inne typy zwrotów obsługiwane przez web api.

 0
Author: Akshay Kapoor,
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
2018-04-11 10:27:19

Poza odpowiedziami już tutaj podanymi, warto zwrócić uwagę, że każdy kontroler, który dziedziczy z apicontroller i ma akcję z http verb POST, może mieć tylko jeden parametr wejściowy [FromBody]. Jeśli używasz kontrolera MVC (pochodzącego od' Controller'), możesz mieć wiele parametrów wejściowych post.

 0
Author: barrypicker,
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
2018-05-11 18:38:19