Должен ли я строго назвать свое собрание для удаленного взаимодействия? - PullRequest
2 голосов
/ 13 марта 2012

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

По сути, клиентское приложение всегда должно загружать та же версия общей сборки со строгим именем, используемой сервером, когда сервер возвращает пользовательский тип из общей сборки клиенту.Т.е.:

Проблема, с которой вы сталкиваетесь, заключается в следующем: как только существует разница между строгим именем библиотеки общих типов на клиенте и строгим именем библиотеки общих типов на серверевсе ломается.Удаленное взаимодействие выдает исключения, как только начинается какое-либо заметное взаимодействие клиент / сервер.

Это довольно раздражает, поскольку мы обновляем номер версии при сборке, даже если в общую сборку не было внесено никаких изменений.Реализация, возможно, не изменилась, просто номер версии.

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

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

Я не добавляю общую сборку (которая просто содержит интерфейсы) в GAC, и при этом я не слишком беспокоюсь о подделке, и пока я тщательно обновляю интерфейсы, чтобы поддерживать обратную совместимость / не сломать существующих клиентов этого достаточно, следовательно, нет необходимости в сильных именах?

Заранее спасибо.

PS: я знаю о WCF, но мне все еще нужноподдерживать удаленный интерфейс.

1 Ответ

2 голосов
/ 13 марта 2012

Избегайте сильных имен, если это вообще возможно!Сильное именование - это больно.

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

...