Почему я должен использовать ссылки на службы Visual Studio вместо svcutil?

Так что, похоже, у меня есть несколько основных вариантов при добавлении прокси-кода службы WCF в проект в Visual Studio:

  1. Используйте встроенные инструменты Visual Studio для Ссылки на службы

  2. Используйте простую команду svcutil, что-то вроде svcutil http://[my endpoint] /namespace:[my namespace] /noconfig (поскольку я использую довольно стандартные привязки для проектов), и перетащите полученный файл в мой проект (или обновите его на месте).

Чтобы было ясно, вариант 2 кажется лучшим, albiet без встроенных инструментов для обновления. Но диалоговое окно «Ссылка на службу» создается как миллион файлов. Есть ли какие-то неясные преимущества в ссылках на службы VS, которые мне не хватает?


person Brandon Linton    schedule 19.09.2011    source источник
comment
По сути, это одно и то же.   -  person John Saunders    schedule 19.09.2011
comment
Visual Studio в основном вызывает svcutil за кулисами. Однако многие программисты боятся открывать командную строку и запускать инструмент командной строки - поэтому в Visual Studio есть диалоговое окно Add Service Reference ....   -  person marc_s    schedule 19.09.2011
comment
Да, я знал, что они такие же, но используется ли какой-то переключатель / awesome для генерации всех этих XSD и других файлов с какой-либо выгодой?   -  person Brandon Linton    schedule 19.09.2011
comment
Итак, изначально все было о том, почему ссылки на службы VS добавляют все эти сумасшедшие файлы (дискотека и тому подобное), но эти ответы и небольшой поиск в Google заставили меня поверить в то, что на самом деле нет убедительной выгоды. Итак ... мы будем делиться прокси и / или контрактами через NuGet   -  person Brandon Linton    schedule 08.10.2011
comment
Возможный дубликат: Использует ли Visual Studio 2008 SvcUtil.exe, и если «Нет», есть ли какие-либо недостатки в использовании svcutil? stackoverflow.com/questions/408217/   -  person Michael Freidgeim    schedule 26.11.2011
comment
У меня срочная проблема, связанная с этим вопросом. Как все работает при использовании службы рабочего процесса WF4 «Добавить ссылку на службу»? Действительно ли svcutil вызывается за кулисами? Я не вижу, как svcutil генерирует действия XAMLX. Мне нужно узнать больше, потому что я столкнулся с ошибкой в ​​проекте службы WF4 WF Добавить ссылку на службу для стороннего WSDL   -  person Sentinel    schedule 09.11.2013


Ответы (2)


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

Примерно так, как описано в WCF The Manual Way ... The Right Way.

person Esteban Araya    schedule 19.09.2011
comment
Я слышал это во многих местах, и я думаю, что это даже где-то в документации iDesign (и, возможно, это отдельный вопрос), но разве мне тогда не нужна тяжелая стратегия управления для загрузки и обновления этих сборок? Я сделал svn: externals и подумал о NuGet для этого, но кроме простоты обновления (и svn: externals почти слишком легко внедрить код в сборку неожиданно), я не уверен, что я покупаю, кроме чуть-больше-СУХОЙ код. - person Brandon Linton; 19.09.2011
comment
Если весь код принадлежит вам, это не должно быть проблемой. Вам не нужно ссылаться на сборки; вы можете ссылаться на те же проекты, что и сервисы. Каждый раз, когда вы строите, ваш клиент тоже будет обновляться. - person Esteban Araya; 19.09.2011

По той же причине, по которой вы создаете проект .net с помощью VS, а не вызываете компилятор вручную из командной строки. I в IDE расшифровывается как Integrated, он делает что-то за вас, поэтому вам не нужно делать это вручную из множества разных мест и процедур.

Обычно есть способ сделать многие из этих вещей вручную или с помощью текстового редактора и командной строки, но давайте будем продуктивными :-)

person Davide Piras    schedule 19.09.2011
comment
Согласован с инструментами пользовательского интерфейса и командной строкой. Так вы говорите, что удобство использования - единственное преимущество? - person Brandon Linton; 19.09.2011