Desenvolvimento / runtime mecanismo de licenciamento para uma biblioteca de classe C #? [fechadas]
-
06-07-2019 - |
Pergunta
Estou desenvolvendo uma biblioteca de classes .NET (um provedor de dados) e eu estou começando a pensar em como eu iria lidar com o licenciamento da biblioteca para os potenciais compradores. Ao licenciar, quero dizer a mecânica de tentar impedir minha biblioteca seja usado por aqueles que não comprou, não a licença de software (ou seja, Apache, Gnu, etc).
Eu nunca lidei com licenciamento, e no passado, eu sempre desenvolveu aplicativos, e não bibliotecas. Eu não quero tornar as coisas difíceis para os meus clientes; sei que não é possível fazê-lo ferro. Apenas algum mecanismo que me dá proteção decente sem fazer o salto do cliente através de aros ou ranger os dentes.
Eu acho que o mecanismo seria verificar se há uma licença válida quando a classe está sendo usado no modo de desenvolvimento, e não no modo de tempo de execução (quando o software do cliente é liberado aos seus clientes). Eu acho que as bibliotecas são normalmente vendidos por desenvolvedor, mas não tenho certeza de como isso poderia ser realizado sem fazer o odioso mecanismo para meus clientes; talvez isso é deixado para o sistema de honra.
Eu Googled isso e encontrei muitas abordagens. Idealmente, eu gostaria de fazer algo que é geralmente aceite e comum, o "direito" bibliotecas de classes maneira são licenciados, se o que existe, ao invés de fazer os meus clientes a lidar com mais um mecanismo de licença. Um empurrão firme na direção certa será muito apreciada!
Solução
Esta é a solução fornecida .NET
Outras dicas
Quando seu cliente instancia a sua biblioteca de classes, você faria em seu cheque código de construtor para o licenciamento. Se o fornecedor não tiver uma licença válida / faltando, então você pode lançar uma exceção licenciamento. Isso impediria alguém de usar a sua classe / biblioteca. Você só deve fazer isso uma vez tal que se o licenciamento é válido em uma classe, todas as suas outras classes iria ignorar a verificação de licenciamento.