Ограничение функциональности в зависимости от лицензии
От: andyag  
Дата: 24.03.11 12:08
Оценка:
Привет.

Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.

Заранее извиняюсь, если что-то не то с терминологией. Под лицензией понимается некий файл, который должен находиться в некой папке. Проект — .NET 2.0, Windows Forms

Спасибо.
Re: Ограничение функциональности в зависимости от лицензии
От: De-Bugger  
Дата: 24.03.11 12:25
Оценка: 1 (1)
Здравствуйте, andyag, Вы писали:

A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя?


Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.
Re[2]: Ограничение функциональности в зависимости от лицензи
От: andyag  
Дата: 24.03.11 14:40
Оценка:
Здравствуйте, De-Bugger, Вы писали:

DB>Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.

Т.е. если юзер решит разориться на продвинутую лицензию, ему придётся новый билд присылать? А в самой лицензии хранить только дату истечения?
Re[2]: Ограничение функциональности в зависимости от лицензи
От: GarryIV  
Дата: 24.03.11 18:41
Оценка:
Здравствуйте, De-Bugger, Вы писали:

A>>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя?


DB>Я бы посоветовал свой дистрибутив для каждого типа лицензии. Код оставил бы как есть, только с разными дефайнами, каждая сборка — со своим дефайном.


Думаешь это как то поможет? Ну заменит он свои if на #if и что сразу странет легче поддерживать?
WBR, Igor Evgrafov
Re: Ограничение функциональности в зависимости от лицензии
От: YuriKobets Россия http://www.truelaunchbar.com — замена панели быстрого запуска
Дата: 24.03.11 19:25
Оценка:
Здравствуйте, andyag, Вы писали:

A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.


"Будь проще и люди к тебе потянутся" (c) чей-то там.

Обычно делают т.н. "редакции" в этой редакции доступно то и то, а в этой еще и это. Плюс ко всему, судя из описания, у вас огромные структурные/архитектурные проблемы в проекте. Пока не поздно нужно пересмотреть организацию. Ну и как всегда рефакторинг рулит
Re[3]: Ограничение функциональности в зависимости от лицензи
От: De-Bugger  
Дата: 24.03.11 19:49
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Думаешь это как то поможет? Ну заменит он свои if на #if и что сразу странет легче поддерживать?


А я откуда знаю, поможет это ему или нет. Если код нормальный то почему бы и нет. Мне — помогает.
Re: Ограничение функциональности в зависимости от лицензии
От: Sharowarsheg  
Дата: 24.03.11 20:04
Оценка:
Здравствуйте, andyag, Вы писали:

A>Привет.


A>Подскажите пожалуйста, есть ли какой-то стандарт де-факто (или хотя бы best practices) для реализации ограничения функциональности в зависимости от лицензии, которая есть у пользователя? Сопровождаю проект, в коде каждые 100 строчек стоит if, в котором проверяется можно ли что-то сделать или нет. При этом получается, что все ограничения плавно размазаны по всему коду и в результате довольно сложно сказать с какой лицензией что можно делать. А если ещё и дублирование кода учесть, вообще мрак.


A>Заранее извиняюсь, если что-то не то с терминологией. Под лицензией понимается некий файл, который должен находиться в некой папке. Проект — .NET 2.0, Windows Forms


Заметно зависит от того, ломают вас сильно или нет. Если сильно, то чем больше проверок в разных местах, тем лучше, и может оказаться, что текущий вариант не так плох.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.