WCF (и более старые веб-службы на основе asmx) выполняют много задач по сериализации. Вы можете возвращать объекты из методов, и платформа будет сериализовывать эти объекты в правильный формат XML и предоставлять клиентам wsdl, чтобы они могли вызывать ваши методы веб-сервиса и понимать, что они получают.
Вы могли бы сделать это с помощью веб-страницы (могу поспорить, есть множество PHP-сервисов), но вам придется делать все это самостоятельно .
Тип запроса - WCF-магия. В WCF есть понятие «конечные точки», которые позволяют отделить метод вызова службы от того, что делает служба. Это просто лучшая (хотя и очень сложная) архитектура, которая лучше разделяет эти две проблемы.
Я сомневаюсь, что узким местом производительности любого веб-сервиса будет выбор использовать asmx, а не WCF. Снижение производительности в архитектуре веб-сервисов почти всегда связано с болтливыми интерфейсами и / или очень большими объектами / графами объектов. Тот факт, что вы делаете удаленный вызов веб-службы, в большинстве случаев делает разницу между скоростью WCF и asmx незначительной. WCF более гибок в дизайне, что является веской причиной для его выбора. WCF использует более новый DataContractSerializer
, чем более старый метод, используемый в axms, и, предположительно, он немного быстрее. Я думаю, что вам придется масштабироваться до довольно большого количества пользователей, чтобы увидеть значимую разницу, хотя - вам лучше поискать болтливые интерфейсы и плохо выполнять запросы к БД.
Конечно, если есть сомнения - сначала измерьте, а затем нацеливайте на конкретные области с низкой производительностью.