VS2010 Преимущества добавления справочника услуг по прямой ClientBase <> - PullRequest
1 голос
/ 22 февраля 2011

Я заметил, что при использовании «Add Service Reference» в VS2010 создается тонна файлов. Одним из файлов является Reference.cs, который создает ClientBase для контракта на обслуживание.

Таким образом, мне было интересно, есть ли какое-то преимущество в добавлении дополнительных файлов, создаваемых VS, или я могу просто использовать ClientBase и пропустить опцию «Добавить ссылку на службу».

Должен отметить, что в моем случае стороны находятся под моим контролем.

1 Ответ

5 голосов
/ 22 февраля 2011

Вот краткий обзор плюсов и минусов с различными подходами с моей точки зрения:

Использование сгенерированных прокси сервисов Visual Studio

Плюсы

  • Минимальные усилия, необходимые для начала работы
  • Возможность быстрого обновления прокси при каждом изменении контракта на обслуживание
  • Нет настраиваемого кода для обслуживания

Минусы

  • Делает потребителей трудными для модульного тестирования с любой из популярных сред изоляции для .NET, таких как Rhino Mocks или Moq , из-за высокой связи с инфраструктурой WCF через ClientBase класс
  • Создаются ненужные дополнительные файлы

Использование API каналов WCF

Плюсы

  • Высокая тестируемость с любым каркасом изоляции благодаря отделению, обеспечиваемому интерфейсом IChannelFactory
  • Подробнееконтроль над тем, как вызываются сервисы

Минусы

  • Требуется некоторое начальное усилие для начала
  • Некоторые пользовательские коды для поддержки

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

Связанные ресурсы:

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