Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
и второе, Денис, тебе не кажется, что это перебор строить такие конструкции вокруг двух контролов валидации? Если же это академический пример то согласен, сносно, но если так пишутся приложения.....?! Кхм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:28 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ProgaDenis Gladkikhпропущено... Я тоже как-то писал вариант с люмбдами тут http://outcoldman.ru/ru/blog/show/250 денис, так и должно быть в последнем примере у вас в статье Да, я это уже видел. Там нужно просто проверку совпадения паролей прикрутить к обоим контролам. а не только ко второму (что логично, так как оба влияют на валидацию). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Progaи второе, Денис, тебе не кажется, что это перебор строить такие конструкции вокруг двух контролов валидации? Если же это академический пример то согласен, сносно, но если так пишутся приложения.....?! Кхм... Не понял, про какие конструкции идет речь? Что-то избыточное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:31 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhProgaи второе, Денис, тебе не кажется, что это перебор строить такие конструкции вокруг двух контролов валидации? Если же это академический пример то согласен, сносно, но если так пишутся приложения.....?! Кхм... Не понял, про какие конструкции идет речь? Что-то избыточное? дело не в избыточности, а в самом подходе, вы действительно применяете такие подходы для валидации 2 контролов. А если их пару сотен на форме тоже будете писать так валидацию? Или принципиально не пользуетесь проверкой валидности сервером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Причем я имею ввиду проверку любой валидности, не только совпадение значений, как в вашем примере, а вообще. Для вашего случая, я согласен, сервер не нужен, я же интересуюсь о проверки любой валидности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:38 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ProgaПричем я имею ввиду проверку любой валидности, не только совпадение значений, как в вашем примере, а вообще. Для вашего случая, я согласен, сервер не нужен, я же интересуюсь о проверки любой валидности. Не пойму к чему клоните? А вы что не используете для этого валидаторы? Да, я все валидирую как на клиенте так и на сервере. Прикрутить несколько аттрибутов в простом случае, либо написать метод в сложном случае - не вижу проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhLRпропущено... хм...звучит интригующе, но вообразить крайне трудно... в SL вроде нет байдинга к DynamicObject, а вот в WPF вроде есть. Да в SL нужно извращаться или через индексируемые свойства, или конвертеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 01:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Денис, у меня тоже вопросы. Как при таком подходе можно использовать кодогенераторы или другие тулзы для моделирования? Правил может быть много. Если сделать общий вариант а'la ValidateRules("PropertyName") и предоставить интерфейс с необходимыми методами,то можно задавать правила отдельно, делать их асинхронными и зависимыми от других свойств, использовать сторонние валидаторы и тд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 01:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject iДа в SL нужно извращаться или через индексируемые свойства, или конвертеры Сева, нужны еще комментарии того, что ты певец оперного театра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 09:05 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i Код: plaintext 1. 2. 3. 4. 5. 6. 7. Денис, у меня тоже вопросы. Как при таком подходе можно использовать кодогенераторы или другие тулзы для моделирования? Правил может быть много. Если сделать общий вариант а'la ValidateRules("PropertyName") и предоставить интерфейс с необходимыми методами,то можно задавать правила отдельно, делать их асинхронными и зависимыми от других свойств, использовать сторонние валидаторы и тд Я не понимаю к чему вы клоните. Я не использую кодогенераторы. Но, захотите использовать, то я проблем не вижу, не больше чем в других подходах. "можно задавать правила отдельно" - можно задавать правила отдельно, более того я так и делаю "делать их асинхронными" - можно делать и так, в чем проблема? "зависимыми от других свойств" - ну отлично, один из примеров это показывает, сравниваем два поля. "использовать сторонние валидаторы" - а тут какие проблемы? конечно можно использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 09:14 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhЯ не понимаю к чему вы клоните. Я не использую кодогенераторы. Но, захотите использовать, то я проблем не вижу, не больше чем в других подходах. "можно задавать правила отдельно" - можно задавать правила отдельно, более того я так и делаю На мой скромный взгляд, правила не можно, а нужно задавать только отдельно. Иначе при повторной генерации модели они исчезнут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 09:33 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis GladkikhЯ не понимаю к чему вы клоните. Я не использую кодогенераторы. Но, захотите использовать, то я проблем не вижу, не больше чем в других подходах. "можно задавать правила отдельно" - можно задавать правила отдельно, более того я так и делаю На мой скромный взгляд, правила не можно, а нужно задавать только отдельно. Иначе при повторной генерации модели они исчезнут Что? О генерации какой модели идет речь? Правила описываются во ViewModel/PresentationModel, а не в модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 09:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiпропущено... На мой скромный взгляд, правила не можно, а нужно задавать только отдельно. Иначе при повторной генерации модели они исчезнут Что? О генерации какой модели идет речь? Правила описываются во ViewModel/PresentationModel, а не в модели. Понятно. Каким образом? При решении в лоб, Presenter превращается в wrapper модели, получается слишком многословно, его обязательно нужно создавать(обобщенного варианта не будет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 09:58 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis Gladkikhпропущено... Что? О генерации какой модели идет речь? Правила описываются во ViewModel/PresentationModel, а не в модели. Понятно. Каким образом? При решении в лоб, Presenter превращается в wrapper модели, получается слишком многословно, его обязательно нужно создавать(обобщенного варианта не будет). Честно, мне сложно с вами разговаривать, вы скачете от вопроса к вопросу, не давая разобраться в сути вопроса. Правильно ли я понимаю, что вы говорите о том, чтобы осуществлять байдинг сразу к моделям, которые генерирует EF/Linq-To-SQL/WCFServices (нужное подчеркнуть), а Presenter/ViewModel должен просто тупо возвращать этот объект? Сразу скажу, что подход просто нереально ужасный, разрабатывая так руководствуются только ленью. По вашему принципу View это тоже wrapper над Моделью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 10:07 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiпропущено... Понятно. Каким образом? При решении в лоб, Presenter превращается в wrapper модели, получается слишком многословно, его обязательно нужно создавать(обобщенного варианта не будет). Честно, мне сложно с вами разговаривать, вы скачете от вопроса к вопросу, не давая разобраться в сути вопроса. Правильно ли я понимаю, что вы говорите о том, чтобы осуществлять байдинг сразу к моделям, которые генерирует EF/Linq-To-SQL/WCFServices (нужное подчеркнуть), а Presenter/ViewModel должен просто тупо возвращать этот объект? Сразу скажу, что подход просто нереально ужасный, разрабатывая так руководствуются только ленью. По вашему принципу View это тоже wrapper над Моделью. Да, я подразумеваю именно самый простой и тупой вариант, когда Presenter/ViewModel имеют только Model, а не его свойства. Хороший программист - ленивый программист, кода так значительно мешьше. Чем нереально ужасен вариант такой вариант? ЗЫ Просьба без лишних эмоций, не будем уподобляться MCУ. Я не вижу в варианте валидации в Presenter/ViewModel простых решений без лишних телодвижений, посему и спрашиваю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 11:10 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis Gladkikhпропущено... Честно, мне сложно с вами разговаривать, вы скачете от вопроса к вопросу, не давая разобраться в сути вопроса. Правильно ли я понимаю, что вы говорите о том, чтобы осуществлять байдинг сразу к моделям, которые генерирует EF/Linq-To-SQL/WCFServices (нужное подчеркнуть), а Presenter/ViewModel должен просто тупо возвращать этот объект? Сразу скажу, что подход просто нереально ужасный, разрабатывая так руководствуются только ленью. По вашему принципу View это тоже wrapper над Моделью. Да, я подразумеваю именно самый простой и тупой вариант, когда Presenter/ViewModel имеют только Model, а не его свойства. Хороший программист - ленивый программист, кода так значительно мешьше. Чем нереально ужасен вариант такой вариант? ЗЫ Просьба без лишних эмоций, не будем уподобляться MCУ. Я не вижу в варианте валидации в Presenter/ViewModel простых решений без лишних телодвижений, посему и спрашиваю Проблемы будут разные. Сложнее поддерживать конструкцию, иногда не всегда можно будет осуществить байдинг именно на свойство модели, потому логика будет расплываться, что где-то будет осуществляться байдинг на модель, а где-то на свойство ViewModel. Еще стандартный вариант. Есть список и есть контрол для редактирования сущности. Пользователь начинает редактировать сущность, а потом нажимает отмена (вместо сохранить), а в нашу модель уже записались все данные. Более того, когда пользователь начинает редактировать, то он уже видит изменения и в списке, что не очень-то хорошо. Получается, в таких случаях нужно делать копию объекта, а потом уметь обновлять основной объект из копии. Либо при отмене постоянно перегружать коллекцию. В общем, я видел такой подход в одном из проектов. И могу сказать 100%, лучше я не поленюсь сейчас и сделаю с правильной архитектурой, а не буду мучиться потом со всякими мелкими проблемами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 11:19 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhПолучается, в таких случаях нужно делать копию объекта, а потом уметь обновлять основной объект из копии. Либо при отмене постоянно перегружать коллекцию. Я в таком случае использую свои отдельные свойства (на них и работает байдинг), на которые маппятся данные при инициализации модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 11:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУпри инициализации вью-модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 11:26 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
[quot Denis GladkikhПроблемы будут разные. Сложнее поддерживать конструкцию, иногда не всегда можно будет осуществить байдинг именно на свойство модели, потому логика будет расплываться, что где-то будет осуществляться байдинг на модель, а где-то на свойство ViewModel. [/quot] В варианте с базовым классом - DynamicObject таких проблем нет. Динамически добавляем нужные и все в одном месте. Denis GladkikhЕще стандартный вариант. Есть список и есть контрол для редактирования сущности. Пользователь начинает редактировать сущность, а потом нажимает отмена (вместо сохранить), а в нашу модель уже записались все данные. Более того, когда пользователь начинает редактировать, то он уже видит изменения и в списке, что не очень-то хорошо. Получается, в таких случаях нужно делать копию объекта, а потом уметь обновлять основной объект из копии. Либо при отмене постоянно перегружать коллекцию. В общем, я видел такой подход в одном из проектов. И могу сказать 100%, лучше я не поленюсь сейчас и сделаю с правильной архитектурой, а не буду мучиться потом со всякими мелкими проблемами Если Undo\Redo реализовывать в Presenter, то это еще одно усложнение и так перегруженного варианта. Принципам единичной ответственности это не отвечает. Если модель предоставляет нужные интерфейсы(валидация, отмена), можно создать необходимый набор обобщенных базовых классов Presenter\ViewModel, тогда во многих случаях их ненужно будет задавать явно в коде и не мучиться с мелкими проблемами совсем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 11:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis GladkikhПроблемы будут разные. Сложнее поддерживать конструкцию, иногда не всегда можно будет осуществить байдинг именно на свойство модели, потому логика будет расплываться, что где-то будет осуществляться байдинг на модель, а где-то на свойство ViewModel. В варианте с базовым классом - DynamicObject таких проблем нет. Динамически добавляем нужные и все в одном месте. Было бы интересно более подробно узнать об этом варианте (с DynamicObject), можете привести какой-нибудь конкретный (и показательный) пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 13:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRiпропущено... В варианте с базовым классом - DynamicObject таких проблем нет. Динамически добавляем нужные и все в одном месте. Было бы интересно более подробно узнать об этом варианте (с DynamicObject), можете привести какой-нибудь конкретный (и показательный) пример? У меня все в комплексе, показывать отдельно DynamicObject будет непоказательно. Сделаю рефакторинг по результатам проекта, тогда, может, выложу на codeplex. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 13:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Так приходит слава :) Всё же фильтруйте следите за лексикой, коллеги. Нас читает мир. http://outcoldman.ru/ru/blog/show/261 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 20:53 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Вах!! Нашу палату №6 прописали в стенгазете ;-) авторОтступление: Вообще, впечатления от форума sql.ru пока такие, что в любом треде начинается просто бестолковый флуд о том хорошо Silverlight или нет Более внимательно перечитал аргументы против MVVM, еще больше они стали неочевидны. авторВ большинстве случаев реализации MVVM паттерна модель представления имеет очень много причин для изменений. Если нам нужно на представлении поменять немного логику, View(если я правильно понимаю, тяжело воспринимать русские аналоги, которых не существует за отсутствием литературы) в MVVM логики не имеет. автор использовать другое связывание данных, что под этим подразумевается совершенно непонятно авторто, скорее всего, нужно будет менять и логику в модели представления. Если поменялась модель, то нужно менять за ней и модель представления. совершенно не обязательно, если Model - отдельное свойство в ViewModel автор Одни из самых важных принципов разработки – это «разделение ответственности» (Seperation of Concerns) и «принцип единственной ответственности» (Single Responsibility Principle). В случае модели представления эти принципы нарушены. Данную проблему можно решить, вернувшись обратно к паттерну MVP с небольшими доработками. Основой этих доработок будет являться облегченная версия модели представления, описанной Мартином Фаулером. статья Фаулера, на мой вгзляд, совершенно не к месту. Xaml позволяет иметь в таких случаях два отдельных MVVM без всякой взаимосвязи, что гораздо проще и внятней. автор В данном случае эта модель представления возьмет на себя только задачу связывания данных, и в некоторых случаях их валидацию. В результате у нас будет презентатор, который будет выполнять действия по запросу пользователя, модель представления, которая будет связывать данные с представлением, само представление, а так же модель. Каждый компонент фокусируется на более специфичных задачах вместо охвата нескольких, что дает нам, например, преимущества в написании тестов. Данный подход не только делает код более читабельным и классы более сфокусированными, В таком случае мы будем иметь только нарушение принципов. Обычно в MVVM Моdel отвечает за валидацию, а VM за логику. Это и делает их более простыми и сфокусированными. автортак же у нас появляется возможность использовать облегченную версию модели представления сразу на нескольких представлениях VM совершенно не зависит от VIew, сооветственно последних может быть сколько угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 22:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, давайте не будем засорять "стенгазету", если действительно интересно про это поговорить напишите мне email и мы это обсудим ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 00:05 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhi, давайте не будем засорять "стенгазету", если действительно интересно про это поговорить напишите мне email и мы это обсудим ;)Денис, давайте уж здесь, зачем переводить в приват интересное обсуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 00:18 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37003847&tid=1442515]: |
0ms |
get settings: |
9ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 122ms |

| 0 / 0 |
