Подтвердить что ты не робот

В чем разница между StackExchange.Redis и StackExchange.Redis.StrongName?

Пока я следил за Azure documentation за использование Redis Cache в Azure Portal, я заметил это примечание:

Если вы предпочитаете использовать сильно названную версию StackExchange.Redis клиентская библиотека, выберите StackExchange.Redis.StrongName; в противном случае выберите StackExchange.Redis.

Что такое сильное имя? и что такое про и против? Как решить, нужно ли мне это или нет в моем приложении?

4b9b3361

Ответ 1

Вам нужна сильно названная библиотека Redis? По всей вероятности, особенно если вы даже не столкнулись с этим термином, ответ отрицательный. Но читайте дальше.

Что называется сильно?

  • это особая вещь .NET.
  • вы можете подписать свою сборку криптографическим ключом
  • это позволяет проверить, что вы фактически загружаете/запускаете то, что вы ожидаете загрузить/запустить
  • "сильное имя" включает криптографическую подпись вместе с обычным именем, версией и т.д.

Вам нужны сильные имена?

  • возможно, если у вас нет конкретных причин. Некоторые из них могут быть:
  • исторический (мы подписали наши собрания и почему изменились сейчас)
  • корпоративные политики
  • Особые обстоятельства, например, что-то другое, что вы используете, требуют сильных имен (это требование требовало наличия сильного имени, если вы хотите что-то добавить к GAC)
  • возможно соображения безопасности

Хорошо ли подписывать ваши сборки?

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

Вам нужна сильно названная библиотека Redis?

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

Ответ 2

Помимо подписанного аргумента vs unsigned assemblys, RedisSessionStateProvider имеет зависимость от StackExchange.Redis.StrongName

Итак, если вы хотите использовать RedisSessionStateProvider, выберите версию StrongName, если вы не хотите иметь две зависимости.

Обновление. Как отметил @Matei_Radu, Microsoft.AspNet.SignalR.Redis также имеет зависимость от StackExchange.Redis. StrongName

У вас может быть только зависимость от одного (подписанного или неподписанного) в одной сборке, но если у вас несколько проектов, у вас могут быть зависимости от обоих. Это может упростить работу, чтобы сохранить только подписанную версию, чтобы избежать проблем.

Ответ 3

Сильная версия имени предназначена для разработчиков, которые используют сильно названные сборки в sharepoint и com + development. Сам пакет nuget dev говорит, что на этот вопрос нет простого ответа. Читайте сообщение в блоге здесь http://blog.marcgravell.com/2014/06/snk-we-need-to-talk.html