Ответы пользователя по тегу Проектирование программного обеспечения
  • Какой стек использовать для десктоп приложений в гос.предприятиях в 2023 году?

    Возможно, electron подойдет.
    Ответ написан
    Комментировать
  • Как правильно спроектировать?

    1) Руками добавлять новый тип в список
    2) Через рефлексию добавлять в словарь все дочерние типы
    https://stackoverflow.com/questions/857705/get-all...
    3) Через конфиг
    4) Через IoC добавить несколько реализаций. Вот пример
    services.AddSingleton<IService, ServiceA>();
    services.AddSingleton<IService, ServiceB>();
    services.AddSingleton<IService, ServiceC>();
    var myIServices = serviceProvider.GetServices<IService>();
    Ответ написан
    Комментировать
  • Чем все-таки отличается MVC от MVP?

    Разница между подходами в том, каким образом связываются команды пользователи и обработчики.

    MVC - когда пользователь дает команды не View, а контроллеру (т.е. View не имеет как-таковой логики)
    (пример=ASPX: статическая html страница - это View, а http-запросы идут в контроллер (на сервере))

    MVP - когда пользователь взаимодействует с View, а View взаимодействует с Presenter-ом напрямую.
    (пример=winForms: форма - это View, при нажатии кнопки вызывается код из Form.cs(Presenter)

    MVVM - когда пользователь взаимодействует с View, а View через биндинги взаимодействует с VM
    (пример=WPF: форма - это View. при нажатии кнопки взаимодействие с кодом происходит через биндинги)

    По крайней мере я так понял :)

    По вашему вопросу: и Controller и Presenter меняют представление. Разница в том, что в первом случае представление никак не взаимодействует с Controller-ом (ajax не в счёт), а во втором - взаимодействует напрямую.

    Могу предположить, что если в сайте есть ajax, который связывает представление с контроллером, то это уже не MVC, а MVP.
    Ответ написан
    Комментировать
  • Какие технологии выбрать для работы с базой данных?

    1) Mono + Gtk (как windows forms, только кроссплатформенный)
    2) Сервер на .net core (win или linux) + морду на js+html (удобно, т.к. пользователям ничего не надо устанавливать и обновлять)

    СУБД смысла менять нет. 500 чел это совсем мало.
    Докер тоже не нужен.
    Ответ написан
    Комментировать