WCF поднимает планку или просто уровень сложности? - PullRequest
84 голосов
/ 08 сентября 2008

Я понимаю ценность трехкомпонентной модели сервис / хост / клиент, предлагаемой WCF. Но это только я или кажется, что WCF взял что-то довольно прямое и прямое (модель ASMX) и сделал из этого беспорядок?

Есть ли альтернатива использованию шага командной строки SvcUtil назад во времени для создания прокси? С сервисами ASMX тестовый жгут был предоставлен автоматически; Есть ли хорошая альтернатива сегодня с WCF?

Я ценю, что материал WS * более тесно интегрирован с WCF, и надеюсь найти там некоторую отдачу от WCF, но, черт возьми, в противном случае я озадачен.

Кроме того, состояние книг, доступных для WCF, в лучшем случае ужасно. Юваль Лоуи, превосходный автор, написал хороший справочник О'Рейли «Программирование служб WCF», но он мало что делает (для меня в любом случае), чтобы научиться использовать WCF сейчас. Предшественником этой книги (и немного лучше организованным, но не очень, как учебное пособие) является Учебный WCF Мишеля Леру Бустаманте. У него есть хорошие места, но он устарел и его соответствующий веб-сайт пропал.

У вас есть хорошие справочные материалы по обучению в WCF, кроме того, что вы просто продолжаете искать Google?

Ответы [ 16 ]

1 голос
/ 11 марта 2010

Я считаю, что это боль; в том смысле, что у меня есть .NET на обоих концах, на обоих концах загружены одни и те же «контрактные» dll и т. д. Но потом мне придется возиться с большим количеством деталей, таких как атрибуты «KnownType».

WCF также по умолчанию разрешает только 1 или 2 клиентам подключаться к сервису, пока вы не измените много конфигурации. Изменить конфигурацию из кода нелегко, отгрузка большого количества comfig-файлов не возможна, так как слишком сложно объединить наши изменения с любыми изменениями, которые клиент мог сделать во время обновления (также мы не хотим, чтобы клиенты играть с настройками WCF!)

.NET удаленное взаимодействие, как правило, работало большую часть времени.

Я думаю, что попытка притвориться , что обмен данными между объектами .NET и .NET - это то же самое, что отправка бита Text (xml) в неизвестную систему, было слишком далеко.

(Несколько раз, когда мы использовали WCF для общения с системой Java, мы обнаружили, что XSD, выдаваемый системой Java, в любом случае не соответствует тому, что ей нужно, поэтому пришлось вручную кодировать многие сопоставления XML .)

1 голос
/ 31 декабря 2008

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

Было бы замечательно, если бы у кого-нибудь были ярлыки или подсказки для них.

1 голос
/ 08 декабря 2008

Я считаю, что WCF действительно продвигает реализацию веб-сервисов ASMX во многих отношениях. Прежде всего, это очень хорошая многоуровневая объектная модель, которая помогает скрыть внутреннюю сложность распределенных приложений. Во-вторых, вы можете иметь больше, чем шаблоны обмена сообщениями с запросом-воспроизведением, включая асинхронные уведомления от сервера к клиенту (невозможно с чистым HTTP), и в-третьих абстрагировать базовый транспортный протокол от обмена сообщениями XML и таким образом элегантно поддерживать HTTP, HTTPS, TCP и другие. Обратная совместимость с веб-сервисами 1-го поколения также является плюсом. WCF использует стандарт XML в качестве внутреннего формата представления. Это может восприниматься как преимущество или недостаток, особенно в связи с растущей популярностью «обезжиренных альтернатив XML», таких как JSON.

1 голос
/ 08 декабря 2008

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

1 голос
/ 08 сентября 2008

С точки зрения того, что он предлагает, я думаю, что ответ - совместимость. Сервисы ASMX были довольно милыми. Не сказать, что они не пытались быть совместимыми с другими потребителями; но модель не была приспособлена для многих веб-страниц ASP.NET и некоторых других пользователей Microsoft. Принимая во внимание, что WCF, благодаря своей архитектуре, позволяет вашей службе иметь конечные точки, основанные на очень открытых стандартах, например, REST, JSON и т. Д. В дополнение к обычному SOAP. Другим людям, вероятно, будет намного проще тратить ваши WCF-сервисы, чем ASMX.

(Это все в основном выводится из сравнительного чтения MSDN, поэтому тот, кто знает больше, может смело поправлять меня.)

1 голос
/ 08 сентября 2008

MSDN? Я обычно очень хорошо справляюсь с самой ссылкой на Библиотеку, и я обычно ожидаю найти там ценные статьи.

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