ASP.NET WebApi против MVC? [закрытый]
с ASP.NET контроллеры MVC вы можете предоставлять свои данные в разных форматах. AspNetWebAPI разработан явно для создания API, но я могу легко сделать это с помощью контроллеров MVC, мне не ясно, в каких случаях это было бы лучше, чем традиционные контроллеры MVC. Меня интересуют сценарии, в которых преимущества WebApi очевидны, и было бы достойно добавить еще один уровень сложности в Мои приложения.
вопрос: каковы преимущества и / или недостатки использования asp.net WebApi в отношении MVC ?
10 ответов:
WebApi позволяет создавать службы, которые могут быть представлены через HTTP, а не через формальную службу, такую как WCF или SOAP. Другое отличие заключается в том, как WebApi использует протокол Http и делает его действительно первоклассным гражданином Http.
обновление: ASP.NET ядро, веб-API был интегрирован в тип проекта MVC. Элемент
ApiControllerкласс консолидируется вControllerкласса. Больше: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6соответствующая ссылка, сравнения, обсуждения и учебники:
- MVC5 vs WebApi Project
- разница между ASP.NET MVC и ASP.NET Web API
- введение в ASP.NET ядро включает в себя MVC, Web API demos
- начало работы с ASP.NET Web API учебники
WebAPI выплевывает OData, поэтому вы получаете все преимущества использования OData. Например, с помощью WebAPI вы получаете:
- параметры запроса, такие как $filter, $top, $orderby и др.
- с традиционными контроллерами MVC вам нужно реализовать их самостоятельно.
- стандартизация формата
- есть клиенты OData, которые будут понимать основной формат вашего RESTful API.
сходство
1) оба наследует от ihhtphandler для asyncrequest так что в основном apicontroller или MVC контроллер оба являются оболочкой вокруг интернета.http
различия: 1) контроллер mvc очень тяжелый, если вы можете пройти через его определение, вы можете увидеть, сколько интерфейсов и базовый код он использовал, веб-api легче контроллер и различать запрос по его переданным параметрам ( да, мы можем изменить его тоже!)
2) контроллер MVC тоже имеет многие функции, такие как возвращаемые представления, результат действия , результат javascript и т. д., Но в веб-api есть либо JSON, либо XML
3) API предназначен для реализации Restful(get, post,put, delete, options) сервисов, которые могут независимо размещаться в любом месте без зависимости от представлений, контроллер MVC не может поддерживать это, поскольку он тесно интегрирован с представлениями.
в какой-то момент Вы можете забыть ASP.NET MVC все вместе. Если вы являетесь разработчиком .NET, но вы хотите создать одностраничное приложение (например, с помощью Angular) ,вам понадобятся преимущества службы RESTful (WebAPI) без всего ненужного раздувания, которое поставляется с ASP.NET MVC.
Asp.Net Web API VS Asp.Net MVC
1. Asp.Net MVC используется для создания веб-приложений, которые возвращают оба представления и данные, но Asp.Net Web API используется для создания полномасштабного HTTP услуги с легким и простым способом, который возвращает только данные не просматривать.
2. Web API помогает создавать службы REST-ful на платформе .NET Framework и он также поддерживает контент-переговоры(речь идет о выборе лучшего данные формата ответа, которые могут быть приемлемы для клиента. оно может быть JSON, XML, ATOM или другие форматированные данные), самостоятельный хостинг, который не в MVC.
3. Web API также заботится о возврате данных в определенном формате, например JSON, XML или любой другой на основе заголовка Accept в запросе и ты не волнуйся об этом. MVC возвращает данные только в формате JSON с помощью JsonResult.
4. В Web API запрос есть сопоставляется с действиями на основе команд HTTP но в MVC он сопоставляется с именем действия.
5. Asp.Net Web API-это новый фреймворк и часть ядра ASP.NET рамки. Привязка модели, фильтры, маршрутизация и другие MVC функции, существующие в веб-API, отличаются от MVC и существуют в новая система.Сеть.Собрание по протоколу HTTP. В MVC, эти возможности существуют в Система.Сеть.Mvc. Следовательно, веб-API также можно использовать с Asp.Net и как a автономное обслуживание слой.
6. Вы можете смешать Web API и MVC контроллер в одном проекте для обработки расширенные AJAX-запросы, которые могут возвращать данные в JSON, XML или любом другом формате другие формат и создание полномасштабной службы http. Типично, это будет называться веб-API self hosting.
7. Когда вы смешали MVC и Web API контроллер, и вы хотите, чтобы реализовать авторизацию, то вы должны создать два фильтра один для MVC и другой для Web API, так как оба они разные.
8. Кроме того, Web API - это легкая архитектура и кроме веб-интерфейса приложение его также можно использовать с приложениями для смартфонов.
первоисточник здесь
ASP.NET MVC и ASP.NET веб-api оба они используют для разных целей
ASP.NET
ASP.NET предлагает три фреймворка для создания веб-приложений: веб-формы, ASP.NET MVC, и ASP.NET веб-страницы. Все три структуры являются стабильными и зрелыми, и вы можете создавать отличные web-приложения с любым из них. Независимо от того, какие рамки вы выберете, вы получите все преимущества и возможности ASP.NET везде.
каждая структура цели в другом стиле развития. Тот, который вы выберете, зависит от комбинации ваших программных активов (знаний, навыков и опыта разработки), типа создаваемого приложения и подхода к разработке, с которым вам удобно. Все три платформы будут поддерживаться, обновляться и улучшаться в будущих выпусках ASP.NET.
MVC
ASP.NET MVC дает вам мощный, основанный на шаблонах способ создания динамических веб-сайтов, который позволяет чистое разделение проблем и это дает вам полный контроль над разметкой для приятного, гибкого развития. ASP.NET MVC включает в себя множество функций, которые позволяют быстро, TDD-дружественные разработки для создания сложных приложений, которые используют новейшие веб-стандарты.
Web API
ASP.NET Web API-это платформа, которая позволяет легко создавать службы HTTP, которые охватывают широкий спектр клиентов, включая браузеры и мобильные устройства. ASP.NET веб-API является идеальным платформа для создания приложений RESTful на платформе .NET Framework.
вы можете прочитать здесь больше форма http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
обычно, WebAPI используется для служб данных, где MVC может генерировать больше типов выходных данных.
WebAPI для уверен, что упрощает способ мы можем создавать службы данных. Это чисто и легко для этой цели. MVC поставляются с некоторыми другими инструментами.
MVC может генерировать любой вывод WebAPI может выводить. Генерация выходных данных из шаблонов может быть легко достигнута в MVC. Я не могу найти причину, чтобы сделать это в WebAPI. Разработчики PHP и старый программист ASP могут знать это отношение от прошлое, где вы можете создавать HTML-файлы, связанные с кодом C# внутри.
веб-API - данные В MVC - данных, пользовательского интерфейса/HTML, так и XHTML, файлы, шаблоны и т. д..
ASP.NET MVC ориентирован на упрощение вывода HTML. Веб ASP.NET API-интерфейс ориентирован на получение вывода сырых данных, легко.
в мире WebForms, ASP.NET MVC был бы эквивалентен .страницы aspx и ASP.NET веб-API будет .asmx
Asp.Net MVC используется для создания веб-приложений, которые возвращают как представления, так и данные, но Asp.Net веб-API используется для создания полномасштабных HTTP-сервисов с легким и простым способом, который возвращает только данные, а не просмотр.
Web API помогает создавать службы REST-ful через .NET Framework, а также поддерживает согласование контента(речь идет о выборе наилучших данных формата ответа, которые могут быть приемлемы для клиента. это может быть JSON, XML, self хостинг, которые не находятся в MVC.
Web API также заботится о возврате данных в определенном формате, таком как JSON,XML или любой другой, основанный на заголовке Accept в запросе, и вы не беспокоитесь об этом. MVC возвращает данные только в формате JSON с помощью JsonResult.



Comments