Тот факт, что инструмент генерирует кучу заглушек, не означает, что он полезен. WS- * превосходен в тех случаях, когда вы предоставляете услуги внешним сторонам. Это означает, что каждая операция должна быть на гранулярности бизнес-процесса, а не на доступ к данным.
Множество стандартов могут быть использованы для подробного описания различных аспектов вашего контракта, а (гипотетический) полностью совместимый стек WS может отнять у сторонних разработчиков много боли и даже разрешить объединение «точки и щелчки». a'la Yahoo Pipes. С помощью эффективного управления вы можете развивать свой публичный интерфейс и управлять обратной совместимостью по мере необходимости.
Все это почти невозможно создать автоматически. Генератор заглушек C # знает только физический интерфейс вашего класса, но не имеет представления о задействованной семантике. См. этот документ для более подробного обсуждения.
Если вы создаете веб-сайт, то создайте веб-сайт. Если вы хотите использовать асинхронный обмен сообщениями внутри приложения, используйте MSMQ . Если вы хотите предоставить данные внутренним клиентам, используйте POX . Если вам нужен эффективный двоичный формат сообщения, проверьте Google Protocol Buffers или если вам нужна RPC-проверка Hessian для C # или DCOM.
Веб-сервисы - это грубое интеграционное решение. Они жесткие, они медленнее, чем альтернативы, они требуют слишком много усилий, чтобы преуспеть (а если не сделали хорошо, то почти бессмысленны).
Подводя итог: "Когда следует использовать веб-сервис , а не ?" - в любое время вы можете уйти без него