Механизм лицензирования разработки / исполнения для библиотеки классов C #? [закрыто]
-
06-07-2019 - |
Вопрос
Я занимаюсь разработкой библиотеки классов .Net (поставщик данных) и начинаю думать о том, как бы я справился с лицензированием библиотеки для потенциальных покупателей. Под лицензированием я подразумеваю механизм предотвращения использования моей библиотеки теми, кто ее не приобрел, а не лицензию на программное обеспечение (например, Apache, Gnu и т. Д.).
Я никогда не занимался лицензированием, и в прошлом я всегда разрабатывал приложения, а не библиотеки. Я не хочу усложнять жизнь своим клиентам; знаю, что это невозможно сделать железным. Просто какой-то механизм, который дает мне достойную защиту, не заставляя клиента прыгать через обручи или скрежетать зубами.
Я думаю, что механизм будет проверять действительную лицензию, когда класс используется в режиме разработки, а не в режиме времени выполнения (когда программное обеспечение клиента выпускается для его клиентов). Я думаю, что библиотеки, как правило, продаются на разработчика, но я не уверен, как это можно сделать, не делая механизм отвратительным для моих клиентов; может быть, это останется в системе чести.
Я прогуглил это и нашел много подходов. В идеале я хотел бы сделать что-то, что является общепринятым и общепринятым, "правильным" лицензирование библиотек классов, если таковое существует, вместо того, чтобы заставлять моих клиентов иметь дело с еще одним механизмом лицензирования. Мы будем очень благодарны за твердый толчок в правильном направлении!
Решение
Это решение, поставляемое с помощью .NET
Другие советы
Когда ваш клиент создает экземпляр вашей библиотеки классов, вы проверяете код конструктора на предмет лицензирования. Если у поставщика нет действующей / отсутствующей лицензии, вы можете выдать исключение из лицензии. Это помешает кому-то использовать ваш класс / библиотеку. Вы должны сделать это только один раз, чтобы, если лицензирование действительно в одном классе, все остальные классы пропустили проверку лицензирования.