Смущенный о wcf несмотря на мое чтение - PullRequest
1 голос
/ 08 августа 2009

Я изучаю wcf, но у меня проблемы с пониманием преимуществ. Когда-нибудь я хотел бы использовать традиционные веб-сервисы?

Я прочитал другую ветку со следующими преимуществами:

  • Выберите модель для членов, использующих определенный атрибут
  • Лучшая безопасность
  • Не нужно беспокоиться о связывании (не могу понять, как это правда)
  • Не нужно беспокоиться о xml

Я читал Программирование WCF Services, однако это была продвинутая книга, немного похожая на CLR через C #. Я сейчас читаю Услуги обучения WCF и буду читать Essential WCF (рекомендуется).

Что бы произошло, если бы я использовал обычный класс, чтобы попытаться поговорить со ссылкой на веб / сервис? Я знаю, это звучит очень наивно, это просто мой недостаток опыта в веб-сервисах.

Я кодирую некоторые сервисы WCF, поэтому я разбираюсь со спецификой. Они взаимодействуют с веб-службой SOAP, предоставленной моим веб-хостом, поэтому я могу получать статистику на своем сайте. Что-то не так в этом подходе?

Спасибо

Ответы [ 4 ]

2 голосов
/ 08 августа 2009

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, скорее всего, будут все еще доступны в будущем, но, возможно, не будут поддерживаться и развиваться дальше.

1 голос
/ 08 августа 2009

WCF - это действительно "новый" стандарт и новое поколение веб-сервисов - и, в более общем смысле, коммуникаций - протоколов и библиотек для мира .NET.

Всякий раз, когда вы чувствуете необходимость общения двух систем, подумайте о WCF. Будет ли это скрыто за корпоративным брандмауэром в локальной сети вашей компании, будь то через Интернет, с помощью прямого звонка или системы с отложенной очередью сообщений - WCF - ваш ответ. Мехмет написал действительно хорошее резюме о том, как WCF является объединением множества стандартов связи, которые существовали в мире Microsoft до WCF.

Я бы подумал, что с книгой "Обучение WCF" вы должны быть намного лучше, чем с Программированием WCF - это уже довольно продвинутый материал!

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

WCF в основном основан на коммуникациях SOAP, поэтому взаимодействие и использование существующих сервисов SOAP не должно быть проблемой вообще. С помощью начального комплекта WCF REST и в предстоящем цикле выпуска .NET 4.0 WCF также расширит свои возможности для веб-коммуникаций в стиле REST, если это когда-либо будет вашим требованием.

Все это действительно демонстрирует одну из самых сильных сторон WCF: это унифицированная и чрезвычайно гибкая и расширяемая коммуникационная среда, которая может обрабатывать практически все, что вы на нее бросаете. Одной этой причины более чем достаточно для изучения WCF (что может быть спорным на первый взгляд, я согласен!), И вы не пожалеете о тех усилиях, которые приложили в этом начинании.

Марк

1 голос
/ 08 августа 2009

Существует ряд существующих подходов к созданию распределенных приложений. К ним относятся веб-службы, .NET Remoting, очередь сообщений и COM-службы. Windows Communication Foundation объединяет их в единую среду для построения и использования служб . Вот ссылка с MSDN Зачем использовать Windows Communication Foundation?

0 голосов
/ 08 августа 2009

У вас есть конкретное заявление, для которого вы пишете, или просто намокаете ноги?

Буферы протокола Google, это очень хороший выбор сообщений. Джон Скит и Марк Гравелл оба реализовали C #. Смотрите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...