2011-02-16 3 views
0

J'ai une DLL .Net partagée qui est utilisée par quelques applications et une API utilisable publiquement. Je prévois de distribuer la DLL de l'API, mais à cause du lien, je dois également distribuer la DLL partagée.Comment verrouiller une DLL distribuée?

Quelle est la meilleure option pour empêcher l'utilisation de classes et de données inutiles?

Déclarez-vous tout ce qui est interne à la DLL partagée et qui n'est pas utilisé dans l'API?

Créer une nouvelle DLL contenant tous les éléments partagés entre l'API et les autres projets?

Modifier: Toutes les choses ont été créées en C#. Je suis également surtout intéressé à présenter à l'utilisateur une API agréable et conviviale. Je crois comprendre que quoi que je fasse, l'utilisateur pourrait toujours utiliser le réflecteur pour le regarder de toute façon.

+0

Hmmm, basé sur ma première lecture, je voulais réagir comme « Go pour une dll » parce que la question est de surmonter l'encombrement unnessecary dans le api. Avoir un ou deux dll fait une différence aussi pour le versioning. Les réponses données donc pour tous ont tendance à prévenir la perte possible de propriété intellectuelle ... @Telavian Cherchez-vous une approche api bonne/propre ou une solution de la protection de votre travail? – rene

Répondre

2

Vous n'avez pas mentionné quelle langue vous alliez utiliser. Si c'est un assemblage géré, il y a beaucoup plus que ce que vous demandez.

En essayant simplement de cacher votre code derrière des méthodes internes ou privé le code peut toujours être décompilé. C'est l'une des premières choses à gérer. Vous devez masquer ce code pour que ce qui est décompilé ne soit pas compréhensible.

Vous pouvez verrouiller la DLL, mais c'est très difficile à réaliser et, en fonction de votre implémentation, cela peut ne pas être utile du tout.

J'ai utilisé ce produit avant que RedGate l'achète et c'était IMPRESSIONNANT. Il a battu le pantalon de mon code qui a été collé à partir de messages aléatoires sur le web. Mais ce pourrait être quelque chose que vous voudriez utiliser.

http://www.red-gate.com/products/dotnet-development/smartassembly/

0

La décision du mécanisme de sécurité est basée sur l'importance de la ressource. Tout simplement parce que généralement, plus une méthode est sûre, plus le panneau de performance est performant.

Questions connexes