Что может сделать WCF WebHttp, чего не может ASP.NET MVC? - PullRequest
1 голос
/ 04 августа 2010

Пожалуйста, нет ответов "Они решают 2 разные проблемы", это одна и та же HTTP-запрос и ответ .То, что у вас есть представления / шаблоны в MVC, не означает, что вы должны их использовать.M_C достаточно хорош для обслуживания XML и JSON.

Пожалуйста, не отвечайте: «Это то, что Microsoft говорит, что вы должны делать».Если бы я так думал, я бы не задавал этот вопрос.Видимо людям не понравилось, как я сформулировал свой вопрос, но название очень ясно.Я хотел бы узнать, что может сделать WebHttp, чего не может MVC, или то, что могут оба, но с WebHttp это проще или мощнее.Я действительно ищу детали, а не описание высокого уровня, когда выбирать один из них.

Ответы [ 3 ]

8 голосов
/ 04 августа 2010

В приложении MVC намного больше накладных расходов. Поскольку вам действительно не нужно «переписывать» URL-адреса при обслуживании других служб (не чувствительных к SEO), или вам не нужны роботы Google, чтобы понять, что важно, вам это не нужно - и поэтому не требуются дополнительные затраты на маршрутизацию.

Сборки ASP.NET MVC, необходимые для основной функциональности MVC, содержат специфичные для представления методы, что делает их более крупными. Если ваша единственная цель - обслуживать JSON / XML, нет необходимости в методах расширения для создания текстовых полей, флажков и т. Д.

Также было бы проще выполнить модульные тесты для службы WCF, поскольку вам не нужно беспокоиться о фиктивных контроллерах, фиктивных контекстах и ​​т. Д. (Данный JSON-ответ - единственное, что вы предоставляете )

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

Одна акроним приходит на ум: ПОЦЕЛУЙ. :)

3 голосов
/ 07 августа 2010

Я до сих пор не решил проблему. Я попробую еще раз ...

Если вам нужен полнофункциональный веб-сайт с красивыми URL-адресами и архитектурой на основе MVC, ASP.NET MVC - это, безусловно, путь. Теперь я полностью понимаю, что это не то, о чем вы спрашиваете - и, честно говоря, ваш вопрос немного расплывчатый, так что на этот раз я не смогу его понять.

WebHTTP в .NET 4 представляет собой небольшое упрощение служб WCF, которые были введены еще в .NET 3, и соответствует тенденциям веб-разработки сегодня. WebHTTP имеет действительно обширную поддержку для настройки ваших URL-адресов, управления ответом, который будет трудным - или в основном просто много работы - чтобы достичь с обычным WCF, а также в MVC в этом отношении.

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

Вы можете достичь того же с MVC и WebHTTP, но, например, создать View намного проще с MVC, потому что это является частью его основной функции (на самом деле это аббревиатура). Изменение типа ответа от одного метода, с другой стороны, является тривиальной задачей в WebHTTP, в то время как в MVC это требует дополнительных действий. То же самое относится и к RESTful-сервису. WebHTTP был создан для подобных вещей - MVC не было.

Итог - вы можете достичь почти одинаковых результатов в обоих случаях, но они приспособлены для разных нужд.

Если бы это был не "правильный" ответ, возможно, вы могли бы предоставить некоторые сведения для вашего вопроса?

1 голос
/ 04 августа 2010

Они не имеют ничего общего друг с другом. WebHttp (для примера) создает точки входа ajax для ваших веб-сервисов. ASP.NET MVC - это серверная доставка HTML-страниц. И да, я знаю, что вы просили меня не давать вам этот ответ. Но это только потому, что я полагаю, что вы что-то упустили в своем понимании вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...