В чем большое преимущество WCF, помимо хостинга для приложений Windows? - PullRequest
1 голос
/ 13 мая 2009

Я давно пользуюсь веб-сервисами.

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

Веб-сервисы, размещенные на Cassini webserver = WCF ?? Это все?

Спасибо

Ответы [ 3 ]

4 голосов
/ 13 мая 2009

WCF - это гораздо более обширная коммуникационная среда, которая предлагает поддержку веб-служб, очередей сообщений, соединений на основе TCP, именованных каналов, служб RESTful и т. Д. Она позволяет размещать службу различными способами (IIS, консольное приложение служба Windows, приложение Winforms и т. д.) с любым количеством различных типов конечных точек.

Чтобы ответить на ваш вопрос, если ваш веб-сервис является сервисом .asmx, то вы не используете WCF. Если ваша служба использует классы из пространства имен System.ServiceModel или ваш конфигурационный файл содержит раздел <system.serviceModel>, то вы используете WCF. Я не уверен, что Кассини поддерживает WCF.

4 голосов
/ 13 мая 2009

WCF - это коммуникационный стек, который позволяет предоставлять сервисы через HTTP (например, ASMX) и TCP (например, Remoting), а также по именованным каналам, MSMQ и .NET 3.5 REST.

Это позволяет, потому что это позволяет отделить коммуникационные части службы от частей бизнес-логики. Все, что вам нужно сделать, это украсить ваши классы обслуживания, методы и DTO с помощью соответствующего атрибута контракта ([SeriviceContract], [OperationContract] и [DataContract] соответственно.)

Преимущество этого заключалось в том, что можно было написать сервис один раз и позволить многим различным типам клиентов использовать один и тот же сервис (т.е. клиенты Java могут использовать HTTP, клиенты .NET могут использовать TCP, устаревшие могут использовать MSMQ и т. Д. ) с использованием нескольких привязок и конечных точек.

WCF по-прежнему позволит вам использовать все функции каждого транспорта, включая безопасность, транзакции, надежный обмен сообщениями и т. Д., Но вам необходимо проявлять определенную осторожность. Не все функции работают на всех транспортных средствах, и вам необходимо разработать соответствующий дизайн. WCF позволяет вам указать в вашем контракте, какие функции требуются. Это препятствует тому, чтобы кто-то попытался представить вашу службу способом, который не поддерживает требуемый набор функций (т. Е. Если вашей службе требуются транзакции, среда выполнения WCF не разрешит доступ к службе через базовую конечную точку HTTP).

WCF также обладает широкими возможностями расширения благодаря пользовательскому поведению (которое влияет на работу среды выполнения WCF) и настраиваемым каналам (которые управляют взаимодействием служб WCF с внешним миром.)

WCF имеет некоторую кривую обучения по сравнению с ASMX, но преимущества АБСОЛЮТНО превосходят эту кривую обучения.

3 голосов
/ 13 мая 2009

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

...