Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=36838371&tid=1442646]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 381ms |

| 0 / 0 |
