Backend для WPF-клиентов

Подскажите пожалуйста варианты решения по вопросу. Есть проект - клиентское приложение, которое будет реализовано на WPF. Его задача - отображение данных, хранящихся в БД PostgreSQL, и взаимодействие с ними (добавление/удаление/обновление данных).

Условия:

  1. Клиент должен реализовывать авторизацию пользователя с разделением уровня доступа (администратор/управляющий и т.п.).
  2. Таблиц в базе около 10 штук (клиенты, продукты и т.д.). Вряд ли структура данных будет существенно разрастаться для каждого клиента (в плане добавления новых полей) - скорее, будет увеличиваться количество сущностей в таблицах. Сами сущности связаны между собой внешними ключами и т.д.

Вопросы:

  1. Как, на ваш взгляд, в данном случае, реализовать взаимодействие клиентов с БД? Что-то мне подсказывает, что ходить из клиента в БД напрямую (даже при построении приложения на MVVM, не очень хорошая идея. Как вы считаете - допустимо ли подобное взаимодействие напрямую?
  2. Какая технология аутентификации и авторизации для такого рода проектов предпочтительнее - JWT или что-то еще?

Я рассматривал в теории варианты с бэкендом, состоящим из единственного "сервиса", к которому клиенты обращаются через REST API с применением библиотеки RestSharp. Таким образом, этот "сервер" инкапсулирует БД и не позволяет обращаться к ней напрямую + занимается вопросами аутентификации пользователей. Как вы считаете - приемлем ли подобный вариант? какие проблемы он может за собой повлечь?


Ответы (0 шт):