Разница между проектом MVC 5 и проектом Web Api

Я новичок в ASP.NET MVC и веб-API и пытаюсь получить основы. AFAIK, у нас есть шаблоны проектов в VS 2013, называемые MVC, Web API и Both of them together.

Я прочитал учебники и узнал, что мы можем создавать API, используя только MVC, а также шаблон веб-API.

Итак, Каковы различия между ними на основе Архитектуры и Использование?

Ответ 1

В принципе, контроллер Web API является контроллером MVC, который использует HttpMessageResponse как базовый тип своего ответа вместо ActionResponse. В большинстве случаев они одинаковы. Основное различие между типами проектов заключается в том, что тип проекта MVC Application добавляет веб-специфические вещи, такие как файлы по умолчанию CSS, JavaScript и другие ресурсы, необходимые для веб-сайта, которые не нужны для API.

MVC используется для создания веб-сайтов. В этом случае Controllers обычно возвращает a View (т.е. Ответ HTML) в запросы браузера. Веб-интерфейсы, с другой стороны, обычно используются для использования другими приложениями. Если вы хотите разрешить другим приложениям получать доступ к вашим данным/функциям, вы можете создать веб-API для облегчения доступа. Например, у Facebook есть API, чтобы разработчики приложений могли получать информацию о пользователях, использующих приложение. Веб-API не обязательно должны использоваться для общественного потребления. Вы также можете создать API для поддержки своих приложений. Например, мы создали веб-API для поддержки функциональности AJAX нашего веб-сайта MVC.

Microsoft изменила способ представления различных шаблонов. Теперь вместо использования разных шаблонов для разных типов проектов они поощряют разработчиков смешивать технологии ASP.NET внутри одного и того же проекта по мере необходимости. Microsoft называет это vNext.

ОБНОВЛЕНИЕ:. Для ядра ASP.NET Web API был интегрирован в проект проекта MVC 6, а класс ApiController объединяется в класс Controller. Дополнительная информация: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

Ответ 2

Мои два цента...

  • В ASP.Net MVC - MVCs Controller решает, что должно быть View - то есть контроллер решает, что пользователь должен "видеть" (на основе текущего сценария или контекста), когда они делают запрос.
  • В ASP.Net Web Forms страницы ASPX определяют, что пользователь должен "видеть" , когда они делают запрос.
  • Но в веб-API отсутствует контроль/власть для любой из функций веб-API, чтобы решить, что пользователь должен "видеть" , когда они делают запрос.

Web API - это не технология, связанная только с веб-сайтами. Он может использоваться для нескольких целей - не только для веб-сайтов. Поэтому он не знает значения rendering

Дополнительная литература