В чем разница с WCF и другими веб-сервисами?

Я смущен WCF и другими веб-службами (такими как asp.net ASMX, .net Remoting), может ли кто-нибудь сказать мне, в чем разница с WCF и другими, и когда мне следует его использовать, спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
3 712
3

Ответы 3

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

Поэтому я считаю, что, если вы можете, вам следует использовать WCF.

WCF - это коммуникационная библиотека, которая является надмножеством удаленного взаимодействия .NET и «старой» веб-службы ASMX и является преемником обеих этих библиотек.

Веб-службы WCF гораздо лучше поддерживают стандарты WS- * и имеют меньше проблем с совместимостью.

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

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

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

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

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

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

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

Надеюсь, это поможет.

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

Adeel 29.01.2010 13:30

Другие вопросы по теме