WCF против ASPX веб-методов против ASMX веб-методов - PullRequest
7 голосов
/ 03 декабря 2010

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

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

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

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

Наша кодовая база - .net, и мы смотрим на веб-методы ASPX (или ASHX), веб-методы ASMX и WCF (начиная с чтения WCF).

С точки зрения безопасности / доступа я обнаружил, что поддержание sessionid, членство возможно во всех трех. WCF кажется немного сложным в настройке. Я не смог сразу увидеть значение asmx, когда мы можем все сделать, просто используя webmethod в aspx (с небольшой настройкой).

Кроме того, при условии, что с ASP.NET MVC2 я мог бы также получить чистые URL для этих веб-методов.

Вопросы

Какой из них будет наиболее эффективным с точки зрения производительности и масштабируемости ? Любая причина, почему я должен выбрать WCF или ASMX?

Спасибо, что нашли время, чтобы прочитать этот пост и извинения за наивные вопросы, так как я новичок в .net.

РЕДАКТИРОВАТЬ Я вроде понимаю, что WCF - это путь. Просто чтобы понять эволюцию технологий, было бы хорошо, если бы кто-то смог пролить свет на то, почему веб-метод aspx отличается от asmx, когда подобные вещи (кроме открытия) могут быть выполнены обоими. Веб-методы aspx могут быть сделаны для возврата данных в других форматах (обычный текст, json). Кроме того, кажется, что мы можем создавать отдыхающие сервисы, используя ashx. Снова извиняюсь за наивные вопросы.

Ответы [ 3 ]

9 голосов
/ 03 декабря 2010

Вы должны использовать WCF для разработки веб-сервисов в .Net. WCF легко настраивается с множеством параметров безопасности, транспортных протоколов, сериализации, расширений и т. Д. Необработанная производительность также значительно выше. Также активно развивается WCF и добавлено много новых функций в версиях 3.5 и 4. Существуют также варианты, такие как службы данных WCF и службы RIA WCF. WCF 4.0 также имеет лучшую поддержку REST и JSON, которую вы можете напрямую использовать в ASP.Net / JQuery.

3 голосов
/ 03 декабря 2010

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

1 голос
/ 20 февраля 2012

Я не обязательно не согласен с предыдущим ответом. Но, с другой стороны, WFC сложно настроить. Для этого требуются привязки, конечные точки, размеры пакетов, множество обсуждаемых параметров и т. Д. В файлах конфигурации, и сообщается о многих проблемах сериализации / десериализации. Также WCF является относительно новой технологией (поэтому все еще подвержена ошибкам и необходимым исправлениям). Сгенерированные клиентом файлы [Reference.cs] могут иметь нежелательные интерфейсы, и каждый класс клиента открытого свойства, предоставляемый в WSDL, генерируется с тем же шаблоном наблюдателя, который использует LINQ to SQL или Entity Framework (OnChanged, OnChanging и т. Д.), Поэтому это добавляет много жира для клиентского кода, в отличие от традиционного способа веб-клиента SOAP. Моя рекомендация, если вы не используете Remoting over TCP или если вам не нужен двухсторонний механизм уведомлений для удаленных изменений - все это очень интересные функции WCF - вам не нужно его использовать.

...