Добавление нового параметра к операции WCF: выбор?

Я хотел бы обратиться только к вопросу "Поэтому, что делает двоичные деревья полезными в некоторых общих задачах, которые Вы делаете при программировании?"

Это - большая тема, на которой не соглашаются многие люди. Некоторые говорят, что алгоритмы, преподававшие в градусе CS, такие как деревья двоичного поиска и ориентированные графы, не используются в ежедневном программировании и поэтому не важны. Другие не соглашаются, говоря, что эти алгоритмы и структуры данных являются основой для всего нашего программирования, и важно понять их, даже если Вы никогда не должны писать один для себя. Это проникает в переговоры о хороших методах интервьюирования и найма. Например, у Steve Yegge есть статья о интервьюирование в Google , который обращается к этому вопросу. Помните эти дебаты; опытные люди не соглашаются.

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

, Если Вы вовлечены в большее количество высокоэффективных усилий или ситуаций, которые являются несколько вне нормы бизнес-программирования, Вы найдете, что деревья непосредственный друг. Как другой сказанный плакат, деревья являются базовыми структурами данных для баз данных и индексов всех видов. Они полезны в анализе данных и визуализации, усовершенствованная графика (2-й и 3-й), и хост других вычислительных проблем.

я использовал двоичные деревья в форме BSP (двоичное разделение пространства) деревья в 3-й графике. Я в настоящее время смотрю на деревья снова для сортировки больших сумм геокодируемых данных и других данных для визуализации информации в приложениях Flash/Flex. Каждый раз, когда Вы раздвигаете границу аппаратных средств, или Вы хотите работать на более низких спецификациях оборудования, понимание и выбирание лучшего алгоритма могут иметь значение между отказом и успехом.

6
задан Kirill Kobelev 23 August 2013 в 23:49
поделиться

2 ответа

Следует принять во внимание одну вещь: у вас не может быть двух OperationContracts с одинаковым именем. То, как он сериализуется, вызовет ошибку.

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

13
ответ дан 8 December 2019 в 12:20
поделиться

Что ж, изменение существующего контракта после того, как он был использован, действительно противоречит всем правилам сервисной ориентации; вы никогда не должны разрывать существующий контракт.

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

Это может быть:

  • новый контракт на операцию в существующем контракте на обслуживание
  • новое необязательное поле в DataContract

То, что вы пытаетесь сделать, не сработает, хотя

  1. у вас не может быть двух методов с одинаковым именем в WCF - WCF - это , а не .NET, и у вас не может быть двух методов с помощью одно и то же имя отличается только подписью. Не работает. Вам нужно будет использовать два разных имени. Помнить:

3
ответ дан 8 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

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