Подтвердить что ты не робот

Если это WebAPI или asmx

Должен ли я использовать службу ASMX или веб-API ASP.NET для двух простых API?

Я хочу создать два простых API в моем проекте ASP.NET MVC. Один принимает три параметра (currentUserID, DataType, ActionName). Он возвращает их и XML-строку данных, которые они запросили. API используется клиентским кодом JavaScript. Другой API получает строку XML и использует ее на стороне сервера для выполнения действий в базе данных.

4b9b3361

Ответ 1

Я только что ответил на соответствующий вопрос:

Каково будущее структуры ASP.NET MVC после выпуска веб-API asp.net

В принципе, инфраструктурами, предоставляемыми Microsoft для разработки веб-служб, являются:

  • ASMX

    . XML-сервисы на основе SOAP.

  • WCF

    . Веб-службы, основанные на SOAP. Этими услугами были эволюция традиционных служб ASMX, и в основном они были направлены на отделение самой службы от транспортного протокола. Поэтому вы можете предоставить одну и ту же услугу с использованием нескольких конечных точек и, следовательно, нескольких протоколов (TCP, HTTP, Named Pipes, MSMQ, HTTPS). Эта гибкость пришла с проблемой конфигурации. Одна из основных жалоб в сообществе о WCF - утомительная и обширная конфигурация.

  • WEB API. На основе HTTP не в SOAP. Этот новый API - это новая структура для создания сервисов. Основное отличие от двух других предшественников состоит в том, что он основан на HTTP, а не на SOAP, поэтому вы можете использовать несколько HTTP-функций, таких как:

    • Он содержит заголовки сообщений, которые являются очень значимыми и описательными - заголовки, которые предлагают тип содержимого тела сообщений, заголовки, которые объясняют, как кэшировать информацию, как ее защищать и т.д.
    • использование глаголов для определения действий (POST, PUT, DELETE..)
    • он содержит тело, которое можно использовать для отправки любого контента
    • Он использует URI для идентификации как информационных путей (ресурсов), так и действий

    WEB API сосредоточен на написании сервисов, чтобы разоблачить их через HTTP (только на HTTP в данный момент). Если вы хотите открыть свою службу с использованием другого протокола, вам следует рассмотреть возможность использования WCF.

    WEB API основан на MVC (если вы хотите узнать причины, почему он основан на MVC, они просты)

    Еще одна цель веб-API WCF заключалась в том, чтобы включить известные концепции, которые помогут разработчикам преодолеть некоторые недостатки, с которыми они сталкиваются в WCF, такие как огромные конфигурации, чрезмерное использование атрибутов и инфраструктура WCF, которые плохо поддерживают тестирование. Таким образом, веб-API, использующие IoC, включали соглашение по сравнению с конфигурацией и пытались предложить более простую конфигурационную среду.

    ASP.NET MVC-инфраструктура с элегантной обработкой HTTP-запросов и ответов, а также поддержка простых в создании контроллеров казалась подходящим способом для создания этого нового типа услуг.

Учитывайте следующие моменты, чтобы выбрать между WCF или WEB API

  • Если вы намерены создавать службы, поддерживающие специальные сценарии - односторонние сообщения, очереди сообщений, дуплексную связь и т.д., тогда вам лучше выбрать WCF
  • Если вы хотите создавать службы, которые могут использовать быстрые транспортные каналы, когда они доступны, например TCP, Named Pipes или даже UDP (в WCF 4.5), а также вы хотите поддерживать HTTP, когда все остальные транспорты недоступны, вам лучше работать с WCF и использовать как привязки на основе SOAP, так и привязку WebHttp.
  • Если вы хотите создать ресурсоориентированные сервисы по HTTP, которые могут использовать полные функции HTTP, - определить управление кешем для браузеров, управление версиями и concurrency с помощью ETags, передать различные типы контента, такие как изображения, документы, HTML-страницы и т.д.., используйте шаблоны URI для включения URI задач в свои ответы, тогда новые веб-интерфейсы являются лучшим выбором для вас.
  • Если вы хотите создать многоцелевую услугу, которая может использоваться как ресурсо-ориентированная служба через HTTP, а также как SOAP-сервис RPC в стиле TCP, сначала поговорите со мной, так что я дам вам несколько указателей.

Для более детального сравнения:

http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec

Ответ 2

Если возможно, я бы использовал Web Api Controller в mvc4. Вы можете вернуть универсальный список или модель, которая будет автоматически обновляться, и автоматически выдаст данные в любой формат, например xml или json. Это довольно удивительно.

Ответ 3

Кажется, вы действительно много делаете с Views, поэтому я считаю, что веб-интерфейс будет более кратким решением на данный момент.