AleksMorozova / prizm

4 stars 8 forks source link

architect solution for dummy data (for UI demo) #20

Closed jane-u closed 9 years ago

jane-u commented 10 years ago

Propose an architect solution for dummy hardcoded data (for UI demo). This solution must take into account Passive View MVP concept (see for reference: http://habrahabr.ru/post/211899/) so view doesn't know who and how use it, view doesn't contain any logic. The concept is supposed to be simpler than Presenter shown in example, and stay separately to switch it off quick. No coding at this time.

demmy commented 10 years ago

image

Центральный модуль AppContext хранит контекст приложения и отвечает за манипуляцию Presenter`ами. Presenter хранит в себе экземпляры модели и представления, извлекает данные из модели и формирует их для отображения в представлении. Представление отображает данные и маршрутизирует команды пользователя и события для обработки Presenterом. Модель определяет бизнес-логику, данные для пользователя получая их из репозитория данных.

Поскольку данные могут быть получены из различных источников необходимо определить единое место в котором осуществляется доступ к фактическому источнику данных. Для этих целей используется паттерн Repository, выступающий фасадом реальных операций доступа к данным. Модель, через интерфейс получает доступ к конкретной реализации репозитория. По необходимости, например для тестирования, реализация репозитория может быть подменена.

jane-u commented 10 years ago

We do not need to replace just data source. We need to replace everything but views. It is not necessary to implement BL and keep data relativity. It will take a lot of time and it will be almost ready application. We just need something to implement quickly to show in controls. This "something" will be managed by application (application context) and work with views while views know nothing about this "something".

jane-u commented 10 years ago

репозиторий для работы с данными и его тестовую имплементацию на примере User https://github.com/olga-jane/prizm/tree/D_Kulish - в варианте MVP но для его полной имплементации пришлось бы перестраивать все формы и https://github.com/olga-jane/prizm/tree/D_Kulish_ViewModel - в варианте ViewModel там тоже идет разделение доступа к различным репозиторям но делается это несколько проще.

demmy commented 10 years ago

Devexpress предлагает отличное решение по архитектуре, которое идеально нам подходит как по представлениям так и по биндингам данных паттерн MVPVM который является более современной версией MVP в которой устранена проблема биндинга данных https://documentation.devexpress.com/#WindowsForms/CustomDocument17232 там же и пошаговый пример реализации похожего на наше приложения.