Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Различные варианты конфигурации приложения

Есть приложение с полной функциональностью. Это приложение для одного типа пользователей. Они могут редактировать/удалять/добавлять. Но есть и другие пользователи, которым это делать нельзя.
Каким путем пойти, что бы не создавать несколько похожих приложений, но с небольшими различиями по функционалу?
В Delphi я применял такой подход.
#IFDEF DISPATCHER ... #ENDIF
#IFDEF VIEWER ... #ENDIF
В VisualStudio почему-то так
#if DEBUG // Работает #endif
#if RELEASE // Не работает #endif


Ответ

Все дело в настройках проекта. Конфигурация Debug по умолчанию определяет символы DEBUG и TRACE, конфигурация же Release определяет только TRACE (символа RELEASE не существует).
Вам поможет вот такой способ:
#if !DEBUG
#endif
Или вот такой:
#if DEBUG
#else
#endif
Также в свойствах проекта вы можете определить свои символы для условной компиляции. У меня это делается вот так:

Но, вообще говоря, для разных режимов работы обычно хорошо подходят настройки и конфигурационные файлы:
if (Properties.Settings.Default.CanEditFoo) { // ... }
Также имеет смысл ограничить доступ пользователя на стороне сервера или СУБД. Если в организации используется Active Directory - то хорошим решением будет авторизация пользователей на основе доменных групп, к которым они относятся.

Комментариев нет:

Отправить комментарий