WCF поднимает планку или просто уровень сложности?

это может быть не лучшим образом, но для большинства небольших случаев это должно быть приемлемым:

"создать второй пустой массив и добавить только те, которые вы хотите keep "

Я не помню, где я это читал ... для справедливости я сделаю эту вики в надежде, что кто-то найдет ее или просто не заработает репутацию Я не заслуживаю.

84
задан grooveplex 27 April 2019 в 07:13
поделиться

15 ответов

Okay, here we go. First, Michele Leroux Bustamante's book has been updated for VS2008. The website for the book is not gone. It's up right now, and it has tons of great WCF info. On that website she provides updated code compatible with VS2008 for all the examples in her book. If you order from Amazon, you will get the reprint which is updated.

WCF is not only a replacement for ASMX. Sure it can (and does quite well) replace ASMX, but the real benefit is that it allows your services to be self-hosted. Most of the functionality from WSE has been baked in from the start. The framework is highly configurable, and the ability to serve multiple endpoints over multiple protocols is amazing, IMO.

While you can still generate proxy classes from the "Add Service Reference" option, it's not necessary. All you really have to do is copy your ServiceContract interface and tell your code where to find the endpoint for the service, and that's it. You can call methods from the service with very little code. Using this method, you have complete control over the implementation. Regardless of the method you choose to generate a proxy class, Michele shows both and uses both in her excellent series of webcasts on the subject.

Michele has tons of great material out there, and I recommend you check out her website(s). Here's some links that were incredibly helpful for me as I was learning WCF. I hope that you'll come to realize how strong WCF really is, and how easy it is to implement. The learning curve is a little bit steep, but the rewards for your time investment are well worth it:

I recommend you watch at least 1 of Michele's webcasts. She is a very effective presenter, and she's obviously incredibly knowledgeable when it comes to WCF. She does a great job of demystifying the inner workings of WCF from the ground up.

61
ответ дан 24 November 2019 в 08:37
поделиться

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

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

1
ответ дан StingyJack 24 November 2019 в 08:37
поделиться

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

1
ответ дан pglowack 24 November 2019 в 08:37
поделиться

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

1
ответ дан Kwal 24 November 2019 в 08:37
поделиться

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

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

1
ответ дан Domenic 24 November 2019 в 08:37
поделиться

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

1
ответ дан Ben Collins 24 November 2019 в 08:37
поделиться

Мои начальные мысли о WCF были точно тем же! Вот некоторые решения:

  1. Программируют Ваши собственные дженерики использования слоя прокси/клиента (см. классы ClientBase, Связывая). Я нашел это легким получить работу, но трудно к идеальному.
  2. Использование сторонняя реализация 1 ( SoftwareIsHardwork является моим текущим фаворитом)
2
ответ дан NoizWaves 24 November 2019 в 08:37
поделиться

Если Вы используете VS2008 и создаете проект WCF тогда, Вы автоматически получаете тестовую обвязку, когда Вы совершаете нападки выполненный/отлаженный, и можно добавить ссылку, не имея необходимость использовать svcutil.

3
ответ дан blowdart 24 November 2019 в 08:37
поделиться

VS2008 включает объект контекстного меню "Add Service Reference", который создаст прокси для Вас негласно.

, Как был упомянут ранее, WCF не предназначается только как замена для типов веб-сервиса ASMX, но предоставлять последовательную, безопасную и масштабируемую методологию всем совместимым сервисам, является ли это по HTTP, tcp, именованным каналам или транспортам MSMQ.

я признаюсь, что у меня действительно есть другие проблемы с WCF (например, переписывающий сигнатуры методов, когда представление сервиса по basicHTTP - видит здесь , но в целом я думаю, что это - определенное улучшение

4
ответ дан Community 24 November 2019 в 08:37
поделиться

Я не вижу, что это упоминало достаточно часто, но Вы можете все еще реализовывать довольно простые сервисы с WCF, очень похожим на сервисы ASMX. Например:

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SimpleService
{
    [OperationContract]
    public string HelloWorld()
    {
        return "Hello World";
    }

}

все еще необходимо зарегистрировать конечную точку в web.config, но это не так плохо.

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

4
ответ дан Dave Ward 24 November 2019 в 08:37
поделиться

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

6
ответ дан Quibblesome 24 November 2019 в 08:37
поделиться

WCF намного более мощен, чем ASMX, и это расширяет его несколькими способами. ASMX ограничен только HTTP, тогда как WCF может использовать несколько протоколов для своей коммуникации (предоставленный, HTTP является все еще способом, которым большинство людей будет использовать его, по крайней мере, для сервисов, которые должны быть совместимыми). WCF также легче расширить. По крайней мере, возможно расширить его способами, которыми не может быть расширен ASMX. "Легкий" может расширять его. =)

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

13
ответ дан Karl 24 November 2019 в 08:37
поделиться

У меня есть трудное время для наблюдения, когда я должен или использовать WCF. Почему? Поскольку я поместил производительность и простоту сверху моего списка. Почему модель ASMX была так успешна, потому что она работала, и Вы заставляете ее работать быстро. И с VS 2005 и.NET 2,0 wsdl.exe выкладывал довольно хорошие и совместимые сервисы.

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

14
ответ дан Saab 24 November 2019 в 08:37
поделиться

Я обычно использую Google, чтобы найти мои ответы WCF и обычно оказываться на следующих блогах:

Блоги с ценными статьями WCF

Другие ценные статьи я нашел

15
ответ дан Chris Porter 24 November 2019 в 08:37
поделиться

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

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

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

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

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

1
ответ дан 24 November 2019 в 08:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: