powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контроль целостности сущностей в многослойных приложениях
9 сообщений из 9, страница 1 из 1
Контроль целостности сущностей в многослойных приложениях
    #39016472
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не название диссертации, это опять я...


В многослоцных приложениях сущности имеют разные представления в разных слоях. Возьмём классический шаблон MVVM. В модели у нас

Код: c#
1.
2.
3.
4.
class Dog
{
    public string Name {get; set;}
}



В модели представления у нас

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class DogVM
{
    Dog _dog;

    public string Name 
    {
        get {return _dog.Name;}
    }
}



Если уберём в модели свойство Name или изменим имя этого свойства, но забудем поменять это в модели представления, при компиляции нам скажут, в чём ошибка. А если мы добавим в модель новое свойство, но не в модель представления? При компиляции ничего не произойдёт.

И это не только в MVVM. В любых слоях любых многослойных приложений - нужно как-то контролировать целостность сущностей. Сейчас я знаю только один способ - просто помнить, что если где-то что-то поменял, то по всем представлениям изменённой сущности во всех слоях надо сделать соответствующие изменения. Т. е. это соглашение на словах. А как сделать это соглашение так, чтобы его можно было контролировать при компиляции хотя бы?

Или, может, есть ещё какие-то, более лучшие способы?
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016499
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112,
И зачем это нужно? MVVM паттерн специально придуман, чтобы убрать жесткую привязку, а ты сейчас хочешь снова все жестко привязать. И какой смысл использования MVVM тогда, если вся его прелесть в гибкости будет убита?
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016512
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronAlexey2112,
И зачем это нужно? MVVM паттерн специально придуман, чтобы убрать жесткую привязку, а ты сейчас хочешь снова все жестко привязать. И какой смысл использования MVVM тогда, если вся его прелесть в гибкости будет убита?
Один-то ты ещё можешь об этом помнить (но всё равно забудешь что-нибудь), а когда команда работает и каждый чел над своим слоем? Ты что-то изменил, как другой об этом узнает? Только когда у него не скомпилируется?
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016519
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Один-то ты ещё можешь об этом помнить (но всё равно забудешь что-нибудь), а когда команда работает и каждый чел над своим слоем? Ты что-то изменил, как другой об этом узнает? Только когда у него не скомпилируется?
Ну так если ты изменил, то ты знаешь для чего изменил, соответственно заканчиваешь свою задачу и везде где необходимо делаешь изменения и свободен. Другим-то какое дело? А вообще S OLID - полезная штука, которой стоит придерживаться. Из-за игнорирования этих принципов часто бывают проблемы в проектах, над которыми работают несколько человек одновременно.
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016525
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronAlexey2112Один-то ты ещё можешь об этом помнить (но всё равно забудешь что-нибудь), а когда команда работает и каждый чел над своим слоем? Ты что-то изменил, как другой об этом узнает? Только когда у него не скомпилируется?
Ну так если ты изменил, то ты знаешь для чего изменил, соответственно заканчиваешь свою задачу и везде где необходимо делаешь изменения и свободен. Другим-то какое дело? А вообще S OLID - полезная штука, которой стоит придерживаться. Из-за игнорирования этих принципов часто бывают проблемы в проектах, над которыми работают несколько человек одновременно.
Не понимаю, как этот солид поможет челам получать извещения об изменениях сущности на каком-нибудь слое? Тут не солид, а трекер какой-нибудь нужен. Ну или на уровне языка поддержку какую-нибудь.
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016537
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хранить значения свойств не по отдельности, а в виде Dictionary, предоставлять доступ к ним через index'атор.
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016544
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112 А если мы добавим в модель новое свойство, но не в модель представления?
...
Или, может, есть ещё какие-то, более лучшие способы?автоматическая генерация интерфейсов между слоями, как это делает EF.
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016619
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Не понимаю, как этот солид поможет челам получать извещения об изменениях сущности на каком-нибудь слое? Тут не солид, а трекер какой-нибудь нужен. Ну или на уровне языка поддержку какую-нибудь.
Как ты получаешь извещение о добавлении нового класса-интерфейса-делегата-свойства в новой версии .NET Framework или любой другой библиотеки?
...
Рейтинг: 0 / 0
Контроль целостности сущностей в многослойных приложениях
    #39016641
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyAlexey2112 А если мы добавим в модель новое свойство, но не в модель представления?
...
Или, может, есть ещё какие-то, более лучшие способы?автоматическая генерация интерфейсов между слоями, как это делает EF.

хотел написать что нужны интерфесы но побоялся выглядить глупо :)

вот видео в котором по моему выход из схожей проблемы предлагали
YouTube Video
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контроль целостности сущностей в многослойных приложениях
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]