Как обеспечить демо-режим при использовании .NET автозащиты?
Из документации не совсем понятно, можно ли (как?) реализовать следующие варианты использования по защите .NET-приложения (2-х или 3-х уровневого):
1. Приложение в демо-режиме может распространяться неограниченному числу лиц, стоимость защиты на копию должна быть невысокой, в идеале нулевой, или, по крайней мере, стремиться к нулю при увеличении числа копий (то есть стоимости порядка стоимости софтверного ключа на копию недопустимы, фиксированная стоимость на все копии - нормально).
2. Возможность активация копии без интернета (например, по E-Mail).
3. Защищенное приложение (после активации) должно работать в специальном демо-режиме (например, полнофункционально по меню, но с ограничением по объему данных и числу одновременных подключений - ограничения реализуются программно внутри приложения) в течение ограниченного времени (скажем 1 месяц) после первого запуска для неограниченного количества инсталляций.
4. После истечения демо-периода должны появляться некоторые дополнительные ограничения вплоть до полной потери работоспособности.
5. Приложение должно детально информировать пользователя о текущих и будущих ограничениях в случае отказа от покупки лицензии и сроках наступления таковых ("осталось 2 дня до ...").
6. При покупке официальной лицензии (допустимо и даже желательно включающей аппаратный ключ) то же самое приложение начинает работать в полнофункциональном режиме. Вариант с переустановкой, хотя и допустим, но нежелателен. Допускается замена фиксированного числа файлов уже установленного приложения (например, часть dll копируется в рабочий каталог приложения из подпапки папки "FullEdition", а при необходимости вернуться в демо-режим из подпапки "TrialEdition").
7. Поддержка следующих видов лицензирования (всех или выборочно)
- именованная лицензия на физическое лицо
- лицензия на количество одновременных подключений к некоторому серверу
- то же самое (именованная или параллельная лицензия), но в разрезе некоторого функционала (модуля, подсистемы, формы)
- на объем данных (например, число записей в некоторой таблице)
- на физический компьютер с некоторыми характеристиками, например число ядер, объем памяти
8. При превышении лицензионных ограничений (например, числа ядер) или отсутствии ключа приложение должно переходить в демо-режим (см. вышеприведенные пункты).
9. Наличие готовой функциональности выписки и учета лицензий, в том числе через интернет и E-mail
10. API, исходный код или другие механизмы расширения функциональность выписки и учета лицензий в части специфических требований клиента
11. Возможность развертывания функциональности выписки и учета лицензий у нас на площадке (случай, когда база клиентов и все процессы общения с ними - являются конфиденциальной информацией)
Также рассматриваются частичные решения (реализация не всех, а только некоторых требований).
В целом хотелось бы услышать мнение представителей Guardant о том, как они сами видят реализацию демо-режима (собственно основной вопрос данной темы). Если есть какая-то проработанная концепция с готовым решением в части Демо, то мы готовы пересмотреть свои требования (кроме 1.).
По вариантам лицензирования достаточно получить ответ в следующем разрезе:
(1) невозможно
(2) возможно, но наша помощь может только в части документации текущей имеющейся функциональности
(3) у нас есть наработки в этой области (например, примеры внедрения, демо-примеры, документация, консультации и т.д.) и мы можем предложить их клиенту для самостоятельного использования в своем продукте
(4) у нас есть готовое решение (как вариант - ведутся работы для подготовки такого решения с известной датой завершения)