WCF - преимущества и недостатки

Я хотел бы узнать о BOTH преимуществах и недостатках Windows Communication Foundation от людей, которые использовали его или просто знают его теоретически.

Ответы

Ответ 1

Первичное преимущество. После того, как вы перейдете к кривой обучения, WCF позволяет относительно легко выставлять и потреблять программные компоненты. т.е. если компонент использует функции торможения в контракте на обслуживание WCF, разработчик может разоблачить тот же компонент in-proc, через процессы в одном ящике, через интрасеть Windows или через весь Интернет, просто изменив хосты и информацию о конфигурации. Кроме того, клиенты этого компонента легко использовать в любом из этих сценариев.

Основной недостаток: кривая обучения. WCF кажется очень сложным для многих разработчиков, когда они впервые начинают изучать его. Я сделал несколько ложных попыток попасть в Juval Lowy "Программирование WCF-сервисов". Хотя я обнаружил, что понимание пришло быстро, как только я начал создавать и потреблять компоненты.

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

По сравнению с тем, что мы были вынуждены использовать ранее, WCF - fantasitc!

Ответ 2

Для меня это то, что ваш код для обмена через SOAP, WS *, TCP, MSMQ, именованные каналы или любой другой транспорт позже тот же.

Ответ 3

Основным преимуществом является то, что WCF позволяет единообразный доступ к технологиям связи Windows для разработчиков, что позволяет упростить разработку приложений SOA. Microsoft отвлекла много сантехнических работ, чтобы включить это.

Недостатком было бы то, что WCF представляет собой реализацию SOA в SOA, и, следовательно, ее API-интерфейсы контролируются исключительно MS, что затрудняет интероперабельность. Кроме того, для развертывания приложений WCF вам понадобится больше базовых аппаратных ресурсов на платформе, на которой будут работать приложения WCF, так как есть дополнительный уровень абстракции для решения.

Ответ 4

<сильные > преимущества

  • Он состоит из множества различных компонентов, поэтому вы можете создавать новые компоненты для безопасности, транспорта, аутентификации.
  • Быстрее, чем ASMX
  • Поддержка масштабирования/балансировки нагрузки
  • Взаимодействие с ним, для java и т.д.

недостатки  - бит кривой обучения, чтобы узнать обо всех различных типах транспорта/спецификации безопасности.

Если вам нужно что-нибудь быстрее, вам нужно будет перейти на уровень TCP

Изменить Также его трудно получить с помощью Concurrency делать с подключенными клиентами

Ответ 5

Я не думаю, что предполагается наличие неотъемлемых компромиссов, кроме необходимости использовать WinStack. Предполагается, что WCF будет заменять как стандартные удаленные .NET, так и стандартные веб-службы bog (или, скорее, WCF также может выполнять веб-службы)

Ответ 6

Преимущество - стандартная архитектура приложений SOA. Вы можете настроить компоненты архитектуры для включения соединения с любыми клиентами, отличными от Windows, однако есть крутая кривая обучения.

Ответ 7

Мне было очень легко настроить и изучить. У меня была веб-служба, работающая через несколько часов без какого-либо опыта использования WCF. Я могу сделать это через несколько минут.

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