@FlyServer

Как разрабатывать ПО с GUI, который адаптируется под определённого пользователя?

На данный момент в организации есть десктопное приложение, которое "показывает" одинаковый интерфейс для каждого пользователя. Таким образом, даже если пользователю недоступен какой-либо функционал, он будет видеть кнопку, которая этот функционал "запускает", но при её нажатии или ничего не произойдёт, или будет ошибка. Примером такой функции является подключение к удалённому рабочему столу для удалённой работы - не каждый пользователь имеет права для этого.
Нужно разработать приложение, которое для каждого пользователя будет показывать персонализированный интерфейс, в зависимости от того, кем является пользователь, к какой группе относится и т. д. Ещё необходимо реализовать механизм принудительного автообновления приложения, чтобы у всех пользователей была актуальная версия. Эти два требования позволяют избавиться от основных недостатков старого приложения.
Если с автообновлениями все достаточно понятно, то вот с персонализированным GUI в десктопном приложении все не так однозначно.
Будет использоваться WPF (C#). Есть ли какие-то правила разработки подобных интерфейсов? А если нет, то как бы вы сделали это?
Лично я (я не профессиональный разработчик) вижу пока два пути - использовать условные конструкции для решения об отображении или неотображении тех или иных элементов GUI, либо иметь разные XAML-формы для разных групп пользователей. Но данные способы мне кажутся неоптимальными.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
псевдокод

void LoadForm(){
IsAdminVisible = IsUserAdmin;
}


И где то в разметке делаете биндинг на это свойство на свойство Visible.
Ответ написан
Комментировать
WNeZRoS
@WNeZRoS
использовать условные конструкции для решения об отображении или неотображении тех или иных элементов GUI, либо иметь разные XAML-формы для разных групп пользователей


Это одно и тоже решение, просто условия разное меняют. Всё зависит от вида приложения можно применять разные решения.

Для хороших WPF приложений принято использовать MVVM, соответственно для всего будут вьюмодели.
Если это приложение - набор ярлыков, то можно просто не создавать вью модели или скрывать (BooleanToVisibilityConverter) недоступные ярлыки.
Если что-то сложнее, то вероятно для разных пользователей будут разные вьюмодели и разные XAML шаблоны для них.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы