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

ОТДЫХ от asp.net 2.0

Я только что создал веб-сайт asp.net 2.0. Теперь мне нужно добавить веб-службу REST, чтобы я мог общаться с другим веб-приложением. Ранее я работал с 2 веб-сервисами SOAP, но не имел опыта с REST. Думаю, только пару дней все будет хорошо. после googling, я нашел это не так просто.

Вот что я нашел:

Нет NO REST из окна asp.net.

WCF REST Starter Kit Codeplex Preview 2 основывается на .net 3.5 и все еще в бета-версии

Сохранить пример ASP.NET

Веб-службы REST в ASP.NET 2.0 (С#)

Exyus

Обработка методов POST и PUT с Lullaby

Служба данных ADO.NET

...

Теперь мой вопрос,

a) Является ли REST-решение для .net 2.0? если да, то какой из них лучше всего подходит?

b) если мне нужно, насколько сложно перенести мой asp.net с 2.0 на 3.5? это так просто, как просто компилировать, или мне нужно изменить код много?

c) Стартовый комплект WCF REST достаточно хорош для использования в производстве?

d) Должен ли я сначала изучить WCF, затем стартовый комплект WCF REST? где лучше всего начать?

Я ценю любую помощь здесь.

Спасибо Wes

4b9b3361

Ответ 1

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

Вот пример из developer.com:

[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "/admin/post/{id}")]
void UpdatePost(string id, Post post);

Вышеприведенный код будет определен в интерфейсе для вашего веб-сервиса. Интерфейс создается автоматически при создании вашего проекта веб-службы WCF. Фактический код для функции будет помещен в класс, используемый для реализации веб-службы.

Просмотрите статью на developer.com для полного учебника. Сначала это может показаться подавляющим, если ваш новый для WCF, но после того, как вы погрузитесь в него, я уверен, что вы начнете быстро подбирать вещи. Вот ссылка на artile: http://www.developer.com/net/article.php/10916_3695436_1

Чтобы ответить на все ваши вопросы,

a) В .NET 2.0 вы сможете создавать сервисы RESTful, используя WSE2.0, но если у вас есть возможность использовать .NET 3.5, я бы настоятельно рекомендовал идти по маршруту WCF, поскольку он намного проще и разработан с учетом REST.

b) Преобразование вашего проекта не будет затруднительным. Это просто вопрос настройки новой версии фреймворка в настройках вашего проекта. Однако преобразование веб-службы из службы WSE2.0 в службу WCF будет немного сложнее. Самый простой способ сделать это - скопировать код из каждой из функций веб-службы в класс, в котором вы реализуете новую версию функции. Copy-Paste shinanigans:)

c) Я не уверен, что это за стартовый комплект, о котором вы говорите. Веб-службы RESTful должны полностью поддерживаться в WCF, который был полностью выпущен с 3.5

d) Было бы полезно понять WCF, по крайней мере, немного до начала, но это не crutial, чтобы полностью понять его, чтобы начать. Я бы порекомендовал хотя бы один раз прочитать статью MSDN в WCF, а затем начать работать. Я уверен, что вы столкнетесь с другими вопросами, когда начнете, но вы можете искать эти части, когда вы сталкиваетесь с ними.

В любом случае, надеюсь, эта информация поможет. Удачи вам.

Edit

В мире REST были внесены некоторые улучшения. Как упоминал Даррел Миллер в комментариях, WCF фактически не строился с учетом REST. Я неправильно говорил ранее. На самом деле структура построена с учетом SOAP, и атрибут WebInvoke заполняет пробел. Несмотря на то, что в этой теме много дискуссий (Web API vs WCF REST), ASP.NET Web API является новым вариантом для создания служб REST в .NET. Я бы настоятельно рекомендовал, чтобы любой, кто читает это сообщение и может использовать .NET 4.5 в своем проекте, рассматривает его как вариант.

Ответ 2

Если вам нужна инфраструктура, построенная с помощью REST, вы должны взглянуть на OpenRasta...

http://openrasta.org/

Ответ 3

Вы можете посмотреть, как использовать ASP.NET MVC в качестве платформы веб-сервисов RESTful. WCF, вероятно, способ пойти в долгосрочной перспективе, но MVC должен легко справиться с этим. Ваши действия нужно будет просто настроить для возврата JSON или XML, в зависимости от того, как вы хотите его сериализовать. MVC предлагает как JsonResult, так и полностью настраиваемый ContentResult - т.е. Вы сериализуете свой ответ на свойство строки в результате и задаете его тип и кодировку.

ПРИМЕЧАНИЕ: MVC требует 3.5 SP1, поэтому это не будет решением 2.0. Если вам требуется 2.0, вам нужно искать в другом месте.

Ответ 4

Используйте WCF REST.

Вы можете использовать его сегодня. Библиотека WCF REST готова к работе, пригодна для использования в производстве.

Стартовый комплект WCF (см. http://msdn.microsoft.com/en-us/netframework/cc950529.aspx) - это что-то еще. Он доставляет дополнительные вещи; он включает в себя набор шаблонов проектов VS, документов, образцов и несколько инструментов для создания приложений REST (клиент или сервер) с WCF. Один классный инструмент - это надстройка команды "Вставить Xml как тип" в Visual Studio.

С другой стороны, при создании клиента REST в общем случае я бы рекомендовал воспользоваться сборкой HttpClient в стартовом наборе (Microsoft.Http.dll). Он маленький, простой и полезный. Низкорисковая и высокоценная зависимость даже при текущем статусе "предварительного просмотра" Стартового набора.

Если вы потребляете только одну услугу REST, вам не нужна общая сборка Microsoft.Http.dll; вы можете сделать все, что он делает в некотором коде, который использует WebRequest. Но если вам нужен более общий гибкий класс для обработки запросов REST на стороне клиента, тогда возьмите этот файл Microsoft.Http.dll.

Ответ 5

Я не уверен в решении REST для 2.0. Поэтому я думаю, что WCF будет таким, каким вам придется идти с этим. MSDN имеет длинное введение в него.

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

3.0 и 3.5 на самом деле являются обновлением для библиотек, но CLR по-прежнему равно 2.0, поэтому, если используемые библиотеки не устарели или не изменены в новых рамках, все должно быть в порядке.

Ответ 6

Посмотрите этот CodeProject для начальной точки. Кажется несколько... храбрым. Модернизация WCF будет более чистой.

Ответ 7

ОТДЫХ, или RESTFUL Добавление этого в System.Web в web.config позволит http get и put.. aka REST-Like... но не полный отдых.

<System.Web>
  <webServices>
            <protocols>
                <add name="HttpSoap"/>
                <add name="HttpPost"/>
                <add name="HttpGet"/>
            </protocols>
        </webServices>
</System.Web>