azure - ¿Cuál es la diferencia entre StackExchange.Redis y StackExchange.Redis.StrongName?
(3)
¿Necesitas una biblioteca de Redis fuertemente nombrada? Con toda probabilidad, especialmente si nunca se encontró con este término, la respuesta es no . Pero sigue leyendo.
¿Qué se llama con fuerza?
- es algo específico de .NET
- puede elegir firmar su ensamblaje con una clave criptográfica
- esto hace posible verificar que realmente está cargando / ejecutando algo que espera cargar / ejecutar
- el "nombre fuerte" incluye la firma criptográfica junto con el nombre habitual, la versión y cosas por el estilo.
¿Alguna vez necesitas nombres fuertes?
- probablemente no, a menos que tenga razones específicas. Algunos de estos pueden ser:
- histórico (solíamos firmar nuestras asambleas y por qué cambiar ahora)
- políticas corporativas
- circunstancias especiales, como otra cosa que esté utilizando, requieren nombres fuertes (solía ser un requisito tener un nombre fuerte si quería agregar algo al GAC)
- posiblemente consideraciones de seguridad
¿Es una buena idea firmar sus asambleas?
- hay muchas opiniones divididas
- muy a menudo los nombres fuertes son un dolor en muchos sentidos con beneficios cuestionables
- últimamente ha sido una tendencia a no usar nombres fuertes a menos que realmente deba
¿Necesitas una biblioteca de Redis fuertemente nombrada?
- a menos que decida o tenga que firmar su propia aplicación que utiliza la biblioteca de Redis, usted no
- la versión de nombres fuertes de la biblioteca de Redis es idéntica a la otra
- existe solo por el motivo de hacer más fácil la vida de aquellos que necesitan usar nombres fuertes
Mientras estaba siguiendo la documentation Azure sobre cómo usar Redis Cache en Azure Portal, noté esta nota:
Si prefiere usar una versión con nombre seguro de la biblioteca del cliente StackExchange.Redis, elija StackExchange.Redis.StrongName; de lo contrario, elija StackExchange.Redis.
¿Cuál es el nombre fuerte? y ¿cuál es el proceso y los contras? ¿Cómo decidir si lo necesito o no en mi aplicación?
Aparte del argumento de ensambles firmado vs no firmado, RedisSessionStateProvider tiene una dependencia en StackExchange.Redis.StrongName
Por lo tanto, si desea usar RedisSessionStateProvider, elija la versión StrongName a menos que desee tener dos dependencias.
Actualización : como @Matei_Radu ha señalado, Microsoft.AspNet.SignalR.Redis también tiene una dependencia en StackExchange.Redis.StrongName
Solo puede tener una dependencia de uno (firmado o sin firmar) en un único ensamblaje, pero si tiene varios proyectos, puede tener dependencias en ambos. Puede simplificar las cosas para mantener solo la versión firmada para evitar problemas
La versión de nombre seguro es para desarrolladores que usan ensamblajes fuertemente nombrados en sharepoint y com + development. El desarrollador del paquete nuget dice que no hay una respuesta simple para esta pregunta. Lea la publicación del blog aquí http://blog.marcgravell.com/2014/06/snk-we-need-to-talk.html