|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Такой вопрос: по правильному, если не использовать ORM, запросы к базе должны выполняться на уровне модели? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2013, 20:48 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyТакой вопрос: по правильному, если не использовать ORM, запросы к базе должны выполняться на уровне модели?Нет, на уровне конкретной реализации репозитоия А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 07:56 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Приложения WPF с шаблоном проектирования MVVM. Модель данных и репозиторий. Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей: это просто не имеет значения. Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 08:05 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Спасибо! skyANAНет, на уровне конкретной реализации репозитоия А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать. Значит правильно мыслю skyANA Приложения WPF с шаблоном проектирования MVVM. Модель данных и репозиторий. Читал, тяжеловато пока переваривается и не все складывается в "стройные ряды", надо еще раз перечитать, может после сейчас лучше сложится ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 11:23 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
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-я глава там... и вообще лучше там всё прочитать). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:19 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Кстати, офигенно, что они сделали бесплатную книгу в ПДФ с гиперссылочным оглавлением и подсвеченным кодом. Когда инета нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:22 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320бесплатную Ой, ошибся. Но найти не проблема. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:23 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320Я в button1_Click всегда делаю - работает! ))Тро-ло-ло. батон клик в WPF, пошутил, так пошутил user7320Из-за старости это уже во многом вредная статья. Её править и улучшать давно надо. Например, про этот самый ORM не сказано. Я раньше, как дурак, делал репозиторий поверх ORM, сгенеренной EF.Дак так и надо. И раньше и сейчас. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:48 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
P.S.: иногда лучше жевать, чем говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:49 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyСпасибо! skyANAНет, на уровне конкретной реализации репозитоия А это обычно data layer (data access layer, data mapping layer). Но если хотите по быстрому, можете и в модель запихать. Значит правильно мыслюА как именно: в сторону data layer или "по быстрому"? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 14:50 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAА как именно: в сторону data layer или "по быстрому"? Код: plaintext 1. 2. 3. 4. 5. 6.
Собственно, если я все правильно понимаю, "ViewModel" запрашивает у "Data Access" объекты "Model" "Model" - ничего не знает об остальных "Data Access" - осуществляет загрузку данных и сохранение ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 15:34 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320... Я бы советовал более современный и подробный вариант http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx (и ещё 6-я глава там... и вообще лучше там всё прочитать). user7320Кстати, офигенно, что они сделали бесплатную книгу в ПДФ с гиперссылочным оглавлением и подсвеченным кодом. Когда инета нет.user7320user7320бесплатную Ой, ошибся. Но найти не проблема. )) Там в Source вроде была chm этого дела, а еще на хабре есть перевод: http://habrahabr.ru/post/176851/ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 15:56 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyа еще на хабре есть перевод: http://habrahabr.ru/post/176851/ По-русски читать - только время зря терять. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 16:49 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Еще такие вопросы возникли: - в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты. - как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 21:56 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320По-русски читать - только время зря терять. )) Согласен, но на начальном этапе, и не полностью свободном английском, неплохое подспорье ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 21:57 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyy- в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты.После вызова метода Refresh :) О какой ORM речь? bdfyy- как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки)Хотите - имейте. Можете реализовать Registry (Реестр) , а можете по простому. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 22:19 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANA...О какой ORM речь? В том-то и беда что придется самому писать эти механизмы skyANA... а можете по простому. это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2013, 22:47 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyЕще такие вопросы возникли: - в какой момент ORM обычно обновляет данные в модели, если приложение многопользовательское. т.е. несколько пользователей используют один и тот же набор объектов (например, подгруженных из БД), один изменил объект, когда узнают остальные клиенты. - как обычно организовывается работа с объектом в разных окнах, одного приложения. Окна могут быть показаны в разной последовательности или одновременно. Хочется иметь один экземпляр модели для обоих окон или это не верно? (вопрос наверно не для этой ветки) https://www.google.ru/?gws_rd=cr&ei=wHUyUuzoF-mk4gS6tICQDA#newwindow=1&q=entity framework concurrency ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 06:18 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Если Скайана имел ввиду ещё и свой репозиторий с конкуренцией и прочими плюшками, то я не зря сказал, что "я как дурак реализовывал". Тут тема недавно была по обсуждению своего репозитория, из которой я вынес вывод, что для простых и даже средних приложений ORM, создаваемое EF, вполне сойдёт за репозиторий. А если по-нормальному реализовывать, то это "не для средних умов". В смысле, опыт нужен, и вообще. Если что, классы ORM у EF являются частичными (парциальными), так что можно дописать свою функциональность в других файлах, не боясь, что при перегенерации ORM весь ваш код будет потерян. А у Джоша Смита приведён пример репозитория ну очень простого. Такого, который в реальной жизни не нужен, т. к. даже хуже энтитифреймворковского ORM. Это у него была такая "затычка", т. к. цель-то была не про репозиторий рассказать, а про MVVM. Для реализации репозитория есть спецстатьи, которые обычно объединяются с шаблоном Unit Of Work и т. д. И опять же, там обычно всё сильно просто. Настолько, что ORM от EF с возможностью дописывания парциальных классов опять тут может служить вполне нормальной заменой, а чаще всё равно превосходит по возможностям. Так что или писать нормально (на что у вас уйдёт больше месяца, и то, если вы с опытом), или пока забыть о самописных и пользоваться готовыми ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 06:29 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyuser7320По-русски читать - только время зря терять. )) Согласен, но на начальном этапе, и не полностью свободном английском, неплохое подспорье С таким подходом начальный этап никогда не кончится. )) Я учился читать (пока всего лишь читать, ибо разговор и письмо это не одно и то же, что читать - это я делаю гораздо хуже) именно при "не полностью свободном английском". Первый год было трудно, но потом гораздо легче, и чейчас, когда уже третий год практикуюсь, почти свободно (иногда лазию в словарь на планшете-телефоне, с которых и читаю - секундное дело) читаю статьи по научной тематике (научпопу, если точнее - Phys.org и т. п.), программированию, из Википедии и пр. При этом стараюсь именно на английском читать, если есть многоязычный вариант. И с фильмами и прочим лучше делать то же самое. Через нехочу. А принцип обучения у меня примерно такой же, как когда я русский изучал. Когда я был маленький, я слушал речь родителей и вообще людей, и учился говорить. Подрос и стал читать по складам (выучили дома и в детсаде). В первом классе уже сносно читал, а во втором читал уже всякие романы. Кроме того, большой объём прочтённой литературы, содержащей минимум ошибок (проверенной корректором) улучшает грамотность письма, т. к. зачастую грамотность - простое запоминание шаблонов слов и их употребления. Много читаешь грамотной литературы - много значешь шаблонов. Редко кто про себя проговаривает правило, чтобы определить, как правильно писать тут или там - в основном на запомненных шаблонах написания-употребления всё держится. С английским всё точно также. Разница только в том, что у меня речевая практика почти отсутствует, т. к. мне не с кем разговаривать и носителей языка рядом со мной нет. Но вот чтение я форсировал чрезвычайно, а это уже немало. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 06:40 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320Если Скайана имел ввиду ещё и свой репозиторий с конкуренцией и прочими плюшками, то я не зря сказал, что "я как дурак реализовывал". Тут тема недавно была по обсуждению своего репозитория, из которой я вынес вывод, что для простых и даже средних приложений ORM, создаваемое EF, вполне сойдёт за репозиторий. А если по-нормальному реализовывать, то это "не для средних умов". В смысле, опыт нужен, и вообще. Если что, классы ORM у EF являются частичными (парциальными), так что можно дописать свою функциональность в других файлах, не боясь, что при перегенерации ORM весь ваш код будет потерян. А у Джоша Смита приведён пример репозитория ну очень простого. Такого, который в реальной жизни не нужен, т. к. даже хуже энтитифреймворковского ORM. Это у него была такая "затычка", т. к. цель-то была не про репозиторий рассказать, а про MVVM. Для реализации репозитория есть спецстатьи, которые обычно объединяются с шаблоном Unit Of Work и т. д. И опять же, там обычно всё сильно просто. Настолько, что ORM от EF с возможностью дописывания парциальных классов опять тут может служить вполне нормальной заменой, а чаще всё равно превосходит по возможностям. Так что или писать нормально (на что у вас уйдёт больше месяца, и то, если вы с опытом), или пока забыть о самописных и пользоваться готовыми ORM.Запомни. ORM - это не репозиторий! Тупо по определению. Ты своими рассуждениями только вводишь неопытных разработчиков в заблуждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 07:45 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyskyANA...О какой ORM речь? В том-то и беда что придется самому писать эти механизмыКакие механизмы? Опишите задачу. bdfyyskyANA... а можете по простому. это как?Держать модель в памяти, а во View, где требуется работать с её частью, отдавать эту часть по ссылке. Если Вы объясните, что за Окна и в какой последовательности они могут открываться, то можно будет что-то сказать конкретнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 07:53 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Есть проект написанный на связке: Delphi + FireBird. Написан по старинке, без ORM с прямыми запросами к БД в окнах. По разным причинам принято решение Delphi "сменить" на WPF от Микрософта. Базу трогать нельзя, совместимость. Пробовал натравить на базу EF он вешается, т.е. сгенерить до конца не может. Да и в сгенеренном много чего не хватает. Все усугубляется тем, что объекты хранимые в таблице могут выступать как схожими так и разными. Поясню: Есть таблица А и В. В таблице А хранится объект АА, в таблице В объекты ВА и ВВ. Объект ВА может быть контейнером для ВВ, но при этом объект АА может быть контейнером для обеих объектов ВА и ВВ. И с точки зрения объекта АА между объектами ВА и ВВ нет разницы. Причем объекты ВА и ВВ могут хранится в разных базах, которые могут редактироваться независимо в разных местах. Как натравить NHibernate на базу не понял. По любому понял (на моем уровне знания данных ОRM), что придется многое допиливать руками. По поводу клиента. Объекты ВА и ВВ могут быть соответственно отображены скопом, например в виде таблицы, или в виде зависимости какой нибудь графической схемой. Эти окна абсолютно не связаны с точки зрения использования. т.е. один клиент может редактировать только в одном окне, другой только в другом, а третий в обеих окнах сразу. Все это конечно упрощенно. Надеюсь, что нормально объяснил. Готов добавить пояснения еще. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 09:04 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAЗапомни. ORM - это не репозиторий! Тупо по определению. Ты своими рассуждениями только вводишь неопытных разработчиков в заблуждение. То, что генерит EF - "как бы репозиторий". Его можно использовать вместо простого репозитория. Как-то так? Вот тот же Джош Смит, да и другие писатели статей, приводят примеры реализации репозитория со стандартным набором методов получить-записать-удалить-проверитьНаличие-получитьПолныйСписок и т. п. для каждой сущности. ORM от EF содержит то же самое, плюс ещё в пять раз больше, плюс проверен и на баги кучей профи. Ну и чем не репозиторий? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 10:54 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320, и для кого я выделял текст , спрашивается.Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей : это просто не имеет значения. Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.Репозиторий реализует прозрачную работу с данными, которые чёрт знает как могут быть распределены. ORM этого не умеет, это тупо object-relational mapping c дополнительными плюшками. Вот скажите как реализовать простой репозиторий Джоша Смита, что загружает данные клиентов из файла XML, средствами EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 12:48 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyЕсть проект написанный на связке: Delphi + FireBird. Написан по старинке, без ORM с прямыми запросами к БД в окнах. По разным причинам принято решение Delphi "сменить" на WPF от Микрософта. Базу трогать нельзя, совместимость. Пробовал натравить на базу EF он вешается, т.е. сгенерить до конца не может. Да и в сгенеренном много чего не хватает. Все усугубляется тем, что объекты хранимые в таблице могут выступать как схожими так и разными. Поясню: Есть таблица А и В. В таблице А хранится объект АА, в таблице В объекты ВА и ВВ. Объект ВА может быть контейнером для ВВ, но при этом объект АА может быть контейнером для обеих объектов ВА и ВВ. И с точки зрения объекта АА между объектами ВА и ВВ нет разницы. Причем объекты ВА и ВВ могут хранится в разных базах, которые могут редактироваться независимо в разных местах. Как натравить NHibernate на базу не понял. По любому понял (на моем уровне знания данных ОRM), что придется многое допиливать руками. По поводу клиента. Объекты ВА и ВВ могут быть соответственно отображены скопом, например в виде таблицы, или в виде зависимости какой нибудь графической схемой. Эти окна абсолютно не связаны с точки зрения использования. т.е. один клиент может редактировать только в одном окне, другой только в другом, а третий в обеих окнах сразу. Все это конечно упрощенно. Надеюсь, что нормально объяснил. Готов добавить пояснения еще. Спасибо.Что за A и B, предметная область что-ли секретная? Ну да ладно. То есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"? И Вы не озвучили проблему: какие механизмы не получается реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 12:59 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAuser7320, и для кого я выделял текст , спрашивается.Джош СмитДанные должны откуда-то приходить и где-то храниться. В этом приложении экземпляр класса CustomerRepository загружает и хранит все объекты Customer. Так получилось, что он загружает данные клиентов из файла XML, но вообще тип внешнего источника данных несущественен. Данные могу поступать из базы данных, веб-службы, именованного канала, файла на диске или от почтовых голубей : это просто не имеет значения. Если у вас есть объект .NET с данными, независимо от того, откуда они, шаблон MVVM может вывести эти данные на экран.Репозиторий реализует прозрачную работу с данными, которые чёрт знает как могут быть распределены. ORM этого не умеет, это тупо object-relational mapping c дополнительными плюшками. Вот скажите как реализовать простой репозиторий Джоша Смита, что загружает данные клиентов из файла XML, средствами EF? Да, я тут слишком узко понял. Согласен. Но если мы говорим только о случае, когда данные поступают из БД, то ORM этой БД может служить репозиторием же? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 13:22 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Бизнес объект - класс, хранящий данные. Служба - класс, содержащий логику. Репозитарий - служба, имеющая типовой интерфейс, предназначенная для работы с бизнес объектами определённого типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 13:48 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAЧто за A и B, предметная область что-ли секретная? Визуальная разработка техпрограмм для контроллеров. Вроде наиболее известная в моей области: Квинт. skyANAТо есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"? Да, и далее узел (компонент) ВА содержит в себе набор дочерних узлов (компонентов) ВВ, и может содержать в себе узел (компонент) AA skyANAИ Вы не озвучили проблему: какие механизмы не получается реализовать? Как в идеале должна быть правильно организованна работа, без ORM. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ничего не упустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 14:43 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
авторModel - хранит в себе фактически копию базы данных. должен ли содержать проверку данных, что-то типа IDataErrorInfo? У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД". Насчёт IDataErrorInfo - я его применяю совместно с атрибутами. Ну, если брать того же Джоша Смита, то у него валидация происходит прямо в IDataErrorInfo, а у меня - в атрибутах. Я на этом форуме уже кучу тем по этой теме насоздавал. Там получается, что в конечном счёте с атрибутами медленнее (т. к. их приходится вытаскивать через рефлексию и всё такое), но с ними гораздо нагляднее, т. к. все ограничения на модель присутствуют прямо в начале её определения в компактном виде, и не где-то далеко внизу по коду, где там IDataErrorInfo реализован. Если пихать всю и сложную валидацию в IDataErrorInfo, то эта валидация превращается в простыню кода проверок, который трудно обозревать. А медленность атрибутов относительная - если атрибуты и валидация не задействованы во время интенсивных расчётов, а применяются, скажем, только во время ввода небольших данных пользователем, то их и с атрибутами можно быстро обработать без тормозов для пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:04 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
Сцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:07 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде. А вообще да, Шахиджанян виноват... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:09 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде. А вообще да, Шахиджанян виноват... Будь последовательными. Твою кашу потока сознания сложно осилить. Да и лень много читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:21 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания У меня много проблем. Я пытаюсь их все сразу решить. Неуспеваю писать везде. А вообще да, Шахиджанян виноват... Будь последовательными. Твою кашу потока сознания сложно осилить. Да и лень много читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:30 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД".Не хочешь, не городи. Не видишь смысла, не храни. Когда через год наткнёшься на грабли, тогда и поймёшь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 15:53 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320МСУСцуко, сколько же от 7320 букаф... Просто невозможно курить этот поток сознания У меня много проблем. Я пытаюсь их все сразу решить...Купи книжку по DDD. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 16:00 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAuser7320У меня с этой штукой тоже проблемы идентификации. Если БД почти полностью моделирует предметную область - сущности и связи - то получается, что модель будет повторять эту БД. А тогда уже получается, что лучше не городить свою модель со связями, а использовать ORM от EF - там уже всё намоделировано в классах и связано наилучшим образом. Остаётся только расширить эту модель предметной области функциональностью (расчёты там и прочее) - и то, если этой функциональности не заложено в БД в виде там процедур или ещё чего - и вот вам нормальная модель из ORM. Я прав, нет? Ну реально нет смысла "хранить в себе копию БД".Не хочешь, не городи. Не видишь смысла, не храни. Когда через год наткнёшься на грабли, тогда и поймёшь. Приведите, пожалуйста, пример граблей? Ну нет у меня опыта, поэтому на мой взгляд это кажется логичным - не копировать одну и ту же схему в разные слои. Ну, вот, к примеру, схемка из ORM (вложение). ProductType там выглядит так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А модель этой сущности будет выглядеть точно также, т. к. модель тоже должна иметь те же свойства. И ту же связь с Product, реализуемую... а почему бы не так же, как и в ORM? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 16:12 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320Приведите, пожалуйста, пример граблей? Ну нет у меня опыта, поэтому на мой взгляд это кажется логичным - не копировать одну и ту же схему в разные слои. 1. Поменялся источник данных. Теперь сущности типа Product берутся из внешнего SOA. 2. Появилось требование ввести новый булевский атрибут Checked для выбора выбранных продуктов. 3. Сменили ORM. 4. Реализация наследования логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 16:16 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
user7320, а покажи как у тебя отображается ProductType в Object Browser. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 16:26 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
skyANAuser7320, а покажи как у тебя отображается ProductType в Object Browser. Это же POCO - он отображается так же, как и все другие классы, написанные "с нуля". Это если вы зависимости имели ввиду. Но на всякий случай показал во вложении. Не, ну, на крайняк же можно тупо скопировать этот класс себе в модель? Мне он кажется вполне подходящим для простой модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 19:10 |
|
MVVM без ORM
|
|||
---|---|---|---|
#18+
bdfyyskyANAЧто за A и B, предметная область что-ли секретная? Визуальная разработка техпрограмм для контроллеров. Вроде наиболее известная в моей области: Квинт. skyANAТо есть имеем некую древовидную (компонентную) структуру, когда узел (компонент) AA содержит в себе набор дочерних узлов (компонентов) BA и BB, или что означает "объект АА может быть контейнером для обеих объектов ВА и ВВ"? Да, и далее узел (компонент) ВА содержит в себе набор дочерних узлов (компонентов) ВВ, и может содержать в себе узел (компонент) AA skyANAИ Вы не озвучили проблему: какие механизмы не получается реализовать? Как в идеале должна быть правильно организованна работа, без ORM. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Dal может быть любым, в том числе и половные orm Ничего не упустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2013, 21:23 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349926]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 515ms |
0 / 0 |