WCF - это унифицированная модель программирования *1001* для разработки связанных систем. Это означает, что вы используете единую платформу для разработки сервис-ориентированных решений. WCF позволяет вам сохранять реализацию вашего сервиса относительно неосведомленной и не заботиться о том, что происходит под прикрытием, в том, что касается того, как ваш сервис потребляется клиентами и обрабатывается связь. Это позволяет вам воспринимать реализацию службы и представлять ее различными способами, настраивая ее по-разному, не затрагивая реализацию службы. Это единая часть. Без WCF вы должны ознакомиться с платформой, специфичной для конкретной коммуникационной технологии, такой как веб-сервис ASP.NET asmx, удаленное взаимодействие .NET, MSMQ и т. Д., И обычно эти фреймворки накладывают на реализацию вашей службы и распространяются, например, с использованием атрибута WebMethod или возникновение необходимости от объекта MarshallByRefObject и т. д., и вы просто не можете взять реализацию своего сервиса и легко выставить ее через другой коммуникационный стек. Если у меня есть служба, которая добавляет два числа, почему ее нельзя легко открыть через http или tcp, не беспокоясь о деталях низкого уровня? Это вопрос в вашем посте относительно связывания. Привязка позволяет вам взять сервис и настроить его так, чтобы он мог быть открыт для разных транспортов и протоколов с использованием разных кодировок, даже не затрагивая реализацию вашего сервиса.
Когда-нибудь я хотел бы использовать традиционный веб-сервис?
Веб-сервис использует четко определенные, принятые и используемые стандарты, такие как HTTP и SOAP. Поэтому, если вы хотите, чтобы ваш сервис использовался широким кругом клиентов, то вы бы хотели представить свой сервис как веб-сервис. WCF поставляется с предварительно настроенными привязками из коробки, что позволяет легко представить вашу службу как веб-службу: basicHttpBinding и wsHttpBinding. Вы также можете рассмотреть RESTful-сервисы, которые представляют собой архитектурный стиль, который более естественным образом соответствует модели HTTP. WCF также поддерживает сервисы RESTful
Что бы произошло, если бы я использовал обычный
класс, чтобы попытаться поговорить с веб-сервисом
ссылка? Я знаю, это звучит действительно
наивный, это просто мой недостаток опыта
в веб-сервисах.
Служба WCF может предоставлять wsdl для службы так же, как это делает веб-служба ASP.NET asmx. Вы можете создать прокси на стороне клиента, просто добавив ссылку на сервис в ваш клиентский проект. Существует также инструмент командной строки под названием svcutil, который также генерирует код на стороне клиента, который позволяет вам легко взаимодействовать со службой. Класс обслуживания на стороне клиента в основном отражает интерфейс службы. Вы создаете экземпляр клиентского прокси для службы, а затем просто вызываете методы для него, как и любой другой объект .NET. Под прикрытием ваш вызов метода будет преобразован в сообщение и отправлен по сети на сервер. На стороне сервера это сообщение будет отправлено в соответствующий метод обслуживания.
Надеюсь, это немного поможет. Есть много онлайн-контента, такого как видео на MSDN и канале 9, который вы просматриваете. Чем больше вы будете стучать в нее и подвергать себя опасности, тем яснее будет WCF, я уверен. Кроме того, WCF является платформой, которую Microsoft рекомендует развивать подключенную систему в .NET Другие технологии ASP.NET asmx, WSE и .NET Remoting, скорее всего, будут все еще доступны в будущем, но, возможно, не будут поддерживаться и развиваться дальше.