14

J'ai essayé d'utiliser ServiceStack dans mon projet actuel, mais j'ai trouvé que les binaires libérés n'étaient pas très puissants, donc je ne pouvais pas l'utiliser dès la sortie de la boîte. Lorsque l'on demande sur GitHub « pourquoi » je suis la réponse suivante:Signer des binaires de projets open-source

it's virally toxic and hinders binding, upgrading, development, deployment, etc.

mythz était très laconique, donc je ne voulais pas le déranger plus et demander ici. J'utilise beaucoup de projets .NET open-source comme AutoMapper, NUnit, Moq, log4net, Ninject, etc. et leurs versions sont toutes nommées. Trouvé similar question ici, sur SO, mais cela ne m'aide pas. Est-ce une pratique normale dans l'OSS? Pourquoi ne pas publier les binaires signés et non signés?

Répondre

6

est ici une discussion existante sur les raisons pour lesquelles Naming forte est une mauvaise idée pour les projets Open Source:

https://groups.google.com/forum/?fromgroups#!topic/getglimpse-dev/pXXazMOOdjE

Voici une histoire cauchemardesque de l'utiliser:

http://haacked.com/archive/2012/02/16/changing-a-strong-name-is-a-major-breaking-change.aspx

I Avons personnellement été dans 2 équipes qui ont souffert à travers 2 générations de Log4Net qui ont essayé d'utiliser des assemblages référençant 2 différentes versions nommées de Log4Net dans le même projet - Gâcher beaucoup de temps et d'efforts en essayant de faire ce travail n'est pas amusant, et ce n'est pas non plus quelque chose que nous prévoyons de nous soumettre ou de mandater tous nos utilisateurs aussi.

Les utilisateurs qui veulent une version avec un nom fort sont libres de signer leur propre clone/fork du public ServiceStack repos.

S'il y a une demande pour cela, nous envisagerons de maintenir nos propres versions commerciales «officiellement chantées» de nos bibliothèques.

+2

Merci pour les liens, assez intéressant mais je dois noter que les gars mélangent la signature et le versioning - des choses différentes! Bien que la signature mondiale .NET fasse partie d'un nom fort, il n'est pas nécessaire de changer de version lors de la publication de la nouvelle version (scénario de la version log4net, mais plutôt de la version IL). Je ne vois aucun problème à libérer des binaires non signés, signés avec la même version IL et signé avec une version IL incrémentée. Il y a des options pour que tous soient heureux donc voici mon +1 lorsque vous reconsiderez maintenir les binaires "officiellement signés". – UserControl

+2

Vous ne pouvez pas "authentifier" les assemblys de signature qui ont des dépendances de nom non fortes. Personnellement, c'est un cauchemar * pas * d'avoir facilement accès à des assemblages nommés forts et d'entraver massivement le déploiement. – Robin

+3

Je me rends compte que je suis un peu en retard à la fête ici, mais je ne vois vraiment pas le problème avec la signature des assemblages. De quelle manière est-ce que signer un problème si vous continuez à utiliser la même clé? Ne pas assembler les redirections résout le problème de version? – dabide

5

Je pense que c'est aux développeurs. Les avantages sont évidents - tout le monde peut assembler avec un nom fort et l'utiliser dans n'importe quel environnement. Dans ce cas particulier, je veux dire d'une assemblée signée ou non signée. Les inconvénients - ?

Je pense que il devrait être une règle gentilhomme pour signer les binaires.

Jon Skeet a répondu sur similaire question et son opinion est assez indétectable.

Questions connexes