Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Все замечательные (немногочисленные примеры) показывают нам и говорят что данный шаблон просто спасение души и его самая замечательная особенность что можно отделить лицо от view и что ни одна из частей не знает друг о друге! Но у меня возникает вопрос - а где же реализовывать бизнес-логику по вводу данных?? Пример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары" бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема - если фильтровать данные в модели - этож скока кода и геморра надо поиметь шоб все это вручную реализовывать, а если это сделать всего лишь парами параметров в XAML - нарушаецца идеология такого замечательного шаблона! Как быть? может надо использовать MVVMExt???? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:49 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
sp, да поддерживаю вопрос . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:51 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ааа, и вдогонку - смотрю кучу примеров там и у модели куча своих методов и у view куча своих методов - непонятно - то есть логика свободно гуляет между этими 2мя частями??? куда что помещать? где граница что должен делать объект и его view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:55 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
sp Пример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары" В VM должен быть каскадный lookup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:09 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spПример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары" бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема Никакой проблемы тут не возникает. В связке Model-View-ViewModel бизнес-логика реализуется в слое Model (оно же DomainModel, оно же модель предметной области). ViewModel, и уж тем более View - никакого отношения к бизнес-логике не имеют. Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:11 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛПspПример: имеет 2 комбобокса с данными типа (к примеру) "Склады" и "Товары" бизнес логика говорит что в итоге я должен выбрать только товар, находящийся на данном складе и вот тут возникает проблема Никакой проблемы тут не возникает. В связке Model-View-ViewModel бизнес-логика реализуется в слое Model (оно же DomainModel, оно же модель предметной области). ViewModel, и уж тем более View - никакого отношения к бизнес-логике не имеют. Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel. но самое главное то я забыл Вам сказать - шо редактируем то мы накладную ))))) это шо за каждым чихов лице я должен пройти 2 слоя чтобы чтото изменить!!?? это же абсурд - получаецца модель ответственна за лицо!!?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:16 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
2 sp но самое главное то я забыл Вам сказать - шо редактируем то мы накладную ))))) Ну и редактируйте накладную. Именно её я имел в виду во фразе "при формирования какого-либо составного объекта" Есть объект Накладная. У него есть св-во Склад (с которого идёт отгрузка). Есть у Накладной список отгружаемых товаров. Вот при изменении этого списка и проверяйте правило "данный товар есть на данном складе". Товар присутствует в Склад.ТоварыВНаличии - ок, не присутствует - эксепшен вверх. Так же можете проверять правила "есть ли данный товар в нужном количестве", "не зарезервирован ли он", и прочие правила бизнес-логики. Всё на уровне DomainModel. это шо за каждым чихов лице я должен пройти 2 слоя чтобы чтото изменить!!?? Да хоть десять. это же абсурд - получаецца модель ответственна за лицо!!?? Абсурд - это когда лицо ответственно за бизнес-логику. И когда модель лица ответственна за бизнес-логику - тоже абсурд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:26 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛП Есть объект Товар, есть объект Склад, у каждого Склада есть св-во, возвращающее набор Товаров, находящихся на данном Складе. А дальше уже где надо, там и используешь. В том числе и в других местах DomainModel (например для реализации правила "я должен выбрать только товар, находящийся на данном складе" при формирования какого-либо составного объекта), и во ViewModel. и не сильно ли это накладно будет по части ресурсов бегать каждый раз за товарами в модель или даже на сервер, когда лицо само может эффективнее это выполнить!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:28 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛП Абсурд - это когда лицо ответственно за бизнес-логику. И когда модель лица ответственна за бизнес-логику - тоже абсурд. Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:30 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Никакого гемора в формировании в модели представления списка товаров в зависимости от изменения выбранного склада. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:31 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spи не сильно ли это накладно будет по части ресурсов бегать каждый раз за товарами в модель или даже на сервер, когда лицо само может эффективнее это выполнить!? Кто сказал, что оно куда-то бегать должно, на какой-то там сервер? Не путайте Layer и Tier Хотите - кэшируйте информацию локально, с ней и работайте. Не хотите - флаг в руки, на каждый чих дёргайте сервак. Хотите - службу нотификейшенов прикрутите сбоку, для обеспечения обновления локально закэшированных данных. К MVVM оно вообще никак не относится. Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!! Тогда и не говорите про бизнес-логику. Не знаете значение слова - не употребляйте его. Авось за умного сойдёте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:34 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
да и это всеголишь один вопрос - а вот примеру действия "тут мы читаем, тут не читаем тут рыбу заворачивали" - это же дествия исключительно с лицом - что модель должна и этим занимацца , а ViewModel тогда что тут делает?? если разбоки идут только между моделью и лицом??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:34 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
В примере кода во ViewModel.SelectedProduct.Set() все, что после строки "OnPropertyChanged("SelectedProduct");", лишнее: свойство SelectedProduct получено механическим копированием SelectedStorage, прохлопал удалить лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:36 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛП Я вообщето имел в виду лишь отчасти проверку правил а в большей действия в интерлице!!! Тогда и не говорите про бизнес-логику. Не знаете значение слова - не употребляйте его. Авось за умного сойдёте. Простите, но я вынужден тоже самое сказать и в ваш адрес - по вашему изменения в лице сцелью ударить юзера по рукам - это не бизнес логика!!?? вам тогда на 1й курс срочно надо!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:36 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spПростите, но я вынужден тоже самое сказать и в ваш адрес - по вашему изменения в лице сцелью ударить юзера по рукам - это не бизнес логика!!?? вам тогда на 1й курс срочно надо!! Простите, вы дурак? Чисто с медицинской точки зрения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:37 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spда и это всеголишь один вопрос - а вот примеру действия "тут мы читаем, тут не читаем тут рыбу заворачивали" - это же дествия исключительно с лицом - что модель должна и этим занимацца , а ViewModel тогда что тут делает?? если разбоки идут только между моделью и лицом??? тьфу очепятался - вопрос был про view - нафига тада казе баян!?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:39 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
простите, глупостями не занимаемся и на глупые вопросы не отвечаем! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:41 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
JohnSparrowВ примере кода во ViewModel.SelectedProduct.Set() все, что после строки "OnPropertyChanged("SelectedProduct");", лишнее: свойство SelectedProduct получено механическим копированием SelectedStorage, прохлопал удалить лишнее. Большое спасибо за пример! снял некоторую часть вопросов! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:42 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
P.S. Вопросы "сцелью ударить юзера по рукам" - это вообще авторизация и аутентификация. Сквозная функциональность по всем слоям. Почитайте уже книжки какие-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:42 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛПP.S. Вопросы "сцелью ударить юзера по рукам" - это вообще авторизация и аутентификация. Сквозная функциональность по всем слоям. Почитайте уже книжки какие-нибудь. ударить не совсем чтоб не дать смотреть - а блокировать или наоборот расширять предоствляемую функциональность по части взаимодействия с интерфейсом в зависимости сложных бизнес-правил в лице сложного объекта. Пива нет, пива нет - Нет чтоб написа просто "Пива нет" - не хотел вас обидеть ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:55 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
sp Большое спасибо за пример! снял некоторую часть вопросов! ) Не за что. А какие вопросы не снял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:55 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
JohnSparrowsp Большое спасибо за пример! снял некоторую часть вопросов! ) Не за что. А какие вопросы не снял? Спасибо за помощь! щас переосмыслю все что было ранее в плане того что Вы показали и апосля сформулирую что осталось непонятым )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:08 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ага, ну вот другой вопрос: часто бывает что в зависимости од значения одного поля в интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. (т.е. некоторое бизнес-правило говорящее что если поле такоето равно томуто - не заполнять такието поля и т.д.) - где эта функциональность реализовывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 19:48 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 22:02 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
но в домэйн-модель тоже проверять коректность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 22:03 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Var79либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер так получается мы всетаки привносим во вью знание бизнес-правил модели!?? а какже декларируемая независимость и полное отсутствие вьювом знания о модели!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 01:00 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spVar79либо в xaml либо в xaml.cs, либо на стороне клиента (вью) сделать класс хелпер так получается мы всетаки привносим во вью знание бизнес-правил модели!?? а какже декларируемая независимость и полное отсутствие вьювом знания о модели!!! А вы не читайте советских газет. Тем более от невменяемых авторов. Функционал для фсякого вот такого "интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. " (хосспадя, как же велика и могуча русскей езыг) в MVVM реализуется на уровне ViewModel'и, а никак не "либо в xaml либо в xaml.cs". Реализация этого функционала опирается на сквозные сервисы авторизации, которые вообще сбоку от MVVM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 02:30 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
ЛПТем более от невменяемых авторов. слова слова берегите нервы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 04:23 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Теперь более или менее осознав все величие этого шаблона у меня возник вопрос - а нафига все это? Понятно - неоспоримое преимущество в том что можно писать юнит-тесты - хотя большинству они и нафиг не нужны - возможность менять лицо без переделки кода (тут еще надо посмотреть - всеже некая логика выносится на лицо и ее надо в новом лице тоже реализовывать!) Но минусы то большущщие !!! - столько подпорок необходимо написать ради того чтобы добиваться декларируемой независимости слоев!! а зачем!! ежели реализация лица с теми же биндингами и логикой реализованной в классе окна гораздо проще и компактней? - в сложных окнах со сложной логикой взаимодействия наверняка код пойдет гулять и так или иначе все слои будут связываться или прийдется подмастырить еще кучу подпорок дабы этого не случилось!!! Вот собственно вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 13:34 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spВот собственно вопрос мухи прилипшие к котлете кажутся меньшей проблемой (и выглядят менее отвратительно) чем мухи внутри (надкушенной) котлеты )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 13:53 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spНу как минимум - чтобы логически разделить код визуализации морды от модели и её логики. И никто не заставляет взаимодействовать модель морды с мордой исключительно через биндинги и эвенты. Просто в большинстве случаев это удобнее и позволяет избавиться от лишней зависимости. Это явно продемонстрировано в концепции написания контролов, где допускается обращаться к частям морды из кода (он же модель морды кастомконтрола) по именам типа PART_XXX. А в сложной форме, чтобы код не стал гулять - нужно нормально её разделить на части, а не пихать всё в одно. Тогда глядишь, и логика в этих взаимодействиях начнёт прослеживаться. И не таким сложным оно покажется. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 13:57 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Алексей КА в сложной форме, чтобы код не стал гулять - нужно нормально её разделить на части, а не пихать всё в одно. Тогда глядишь, и логика в этих взаимодействиях начнёт прослеживаться. И не таким сложным оно покажется. :-) где-то встретилось определение что есть суть программирования - "это размазывание сложности более-менее равномерным слоем" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 14:01 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spТеперь более или менее осознав все величие этого шаблона у меня возник вопрос - а нафига все это? Понятно ... Но минусы то большущщие !!! ... Уважаемый sp, а как Вы думаете, зачем вообще нужна парадигма MVC и ее реализация для WPF (MVVM)? Логика такова, что любой шаблон реализуется средствами языка и соответствующей технологии; если их не знать на некотором уровне, то спроектировать приложение по данному шаблону не получится. Большинство Ваших вопросов в этой теме касаются довольно-таки базовых аспектов WPF (т.е. технологии, на использовании которой строится MVVM, а не самого шаблона). Имело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты. Вот пример: spага, ну вот другой вопрос: часто бывает что в зависимости од значения одного поля в интерфейсе толи дизейблицца. толти прячется часть интерфейса, менюй и т.д. (т.е. некоторое бизнес-правило говорящее что если поле такоето равно томуто - не заполнять такието поля и т.д.) - где эта функциональность реализовывать? Прямой пример приведен на стр. 539 вышеупомянутой книги. Причем, без всякого MVVM. А вот пример, где цвет заливки эллипса зависит от значения логического свойства модели представления: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 23:43 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
JohnSparrowИмело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты. Книгу кстати я только закончил читать, и вначале я упомянул что я не профи в WPF MVVM :) Плюс ко всему на просторах гугла нет толковой книги или статьи по MVVM - есть хорошие только краткие примеры которые в полной мере не позволяют охватить все аспекты использования данного шаблона - поэтому отчасти и возникают на этом форуме вопросы про MVVM К примеру я нигде не встретил простого примера показывающего технику вызова из одного (как его назвать... ??? ) MVVM1 (буду так называть :) ) другого MVVM2 - пишут только о какомто загадочном сервисе навигации который еще надо изобрести - это ли не подпорки? в купе с базовым классом и новым классом команд + еще куча всякой фигни ...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 08:30 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
JohnSparrowА выражение "а какже декларируемая независимость и полное отсутствие вьювом знания о модели" говорит о неправильном понимании MVС/MVVM: модель ничего не знает о View (рычаг/сенсор), а вот последние о модели (интерфейсе управления) знать должны все. тут буду с вами спорить аргументированно - почитайте блогпост ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 15:19 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
а че мбудет плоха такая связка XML-ViewModel-View? (типа без модели) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 16:04 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книг: главное окно - список книг при двойном нажатии на элементе списка открывается окно редактирование данной книги функции добавления и удаления книг из списка список книг хранится в xml файле Я думаю для многих начинающих осваивать этот шаблон это было бы хорошей отправной точкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 16:21 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spJohnSparrowА выражение "а какже декларируемая независимость и полное отсутствие вьювом знания о модели" говорит о неправильном понимании MVС/MVVM: модель ничего не знает о View (рычаг/сенсор), а вот последние о модели (интерфейсе управления) знать должны все. тут буду с вами спорить аргументированно - почитайте блогпост В английском не настолько силен, чтобы читать статьи вообще без проблем и задержек, потому не читал, а проскроллил по диагонали. Вас не затруднит привести оттуда цитату, согласно которой View ничего не должен знать о ViewModel? spа че мбудет плоха такая связка XML-ViewModel-View? (типа без модели)Модуль, сохраняющий данные в XML - это и будет модель, а, точнее, ее часть. spУважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книгВот Вам хороший и наиболее часто упоминаемый рабочий пример MVVM: http://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2010, 17:39 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spJohnSparrowИмело бы смысл прочитать, например, "Windows Presenration Foundation в .NET 3.5 с примерами на C# 2008" Мэтью Мак-Дональда, там все Ваши вопросы раскрыты. Книгу кстати я только закончил читать, и вначале я упомянул что я не профи в WPF MVVM :) Плюс ко всему на просторах гугла нет толковой книги или статьи по MVVM - есть хорошие только краткие примеры которые в полной мере не позволяют охватить все аспекты использования данного шаблона - поэтому отчасти и возникают на этом форуме вопросы про MVVM К примеру я нигде не встретил простого примера показывающего технику вызова из одного (как его назвать... ??? ) MVVM1 (буду так называть :) ) другого MVVM2 - пишут только о какомто загадочном сервисе навигации который еще надо изобрести - это ли не подпорки? в купе с базовым классом и новым классом команд + еще куча всякой фигни ...? Сам по себе MVVM - не панацея. На мой взгляд, этот паттерн слишком перегружен.Не хватит пальцев на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который можно тестировать, но в результате особой внятности и краткости нет. spУважаемые коллеги а мог бы кто-нибудь написать простой учебный пример использующий шаблон MVVM - редактируемый список книг: главное окно - список книг при двойном нажатии на элементе списка открывается окно редактирование данной книги функции добавления и удаления книг из списка список книг хранится в xml файле Я думаю для многих начинающих осваивать этот шаблон это было бы хорошей отправной точкой Посему нужны "подпорки", а с MVVM они пишутся гораздо легче и быстрее. В этом случае можно будет обойтись только базовыми классами, необходимо будет создать только Views&Models. Все остальное - работа с БД, навигация, разграничение прав доступа, валидация и тд будет на автомате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2010, 13:43 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
i... этот паттерн слишком перегружен .Не хватит пальцев на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который можно тестировать, но в результате особой внятности и краткости нет . ... Не совсем понятен смысл выражения: "паттерн слишком перегружен" - будьте добры, перечислите хотя бы 5 функций этого паттерна (я уже не вспоминаю про "на двух руках"). Какой такой "особой внятности и краткости" вам еще нужно? (куда уж внятнее и короче: добавляешь элемент данных в коллекцию ViewModel-и - на экране появляется вкладка для редактирования этого элемента, и все-е-е-е-е...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 10:17 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
qu-qui... этот паттерн слишком перегружен .Не хватит пальцев на двух руках, чтобы перечислить за что он должен отвечать. Получаем код,который можно тестировать, но в результате особой внятности и краткости нет . ... Не совсем понятен смысл выражения: "паттерн слишком перегружен" - будьте добры, перечислите хотя бы 5 функций этого паттерна (я уже не вспоминаю про "на двух руках"). Какой такой "особой внятности и краткости" вам еще нужно? (куда уж внятнее и короче: добавляешь элемент данных в коллекцию ViewModel-и - на экране появляется вкладка для редактирования этого элемента, и все-е-е-е-е...). Это всееееееееее может быть только в одном случае - показываем один экран, но даже в этом случае необходимо: - сформировать условия выборки - загрузить данные (для SL необходимы асинхронные вызовы) - предусмотреть обработку ошибок - назначить Моdel - реализовать интерфейсы INotifyPropertyChanged и валидаторов - сформировать команды - реализовать CUD операции с обработкой ошибок и тддддддддддддддддддд Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода. Посему один только MVVM не решает основных задач ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 12:53 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
i... - сформировать условия выборки - загрузить данные (для SL необходимы асинхронные вызовы) - предусмотреть обработку ошибок - назначить Моdel - реализовать интерфейсы INotifyPropertyChanged и валидаторов - сформировать команды - реализовать CUD операции с обработкой ошибок и тддддддддддддддддддд Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода. Посему один только MVVM не решает основных задач Э-м-м-м-м... Каким боком все вышеперечисленное (кроме "назначить Моdel",быть может?) относится к функциям паттерна MVVM? "- сформировать условия выборки" - в BLL; "- загрузить данные" - в DAL; "- предусмотреть обработку ошибок" - в Application Framework; "- реализовать интерфейсы INotifyPropertyChanged и валидаторов" - в Layer SuperType; "- сформировать команды" - в BLL; "- реализовать CUD операции с обработкой ошибок" - в DAL, или в BLL, или в Layer SuperType, на выбор; Пока что не вижу ни одной функции паттерна MVVM, кроме "назначить Моdel" с непонятной для меня семантикой (обычно тоже релизуется в Layer SuperType). Чем еще "перегружен" паттерн MVVM на ваш взгляд? (имеется ввиду ваше: "и тддддддддддддддддддд"). З.Ы. зрите в корень, если мы обсуждаем функции паттерна MVVM (их "перегруженность" или "легковесность"), то надо их и обсуждать, а не функции всего приложения, использующего MVVM для реализации UI... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 14:09 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
qu-qui... - сформировать условия выборки - загрузить данные (для SL необходимы асинхронные вызовы) - предусмотреть обработку ошибок - назначить Моdel - реализовать интерфейсы INotifyPropertyChanged и валидаторов - сформировать команды - реализовать CUD операции с обработкой ошибок и тддддддддддддддддддд Если окон несколько, то без системы навигации, разграничений прав доступа, DAL,вынесения бизнес-логики в отдельный слой и тд, на каждый чих нужен будет приличный кусок кода. Посему один только MVVM не решает основных задач Э-м-м-м-м... Каким боком все вышеперечисленное (кроме "назначить Моdel",быть может?) относится к функциям паттерна MVVM? "- сформировать условия выборки" - в BLL; "- загрузить данные" - в DAL; "- предусмотреть обработку ошибок" - в Application Framework; "- реализовать интерфейсы INotifyPropertyChanged и валидаторов" - в Layer SuperType; "- сформировать команды" - в BLL; "- реализовать CUD операции с обработкой ошибок" - в DAL, или в BLL, или в Layer SuperType, на выбор; Пока что не вижу ни одной функции паттерна MVVM, кроме "назначить Моdel" с непонятной для меня семантикой (обычно тоже релизуется в Layer SuperType). Чем еще "перегружен" паттерн MVVM на ваш взгляд? (имеется ввиду ваше: "и тддддддддддддддддддд"). З.Ы. зрите в корень, если мы обсуждаем функции паттерна MVVM (их "перегруженность" или "легковесность"), то надо их и обсуждать, а не функции всего приложения, использующего MVVM для реализации UI... 1. MVVM разрабатывался именно для UI. 2. Если команды к нему не относятся, то следует изучить его более внимательно 3. И всееееееее лучше всего продемонстрировать на примере. Автор топика просил весьма простой вариант. Продемонстрируй код, посмотрим на эти малочисленные ееееееееее, хотя бы для этого лапидарного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 16:23 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
i... 1. MVVM разрабатывался именно для UI. ... Тогда зачем вы тащите за уши к нему: условия выборки; обработку ошибок; загрузку данных; CUD операции; ??? i... 2. Если команды к нему не относятся, то следует изучить его более внимательно ... Что-то мне это высказывание определенно напоминает... i... 3. И всееееееее лучше всего продемонстрировать на примере. ... Пока мы не договоримся с определением "перегруженности" функций паттерна (любого, не только MVVM) - демонстрировать на примере нечего. (на любую демонстрацию - будет придумана "контр-демонстрация", было бы желание пофлудить). Еще раз повторяю - "Зри в корень!" (с) К. Прутков. Если вас спросили - "в чем вы видите перегруженность паттерна?", а вы в ответ начали перечислять функции не имеющие к паттерну никакого отношения, то - какой еще "демонстрации" вам нужно? З.Ы. "И эти люди учат меня не ковырять в носу!?" (с) народное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 10:18 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Твои аппеляции к пионерским примерам из MSDN, где, действительно, не нужны никакие DI - мало интересны и прекрасный пример флуда. Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:13 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
iТвои аппеляции к пионерским примерам из MSDN, где, действительно, не нужны никакие DI - мало интересны и прекрасный пример флуда. Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере. Узнаю нашего теоретика Севу. Что ж ты, сынок, так сливаешь злостно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:27 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
критика достаточно теоретическая. по второму пункту: играет роль не объем проекта и число биндингов в нем, а число биндингов в каждом конкретном view. это действительно потенциальная проблема, вот только надо понять, с какого именно числа биндингов эта проблема становится реальной. я еще ни разу не втыкался в проблемы, связанные с этим >third is that the exercise in creating large numbers of data bindings to the ViewModel results in duplicate code and maintenance problems[9] не ясно, с чего бы вдруг. ссылка [9] ведет куда-то, что никак не связано с сабжом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:40 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
статься на вики имеет корректную [9] ссылку, которая ведет сюда . из статьи совершенно не ясно, где там дублирование кода и проблемы с сопровождением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:44 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Вестниккритика достаточно теоретическая. Как только переходишь от журнальных статей к реальному коду, то сразу становится ясно, что сам MVVM ничего особо не дает, помимо биндинга и команд есть масса других вопросов, на которые нет ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:06 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
дык, не понятно, почему из этого следует, что на mvvm надо забить? дополните его и будет вам щастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:11 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
да ваще не понятно, почему все так грустно? все уже не хотят думать сами, а пытаются скопи-пастить идею. все-это не все. а те кто верит в mvvm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:15 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
AlexeiKда ваще не понятно, почему все так грустно? все уже не хотят думать сами, а пытаются скопи-пастить идею. все-это не все. а те кто верит в mvvm. А никакой грусти. Жизнь прекрасна и замечательна и МVVM в этом помогает, если не следовать примерам из жураналов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:37 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
i... Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере. Вы сами себе все уже продемонстрировали (надо только внимательно читать те ссылки, которые сами же и приводите в качестве "аргументов"): http://blogs.msdn.com/b/davihard/archive/2010/04/26/mvvm-criticism.aspx ... Given that the MVVM pattern is still relatively new, and that new tool-sets, walkthroughs, or patterns, such as Onyx , the Microsoft WPF Toolkit , Caliburn , MVVM Light Toolkit , and Calcium are being released, this problem may be solved over time. ... Пройдите по любой из указанных ссылок и получите себе Layer SuperType на любой вкус и цвет, заодно и про т.н. "проблемы с большим числом биндингов" позабудете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:47 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
qu-qui... Продемострируй свой Super Layer не на словах, а на деле. Хотя бы на этом тривиальном примере. Вы сами себе все уже продемонстрировали (надо только внимательно читать те ссылки, которые сами же и приводите в качестве "аргументов"): http://blogs.msdn.com/b/davihard/archive/2010/04/26/mvvm-criticism.aspx ... Given that the MVVM pattern is still relatively new, and that new tool-sets, walkthroughs, or patterns, such as Onyx , the Microsoft WPF Toolkit , Caliburn , MVVM Light Toolkit , and Calcium are being released, this problem may be solved over time. ... Пройдите по любой из указанных ссылок и получите себе Layer SuperType на любой вкус и цвет, заодно и про т.н. "проблемы с большим числом биндингов" позабудете... Проходил ничего полезного не нашел. Возьми эти супер слои и попробуй ответить на вопросы автора топика. Всеееееееееее же простооооооооооооооооо!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 14:10 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
x вот прикольная ссылка для всех, кого осадили архитектурные астронавты :) ухахаха ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2010, 10:57 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
что такое mvvm в 5-ти минутном обзоре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 16:28 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
"I hope this helps!" чему поможет эта статься,автор умолчал. а начал статью со слов : "сча я расскажу про mvvm по своему,слушайте!". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:53 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
насколько я понял, перечитав пол инета на тему МВМВ, этот паттерн лишь основа, сначала его надо изучить, поменять логику мышления а затем в каждой нестандартной ситуации мостырить под него подпорки - потому как он описывает лишь простые стандартные действия - когда все известно и все просто и хорошо как в детском садике, а если все уже хотя бы как в школе - бери напильник и пили Шура... ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 15:14 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
spнасколько я понял, перечитав пол инета на тему МВМВ, этот паттерн лишь основа, сначала его надо изучить, поменять логику мышления а затем в каждой нестандартной ситуации мостырить под него подпорки - потому как он описывает лишь простые стандартные действия - когда все известно и все просто и хорошо как в детском садике, а если все уже хотя бы как в школе - бери напильник и пили Шура... ))) Как правило основных вариантов форм не так уж много и это не проблема. Приведи пример нестандартных действий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 18:05 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
Вот золотые слова отсюда 8хFatherTo me the pitfall with WPF is that too many people try to use bindings for everything or force all their apps into the MVVM pattern. This isn’t necessarily a problem with WPF but how people try to use it. Maybe someone should publish a book on how to effectively use WPF for LOB applications. People need to remember that just because you can do something doesn’t mean you should. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 21:44 |
|
||
|
MVVM и куча вопросов
|
|||
|---|---|---|---|
|
#18+
LRВот золотые слова отсюда 8хFatherTo me the pitfall with WPF is that too many people try to use bindings for everything or force all their apps into the MVVM pattern. This isn’t necessarily a problem with WPF but how people try to use it. Maybe someone should publish a book on how to effectively use WPF for LOB applications. People need to remember that just because you can do something doesn’t mean you should. Вы нам разжуйте, а мы подумаем проглотить или нет. Проблема WPF только в одном - не получится сразу,как в Winforms, начать таскать контролы и ковыряться в обработчиках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 11:01 |
|
||
|
|

start [/forum/topic.php?all=1&fid=21&tid=1442646]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 152ms |

| 0 / 0 |
