Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.
Заранее извиняюсь, если что-то не то с терминологией. Под лицензией понимается некий файл, который должен находиться в некой папке. Проект — .NET 2.0, Windows Forms
Спасибо.
Re: Ограничение функциональности в зависимости от лицензии
Здравствуйте, andyag, Вы писали:
A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя?
Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.
Re[2]: Ограничение функциональности в зависимости от лицензи
Здравствуйте, De-Bugger, Вы писали:
DB>Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.
Т.е. если юзер решит разориться на продвинутую лицензию, ему придётся новый билд присылать? А в самой лицензии хранить только дату истечения?
Re[2]: Ограничение функциональности в зависимости от лицензи
Здравствуйте, De-Bugger, Вы писали:
A>>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя?
DB>Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.
Думаешь это как то поможет? Ну заменит он свои if на #if и что сразу странет легче поддерживать?
WBR, Igor Evgrafov
Re: Ограничение функциональности в зависимости от лицензии
Здравствуйте, andyag, Вы писали:
A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.
"Будь проще и люди к тебе потянутся" (c) чей-то там.
Обычно делают т.н. "редакции" в этой редакции доступно то и то, а в этой еще и это. Плюс ко всему, судя из описания, у вас огромные структурные/архитектурные проблемы в проекте. Пока не поздно нужно пересмотреть организацию. Ну и как всегда рефакторинг рулит
Re[3]: Ограничение функциональности в зависимости от лицензи
Здравствуйте, andyag, Вы писали:
A>Привет.
A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.
A>Заранее извиняюсь, если что-то не то с терминологией. Под лицензией понимается некий файл, который должен находиться в некой папке. Проект — .NET 2.0, Windows Forms
Заметно зависит от того, ломают вас сильно или нет. Если сильно, то чем больше проверок в разных местах, тем лучше, и может оказаться, что текущий вариант не так плох.