|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Доброго времени суток. Уже 3-й день пытаюсь познакомиться с паттерном, именуемым как MVVM, но, как-то не понятно всё слишком. Чересчур даже. Скопипастенные примеры, конечно работают, но, как только, пытаешься применить паттерн к своим проектам, то всё рушится ещё до стадии тестирования. Вот несколько примеров (и вопросов): 1. Допустим у меня есть в представлении разметка, напоминающая "окно". Ну типа ChildWindow. И-так, при инициализации его я могу (и должен) указать значение Header'а - строчки в шапке. Вот это первый вопрос. Насколько я понял, нужно написать свойство зависимостей и привязать его к этой строчке в представлении ? Ибо иначе где - в ViewModel? Пробовал - тогда Intellisense не видит это свойство. А его нужно задать практически в момент создания окна. 2. Далее - допустим у меня есть несколько объектов основанных на MVVM паттерне (несколько окон). Как можно организовать взаимодействие между ними? Если весь код в Model и ViewModel находится. Допустим, передачу данных из одного в другой? 3. Я не понимаю чем так "прекрасен" этот паттерн? Слишком он сложный и закрытый. Прям утопия майкрософт. Даже пресловутый MessageBox и тот надо открывать через танцы с бубном, когда обычно нужно написать 1 строчку. 4. Далее - NotifyPropertyChanged - смысл? Ну при изменении значения свойства вызывается метод/евент который типа уведомляет. Уведомляет систему? Или кого? Где можно перехватить эти уведомления? И ещё куча куча вопросов. Я не понимаю зачем вообще был он придуман, всё только сложнее становится. Причем многое, что можно использовать, вообще недоступным становится с MVVM. Объясните мне, глупому, зачем он нужен и как им пользоваться правильно? Прошу не кидать ссылки на блоги/книги/статьи - я уже очень много перечитал. И с каждым разом всё больше вопросов возникает.... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 15:26 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Тут, как бы такое дело, интересное. 1. MVVM это не догма. Это подход. Это не значит, что нужно кидаться и сразу переходить на него. 2. "(несколько окон). Как можно организовать взаимодействие между ними?" -- это вы можете прояснить? Совсем не понял, для чего это. 3. "Даже пресловутый MessageBox" можно показать, только для этого нужно немного припариться внутрях. Есть разные методы и подходы к показу модальных диалогов - тема большая и отдельная. 4. "Далее - NotifyPropertyChanged - смысл?" - допустим, пример: селекнутый роу в гриде и проперти грид. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 16:04 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Спасибо за ответ! 1. Дело в том, что я очень часто видел эту аббревиатуру и воспринимал его как "MUST HAVE инструмент". Я не знаю (и очень хочу знать) - когда действительно MVVM необходима? Является ли его использование одним из "показателей" профессиональности (это уже гордыня ^_^ ). 2. У меня есть юзерконтрол выполненный в виде диалогового окна. Его можно перемещать, растягивать и прочее. А теперь представим что я сделал 2 (разных) экземпляра таких окон. Одно содержит таблицу, второе содержит текстовый редактор. Если мои "окна" выполнены через MVVM - я не представляю как можно: а) обратиться от одного окна ко второму; б) получить доступ к какому либо дочернему элементу окна (таблица или же текстовое поле). Как-то так. 3. Ну тут да.... 4. А вот тут я не понял. При объявлении свойства в нём в set указывается вызов NotifyChangedProperty("MyProperty"); (может и немножко не так пишется, но смысл ясен). Далее всё упирается в один созданный эвент Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Всё упирается в эвент PropertyChanged . Но я не понимаю - как мне сказать программе "если изменилось свойство А, покажи мне MessageBox". Вот о чем я. А каково Ваше мнение - в каких случаях НУЖНО применять MVVM? И вообще стоит ли все проекты под него переделывать (либо когда буду делать новый проект, затачивать его под MVVM)?? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 16:34 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Или, может, для решения моей задачи он просто не нужен , т.к. только сложнее всё будет? У меня бизнес-приложение, через которое можно читать и изменять данные из БД. Каждая таблица из БД представлена в виде таблицы GridView в своём личном самопаленным "окном". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2013, 16:40 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Mans7, mvvm может решить любую проблему. Просто нужно понимать, как её решить. Я не понял примера про окна. Зачем вам два окна, и зачем вам там связь? По поводу примера роу и проперти грида: смысл этого интерфейса, что бы сказать морде, что что-то изменилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2013, 00:33 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Код: xml 1.
Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2013, 08:32 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Mans7, почитайте букварь от Джоша Смита , медленно, вдумчиво, может несколько раз, вникните в детали, и много вопросов отпадут. поверьте личному опыту) я не сразу одолел эту статью, где-то раза с третьего. Конечно просветления не достиг), но общее представление сформировал! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2013, 11:17 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Спасибо БОЛЬШОЕ за информацию, букварь в ближайшее время прочитаю (и вероятно не раз) и отпишу о результатах :). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2013, 00:58 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Прочитал. Да, нужно будет ещё разок. Многое прояснилось... так, значит, MVVM это очень закрытая система... и, видимо, для реализации взаимодействия некоторых элементов, мне нужно делать всё приложение "от а до я" на MVVM. Спасибо, будем думать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 10:18 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Mans7Многое прояснилось... так, значит, MVVM это очень закрытая система... и, видимо, для реализации взаимодействия некоторых элементов, мне нужно делать всё приложение "от а до я" на MVVM. Выше уже говорилось, что MVVM это не "очень закрытая система" и не "MUST HAVE инструмент", а "подход", "паттерн мышления". Это значит, что с таким подходом можно рассматривать любую, даже самую "анти-MVVM" систему с пользой для дела. Но когда "подход", "паттерн мышления" пытаются возвести в догму практического применения, получается что-то иудейской субботы, отягощенной дилеммой, которую сформулировал в бытность свою Иисус. Одним словом, каждый решает сам для себя - "разработчик для MVVM" или "MVVM для разработчика". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2013, 14:23 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
АбсолютMans7, mvvm может решить любую проблему. Возможно. Но ненадо зацикливаться на mvvm. 90% проблем можно решать используя mvvm. Остальные использую прагматический подход> "Будь проще и к тебе потянуться люди" (c) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 01:14 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
gpuАбсолютMans7, mvvm может решить любую проблему. Возможно. Но ненадо зацикливаться на mvvm. 90% проблем можно решать используя mvvm. Остальные использую прагматический подход> "Будь проще и к тебе потянуться люди" (c) Внимательно читайте мои комментарии. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 02:13 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
Абсолютgpuпропущено... Возможно. Но ненадо зацикливаться на mvvm. 90% проблем можно решать используя mvvm. Остальные использую прагматический подход> "Будь проще и к тебе потянуться люди" (c) Внимательно читайте мои комментарии. Мне нравится етот> mvvm может решить любую проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 02:28 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
И что же в нем такого? Призыв применять его везде и вся? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 02:53 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
АбсолютИ что же в нем такого? Призыв применять его везде и вся? Только в IT можно быть беременной, но не совсем, а только на 90%. При наличии спец.контролов, расширений и прочей обвязки будут 100%. Если не умеете готовить, то не нужно делать сильных заявлений. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 09:33 |
|
MVVM паттерн - зачем?
|
|||
---|---|---|---|
#18+
SeVaТолько в IT можно быть беременной, но не совсем, а только на 90%. При наличии спец.контролов, расширений и прочей обвязки будут 100%. Если не умеете готовить, то не нужно делать сильных заявлений. Эээ, ничего не попутали? Я тут не утверждал про 90%. Это gpu утверждает. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2013, 15:33 |
|
|
start [/forum/topic.php?fid=21&fpage=32&tid=1441474]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 460ms |
0 / 0 |