powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / MVVM без ORM
43 сообщений из 43, показаны все 2 страниц
MVVM без ORM
    #38394112
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вопрос: по правильному, если не использовать ORM, запросы к базе должны выполняться на уровне модели?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394245
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyТакой вопрос: по правильному, если не использовать ORM, запросы к базе должны выполняться на уровне модели?Нет, на уровне конкретной реализации репозитоия
А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394246
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложения WPF с шаблоном проектирования MVVM. Модель данных и репозиторий.
Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще
тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей: это просто не имеет значения.
Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394447
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

skyANAНет, на уровне конкретной реализации репозитоия
А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать.
Значит правильно мыслю

skyANA Приложения WPF с шаблоном проектирования MVVM. Модель данных и репозиторий.
Читал, тяжеловато пока переваривается и не все складывается в "стройные ряды", надо еще раз перечитать, может после сейчас лучше сложится
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394755
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAbdfyyТакой вопрос: по правильному, если не использовать ORM, запросы к базе должны выполняться на уровне модели?Нет, на уровне конкретной реализации репозитоия
А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать.
Я в button1_Click всегда делаю - работает! ))

skyANA Приложения WPF с шаблоном проектирования MVVM. Модель данных и репозиторий.
Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще
тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей: это просто не имеет значения.
Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.
Из-за старости это уже во многом вредная статья. Её править и улучшать давно надо. Например, про этот самый ORM не сказано. Я раньше, как дурак, делал репозиторий поверх ORM, сгенеренной EF. Или ещё вот там строками имена параметров передаются, когда давно уже можно написать через выражения и лямбды. И ещё, наверняка, есть нюансы. Я бы советовал более современный и подробный вариант http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx (и ещё 6-я глава там... и вообще лучше там всё прочитать).
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394761
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, офигенно, что они сделали бесплатную книгу в ПДФ с гиперссылочным оглавлением и подсвеченным кодом. Когда инета нет.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394767
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320бесплатную
Ой, ошибся. Но найти не проблема. ))
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394814
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я в button1_Click всегда делаю - работает! ))Тро-ло-ло. батон клик в WPF, пошутил, так пошутил
user7320Из-за старости это уже во многом вредная статья. Её править и улучшать давно надо. Например, про этот самый ORM не сказано. Я раньше, как дурак, делал репозиторий поверх ORM, сгенеренной EF.Дак так и надо. И раньше и сейчас.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394816
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.: иногда лучше жевать, чем говорить.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394818
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyСпасибо!

skyANAНет, на уровне конкретной реализации репозитоия
А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать.
Значит правильно мыслюА как именно: в сторону data layer или "по быстрому"?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394891
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА как именно: в сторону data layer или "по быстрому"?
Код: plaintext
1.
2.
3.
4.
5.
6.
    View
      |
 ViewModel
      |
   Model
      |
Data Access

Собственно, если я все правильно понимаю, "ViewModel" запрашивает у "Data Access" объекты "Model"
"Model" - ничего не знает об остальных
"Data Access" - осуществляет загрузку данных и сохранение
...
Рейтинг: 0 / 0
MVVM без ORM
    #38394925
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320... Я бы советовал более современный и подробный вариант http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx (и ещё 6-я глава там... и вообще лучше там всё прочитать).
user7320Кстати, офигенно, что они сделали бесплатную книгу в ПДФ с гиперссылочным оглавлением и подсвеченным кодом. Когда инета нет.user7320user7320бесплатную
Ой, ошибся. Но найти не проблема. ))
Там в Source вроде была chm этого дела, а еще на хабре есть перевод: http://habrahabr.ru/post/176851/
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395013
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyа еще на хабре есть перевод: http://habrahabr.ru/post/176851/
По-русски читать - только время зря терять. ))
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395296
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такие вопросы возникли:
- в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты.
- как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки)
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395297
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320По-русски читать - только время зря терять. ))
Согласен, но на начальном этапе, и не полностью свободном английском, неплохое подспорье
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395309
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyy- в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты.После вызова метода Refresh :) О какой ORM речь?
bdfyy- как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки)Хотите - имейте. Можете реализовать Registry (Реестр) , а можете по простому.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395331
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA...О какой ORM речь?
В том-то и беда что придется самому писать эти механизмы
skyANA... а можете по простому.
это как?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395412
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyЕще такие вопросы возникли:
- в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты.
- как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки)
https://www.google.ru/?gws_rd=cr&ei=wHUyUuzoF-mk4gS6tICQDA#newwindow=1&q=entity framework concurrency
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395413
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как пример.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395415
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Скайана имел ввиду ещё и свой репозиторий с конкуренцией и прочими плюшками, то я не зря сказал, что "я как дурак реализовывал". Тут тема недавно была по обсуждению своего репозитория, из которой я вынес вывод, что для простых и даже средних приложений ORM, создаваемое EF, вполне сойдёт за репозиторий. А если по-нормальному реализовывать, то это "не для средних умов". В смысле, опыт нужен, и вообще. Если что, классы ORM у EF являются частичными (парциальными), так что можно дописать свою функциональность в других файлах, не боясь, что при перегенерации ORM весь ваш код будет потерян.

А у Джоша Смита приведён пример репозитория ну очень простого. Такого, который в реальной жизни не нужен, т. к. даже хуже энтитифреймворковского ORM. Это у него была такая "затычка", т. к. цель-то была не про репозиторий рассказать, а про MVVM. Для реализации репозитория есть спецстатьи, которые обычно объединяются с шаблоном Unit Of Work и т. д. И опять же, там обычно всё сильно просто. Настолько, что ORM от EF с возможностью дописывания парциальных классов опять тут может служить вполне нормальной заменой, а чаще всё равно превосходит по возможностям.

Так что или писать нормально (на что у вас уйдёт больше месяца, и то, если вы с опытом), или пока забыть о самописных и пользоваться готовыми ORM.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395419
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyuser7320По-русски читать - только время зря терять. ))
Согласен, но на начальном этапе, и не полностью свободном английском, неплохое подспорье
С таким подходом начальный этап никогда не кончится. ))
Я учился читать (пока всего лишь читать, ибо разговор и письмо это не одно и то же, что читать - это я делаю гораздо хуже) именно при "не полностью свободном английском". Первый год было трудно, но потом гораздо легче, и чейчас, когда уже третий год практикуюсь, почти свободно (иногда лазию в словарь на планшете-телефоне, с которых и читаю - секундное дело) читаю статьи по научной тематике (научпопу, если точнее - Phys.org и т. п.), программированию, из Википедии и пр. При этом стараюсь именно на английском читать, если есть многоязычный вариант. И с фильмами и прочим лучше делать то же самое. Через нехочу.

А принцип обучения у меня примерно такой же, как когда я русский изучал. Когда я был маленький, я слушал речь родителей и вообще людей, и учился говорить. Подрос и стал читать по складам (выучили дома и в детсаде). В первом классе уже сносно читал, а во втором читал уже всякие романы. Кроме того, большой объём прочтённой литературы, содержащей минимум ошибок (проверенной корректором) улучшает грамотность письма, т. к. зачастую грамотность - простое запоминание шаблонов слов и их употребления. Много читаешь грамотной литературы - много значешь шаблонов. Редко кто про себя проговаривает правило, чтобы определить, как правильно писать тут или там - в основном на запомненных шаблонах написания-употребления всё держится. С английским всё точно также. Разница только в том, что у меня речевая практика почти отсутствует, т. к. мне не с кем разговаривать и носителей языка рядом со мной нет. Но вот чтение я форсировал чрезвычайно, а это уже немало.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395431
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Если Скайана имел ввиду ещё и свой репозиторий с конкуренцией и прочими плюшками, то я не зря сказал, что "я как дурак реализовывал". Тут тема недавно была по обсуждению своего репозитория, из которой я вынес вывод, что для простых и даже средних приложений ORM, создаваемое EF, вполне сойдёт за репозиторий. А если по-нормальному реализовывать, то это "не для средних умов". В смысле, опыт нужен, и вообще. Если что, классы ORM у EF являются частичными (парциальными), так что можно дописать свою функциональность в других файлах, не боясь, что при перегенерации ORM весь ваш код будет потерян.

А у Джоша Смита приведён пример репозитория ну очень простого. Такого, который в реальной жизни не нужен, т. к. даже хуже энтитифреймворковского ORM. Это у него была такая "затычка", т. к. цель-то была не про репозиторий рассказать, а про MVVM. Для реализации репозитория есть спецстатьи, которые обычно объединяются с шаблоном Unit Of Work и т. д. И опять же, там обычно всё сильно просто. Настолько, что ORM от EF с возможностью дописывания парциальных классов опять тут может служить вполне нормальной заменой, а чаще всё равно превосходит по возможностям.

Так что или писать нормально (на что у вас уйдёт больше месяца, и то, если вы с опытом), или пока забыть о самописных и пользоваться готовыми ORM.Запомни. ORM - это не репозиторий! Тупо по определению.
Ты своими рассуждениями только вводишь неопытных разработчиков в заблуждение.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395436
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyskyANA...О какой ORM речь?
В том-то и беда что придется самому писать эти механизмыКакие механизмы? Опишите задачу.
bdfyyskyANA... а можете по простому.
это как?Держать модель в памяти, а во View, где требуется работать с её частью, отдавать эту часть по ссылке.

Если Вы объясните, что за Окна и в какой последовательности они могут открываться, то можно будет что-то сказать конкретнее.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395465
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть проект написанный на связке: Delphi + FireBird. Написан по старинке, без ORM с прямыми запросами к БД в окнах.
По разным причинам принято решение Delphi "сменить" на WPF от Микрософта. Базу трогать нельзя, совместимость.

Пробовал натравить на базу EF он вешается, т.е. сгенерить до конца не может. Да и в сгенеренном много чего не хватает.
Все усугубляется тем, что объекты хранимые в таблице могут выступать как схожими так и разными.
Поясню: Есть таблица А и В. В таблице А хранится объект АА, в таблице В объекты ВА и ВВ. Объект ВА может быть контейнером для ВВ, но при этом объект АА может быть контейнером для обеих объектов ВА и ВВ. И с точки зрения объекта АА между объектами ВА и ВВ нет разницы. Причем объекты ВА и ВВ могут хранится в разных базах, которые могут редактироваться независимо в разных местах.
Как натравить NHibernate на базу не понял. По любому понял (на моем уровне знания данных ОRM), что придется многое допиливать руками.

По поводу клиента. Объекты ВА и ВВ могут быть соответственно отображены скопом, например в виде таблицы, или в виде зависимости какой нибудь графической схемой. Эти окна абсолютно не связаны с точки зрения использования. т.е. один клиент может редактировать только в одном окне, другой только в другом, а третий в обеих окнах сразу.

Все это конечно упрощенно. Надеюсь, что нормально объяснил. Готов добавить пояснения еще. Спасибо.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395623
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗапомни. ORM - это не репозиторий! Тупо по определению.
Ты своими рассуждениями только вводишь неопытных разработчиков в заблуждение.
То, что генерит EF - "как бы репозиторий". Его можно использовать вместо простого репозитория. Как-то так?

Вот тот же Джош Смит, да и другие писатели статей, приводят примеры реализации репозитория со стандартным набором методов получить-записать-удалить-проверитьНаличие-получитьПолныйСписок и т. п. для каждой сущности. ORM от EF содержит то же самое, плюс ещё в пять раз больше, плюс проверен и на баги кучей профи. Ну и чем не репозиторий?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395900
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, и для кого я выделял текст , спрашивается.Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще
тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей : это просто не имеет значения.
Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.Репозиторий реализует прозрачную работу с данными, которые чёрт знает как могут быть распределены. ORM этого не умеет, это тупо object-relational mapping c дополнительными плюшками.

Вот скажите как реализовать простой репозиторий Джоша Смита, что загружает данные клиентов из файла XML, средствами EF?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395923
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyЕсть проект написанный на связке: Delphi + FireBird. Написан по старинке, без ORM с прямыми запросами к БД в окнах.
По разным причинам принято решение Delphi "сменить" на WPF от Микрософта. Базу трогать нельзя, совместимость.

Пробовал натравить на базу EF он вешается, т.е. сгенерить до конца не может. Да и в сгенеренном много чего не хватает.
Все усугубляется тем, что объекты хранимые в таблице могут выступать как схожими так и разными.
Поясню: Есть таблица А и В. В таблице А хранится объект АА, в таблице В объекты ВА и ВВ. Объект ВА может быть контейнером для ВВ, но при этом объект АА может быть контейнером для обеих объектов ВА и ВВ. И с точки зрения объекта АА между объектами ВА и ВВ нет разницы. Причем объекты ВА и ВВ могут хранится в разных базах, которые могут редактироваться независимо в разных местах.
Как натравить NHibernate на базу не понял. По любому понял (на моем уровне знания данных ОRM), что придется многое допиливать руками.

По поводу клиента. Объекты ВА и ВВ могут быть соответственно отображены скопом, например в виде таблицы, или в виде зависимости какой нибудь графической схемой. Эти окна абсолютно не связаны с точки зрения использования. т.е. один клиент может редактировать только в одном окне, другой только в другом, а третий в обеих окнах сразу.

Все это конечно упрощенно. Надеюсь, что нормально объяснил. Готов добавить пояснения еще. Спасибо.Что за A и B, предметная область что-ли секретная?

Ну да ладно. То есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"?

И Вы не озвучили проблему: какие механизмы не получается реализовать?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38395963
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, и для кого я выделял текст , спрашивается.Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще
тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей : это просто не имеет значения.
Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.Репозиторий реализует прозрачную работу с данными, которые чёрт знает как могут быть распределены. ORM этого не умеет, это тупо object-relational mapping c дополнительными плюшками.

Вот скажите как реализовать простой репозиторий Джоша Смита, что загружает данные клиентов из файла XML, средствами EF?
Да, я тут слишком узко понял. Согласен. Но если мы говорим только о случае, когда данные поступают из БД, то ORM этой БД может служить репозиторием же?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396008
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бизнес объект - класс, хранящий данные.

Служба - класс, содержащий логику.

Репозитарий - служба, имеющая типовой интерфейс, предназначенная для работы с бизнес объектами определённого типа.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396127
bdfyy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто за A и B, предметная область что-ли секретная?
Визуальная разработка техпрограмм для контроллеров. Вроде наиболее известная в моей области: Квинт.
skyANAТо есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"?
Да, и далее узел (компонент) ВА содержит в себе набор дочерних узлов (компонентов) ВВ, и может содержать в себе узел (компонент) AA
skyANAИ Вы не озвучили проблему: какие механизмы не получается реализовать?
Как в идеале должна быть правильно организованна работа, без ORM.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    View            - пользовательский интерфейс
      |
Markup Extension    - по мере необходимости и возможности
      |
   ViewModel        - связывает поток данных между интерфейсом и моделью, осуществляет проверку данных, и инициирует загрузку данных посредством уровня Data Access
      |
    Model           - хранит в себе фактически копию базы данных. должен ли содержать проверку данных, что-то типа IDataErrorInfo?
      |
 Data Access        - осуществляет чтение, обновление, сохранение данных
      |
  База данных

Ничего не упустил?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396161
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторModel - хранит в себе фактически копию базы данных. должен ли содержать проверку данных, что-то типа IDataErrorInfo?
У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД".

Насчёт IDataErrorInfo - я его применяю совместно с атрибутами. Ну, если брать того же Джоша Смита, то у него валидация происходит прямо в IDataErrorInfo, а у меня - в атрибутах. Я на этом форуме уже кучу тем по этой теме насоздавал. Там получается, что в конечном счёте с атрибутами медленнее (т. к. их приходится вытаскивать через рефлексию и всё такое), но с ними гораздо нагляднее, т. к. все ограничения на модель присутствуют прямо в начале её определения в компактном виде, и не где-то далеко внизу по коду, где там IDataErrorInfo реализован. Если пихать всю и сложную валидацию в IDataErrorInfo, то эта валидация превращается в простыню кода проверок, который трудно обозревать. А медленность атрибутов относительная - если атрибуты и валидация не задействованы во время интенсивных расчётов, а применяются, скажем, только во время ввода небольших данных пользователем, то их и с атрибутами можно быстро обработать без тормозов для пользователя.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396168
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396171
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания
У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде.

А вообще да, Шахиджанян виноват...
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396189
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания
У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде.

А вообще да, Шахиджанян виноват...
Будь последовательными. Твою кашу потока сознания сложно осилить. Да и лень много читать.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396207
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания
У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде.

А вообще да, Шахиджанян виноват...
Будь последовательными. Твою кашу потока сознания сложно осилить. Да и лень много читать.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396249
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД".Не хочешь, не городи. Не видишь смысла, не храни. Когда через год наткнёшься на грабли, тогда и поймёшь.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396259
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания
У меня много проблем. Я пытаюсь их все сразу решить...Купи книжку по DDD.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396279
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД".Не хочешь, не городи. Не видишь смысла, не храни. Когда через год наткнёшься на грабли, тогда и поймёшь.
Приведите, пожалуйста, пример граблей? Ну нет у меня опыта, поэтому на мой взгляд это кажется логичным - не копировать одну и ту же схему в разные слои.

Ну, вот, к примеру, схемка из ORM (вложение).

ProductType там выглядит так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public partial class ProductType
{
		public ProductType()
		{
				this.Products = new HashSet<Product>();
		}

		public int Id { get; set; }
		public string Name { get; set; }

		public virtual ICollection<Product> Products { get; set; }
}



А модель этой сущности будет выглядеть точно также, т. к. модель тоже должна иметь те же свойства. И ту же связь с Product, реализуемую... а почему бы не так же, как и в ORM?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396284
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Приведите, пожалуйста, пример граблей? Ну нет у меня опыта, поэтому на мой взгляд это кажется логичным - не копировать одну и ту же схему в разные слои.
1. Поменялся источник данных. Теперь сущности типа Product берутся из внешнего SOA.
2. Появилось требование ввести новый булевский атрибут Checked для выбора выбранных продуктов.
3. Сменили ORM.
4. Реализация наследования логики.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396297
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, а покажи как у тебя отображается ProductType в Object Browser.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396446
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, а покажи как у тебя отображается ProductType в Object Browser.
Это же POCO - он отображается так же, как и все другие классы, написанные "с нуля". Это если вы зависимости имели ввиду. Но на всякий случай показал во вложении.

Не, ну, на крайняк же можно тупо скопировать этот класс себе в модель? Мне он кажется вполне подходящим для простой модели.
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396511
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdfyyskyANAЧто за A и B, предметная область что-ли секретная?
Визуальная разработка техпрограмм для контроллеров. Вроде наиболее известная в моей области: Квинт.
skyANAТо есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"?
Да, и далее узел (компонент) ВА содержит в себе набор дочерних узлов (компонентов) ВВ, и может содержать в себе узел (компонент) AA
skyANAИ Вы не озвучили проблему: какие механизмы не получается реализовать?
Как в идеале должна быть правильно организованна работа, без ORM.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    View            - пользовательский интерфейс
      |
Markup Extension    - по мере необходимости и возможности
      |
   ViewModel        - связывает поток данных между интерфейсом и моделью, осуществляет проверку данных, и инициирует загрузку данных посредством уровня Data Access
      |
    Model           - хранит в себе фактически копию базы данных. должен ли содержать проверку данных, что-то типа IDataErrorInfo?
      |
 Data Access        - осуществляет чтение, обновление, сохранение данных
      |
  База данных
Все правильно. Возьми csla, в котором бизнес-обекты, а не копия бд.
Dal может быть любым, в том числе и половные orm

Ничего не упустил?
...
Рейтинг: 0 / 0
MVVM без ORM
    #38396515
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все правильно. Я, когда переходил с делфи, взял csla c бизнес-обектами, а не копией бд. Dal в этом фреймворке может быть любым, в том числе и половные orm.
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / MVVM без ORM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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