Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Я чего-то потерялся в этом вопросе... Prism, Cinch, MVVM Light и т.д. так много документации, так много инфы, что просто не знаю что нужно выбирать и что мне подходит. Вот столкнулся сейчас с тем, что нужно показывать диалоговое окно. Это можно делать либо через гемор вручную, либо используя уже готовые сервисы из Frameworks. Также нужно вести лог ошибок. Это тоже я так понимаю можно закрепить за Framework... Обработка Exceptions... Гибкий механизм вызова и сокрытия форм. Будет широко использоваться мультипоточность. Кто что посоветует? Какой есть опыт использования различных Frameworks? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2010, 18:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
юзаем призм, полет нормальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2010, 20:45 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
мимо_пробегал__, Совет - хорошенько разобраться с архитектурой Silverlight в принципе. Ни один фреймворк не решит всех проблем. Мне MVP подход в последнее время больше нравится, чем MVVM. Точнее MVP + PresentationModel подход. Рекомендую следующий набор статей по этому поводу http://davybrion.com/blog/2010/07/the-mvvm-pattern-is-highly-overrated/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 22:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhмимо_пробегал__, Совет - хорошенько разобраться с архитектурой Silverlight в принципе. Ни один фреймворк не решит всех проблем. Мне MVP подход в последнее время больше нравится, чем MVVM. Точнее MVP + PresentationModel подход. Рекомендую следующий набор статей по этому поводу http://davybrion.com/blog/2010/07/the-mvvm-pattern-is-highly-overrated/ еще раз внимательно читаем тред, и даем ответ тому кто спрашивал) меня PRISM с его модульной архитектурой более чем устраивает. заметьте я ничего никому не навязывал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
мимо_пробегал__, извиняюсь, ответ был для _andrews_ конечно же, просто случайно не туда нажал на ответить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:24 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikh, дык понятно) коли зашел разговор, можно подробнее про MVP + PresentationModel? разве PresentationModel в нашем случае не будет адаптером модели для view? ведь это и выполняет ViewModel, тупо выставляет свойства модели для биндинга. в чем тогда сок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
мимо_пробегал__, сок в использовании всех прелестей Presenter, без проблем и не задумываясь имея ссылку на View из него, что позволяет решить множество проблем, например, с той же самой отображения ChildView и т.п. А вот PresenterModel дает нам сок использования Binding в WPF/Silverlight. То есть View - отображает данные, Model - бизнес логика, ViewModel - отображение модели на вью + валидация, Presenter - действия, подгрузки данных и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:51 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhмимо_пробегал__, Совет - хорошенько разобраться с архитектурой Silverlight в принципе. Ни один фреймворк не решит всех проблем. Мне MVP подход в последнее время больше нравится, чем MVVM. Точнее MVP + PresentationModel подход. Рекомендую следующий набор статей по этому поводу http://davybrion.com/blog/2010/07/the-mvvm-pattern-is-highly-overrated/ После перехода с SCSF подобные выводы напрашивались сразу при отсутствии WorkItem(Use Case) в Prism. Я не видел ни одного фреймворка, который в комплексе решал все проблемы: навигация, управление триадой View-ViewModel-Model, Dal, etc. Сделал свой вариант. ЗЫ MVP - неплохой паттерн, но в случае с WPF/SL, держать ссылку на View нужно в очень редких случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:10 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, авторЗЫ MVP - неплохой паттерн, но в случае с WPF/SL, держать ссылку на View нужно в очень редких случаях. "нужно", "можно" или "лучше"? Держать ее можно во всех случаях, проблем в этом не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:17 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhТо есть View - отображает данные, Model - бизнес логика, ViewModel - отображение модели на вью + валидация, Presenter - действия, подгрузки данных и т.п. Это уже MVVMP получается. Платите двадцать рублей. (с) Печкин Печкин сразу нашёл выход: - Вы ему письмо напишите. Я ему передам. Лучше открытку. У меня с собой есть. Вам простую или поздравительную дать? - Конечно, простую, - отвечает Матроскин. - Буду я на него поздравительную тратить. Печкин у себя в сумке посмотрел и говорит: - Какая жалость. У меня только поздравительные открытки есть. Простые кончились. Придётся вам поздравительную брать. Взял Матроскин поздравительную открытку с цветочками и котятами и написал: "Шарик, ты - балбес!" Печкин возражает: - Неправильно это. Если открытка поздравительная, сначала адресата поздравить полагается. Матроскин дописал: "Поздравляю тебя, Шарик, ты - балбес! Перестань валять дурака, давай мириться". Печкин эту открытку Шарику принёс. Шарик прочитал и сильнее на Матроскина обиделся: - Я сейчас в этого поздравителя кочергой брошу. Печкин говорит: - Зачем бросать, если почта есть. Это уже бандероль получается. Сейчас мы её упакуем и коту передадим. Платите десять рублей за упаковку. Он кочергу в бумагу завернул, верёвочкой перевязал и к Матроскину пришёл на его половину: - Вам кочергу прислали бандеролью. Хотели в вас запустить. - Что? - кричит Матроскин. - Да я в него за это утюгом! Где мой утюг деревенский с углями? Он притащил огромный чугунный утюг, прямо как из музея. - Стоп-стоп! - говорит Печкин. - Это уже посылка получается. Платите двадцать рублей за доставку. Я уж ваш утюг передам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:19 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhмимо_пробегал__, сок в использовании всех прелестей Presenter, без проблем и не задумываясь имея ссылку на View из него, что позволяет решить множество проблем, например, с той же самой отображения ChildView и т.п. А вот PresenterModel дает нам сок использования Binding в WPF/Silverlight. То есть View - отображает данные, Model - бизнес логика, ViewModel - отображение модели на вью + валидация, Presenter - действия, подгрузки данных и т.п. Отображать ChildView можно прекрасно и без View, как это сделано в Prism c помощью Bihaviors.На мой взгляд, логика управление окнами должна быть вынесена в отдельный manager. Это повышает переносимость, гибкость в выборе необходимого интерфейса(tab,mdi, outlook style,etc), внятность кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhi, авторЗЫ MVP - неплохой паттерн, но в случае с WPF/SL, держать ссылку на View нужно в очень редких случаях. "нужно", "можно" или "лучше"? Держать ее можно во всех случаях, проблем в этом не вижу. Проблемы будут с тестированием. Без view все значительно упрощается, + см выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LR, Опечатался, там вместо ViewModel должно стоять PresentationModel, в общем рекомендую прочитать приведенные статьи, там все описано, с чем я согласен на 99%. Так же рекомендую в одной из статей скачать пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:23 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, как раз таки с тестированием проблем не будет, а будет в несколько раз более протестированнее. Особенно связанные на View поведения. Очевидно, что держать ссылку нужно не на само вью, а на абстракцию, тобишь интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
[quot LR]Denis GladkikhТо есть View - отображает данные, Model - бизнес логика, ViewModel - отображение модели на вью + валидация, Presenter - действия, подгрузки данных и т.п. Это уже MVVMP получается. Варианты могут разные в зависимости от задач и личных предпочтений. ЗЫ Бизнес логика кроме валидации в Model для трехзвенки не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:27 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhi, как раз таки с тестированием проблем не будет, а будет в несколько раз более протестированнее. Особенно связанные на View поведения. Очевидно, что держать ссылку нужно не на само вью, а на абстракцию, тобишь интерфейс. В этом весь и вопрос: зачем ее держать, если она не нужна? В ее отсутствии тестировать нужно только бизнес логику, для UI тестирования есть свои инструменты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:31 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iВарианты могут разные в зависимости от задач и личных предпочтений. +100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, Конечно есть инструменты, много у вас тестов написано для UI? ну честно? Охотно все рисуют такие тесты? А нужно или не нужно все зависит от того как разрабатывать. Например, решите мне простую задачу - установите фокус в определенный текстбокс. Действие такое: пользователь вводить логин и пароль, пара отправляется на сервер, в случае неверного логина стираем все и выставляем фокус на логин, в случае неверного пароля выставляем фокус на пароль и стираем только пароль. В случае MVP связки это делается за считанные секунды, данное поведение так же легко протестировать. В случае чистого MVVM нужно делать обратные команды (решение попахивает тем еще), можно еще какие-нибудь левые решения навыдумывать, но зачем? Уже давно есть простой и удобный способ при помощи MVP. Все нужно использовать вмеру, байдинг очень классная вещь, но вот в связке MVP + PresentationModel все работает в разы лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:39 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhi, Конечно есть инструменты, много у вас тестов написано для UI? ну честно? Охотно все рисуют такие тесты? А нужно или не нужно все зависит от того как разрабатывать. Например, решите мне простую задачу - установите фокус в определенный текстбокс. Действие такое: пользователь вводить логин и пароль, пара отправляется на сервер, в случае неверного логина стираем все и выставляем фокус на логин, в случае неверного пароля выставляем фокус на пароль и стираем только пароль. В случае MVP связки это делается за считанные секунды, данное поведение так же легко протестировать. В случае чистого MVVM нужно делать обратные команды (решение попахивает тем еще), можно еще какие-нибудь левые решения навыдумывать, но зачем? Уже давно есть простой и удобный способ при помощи MVP. Все нужно использовать вмеру, байдинг очень классная вещь, но вот в связке MVP + PresentationModel все работает в разы лучше. Пример хороший, но не очень показательный. Очистка полей делается простым обнулением свойств Model, установка фокуса - Behaivors(есть готовые). Еще будут варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhНапример, решите мне простую задачу - установите фокус в определенный текстбокс. ну вот нечто подобное, местами использую в xaml (чтобы не "мусорить" в коде) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:09 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRDenis GladkikhНапример, решите мне простую задачу - установите фокус в определенный текстбокс. ну вот нечто подобное, местами использую в xaml (чтобы не "мусорить" в коде) а не подскажите, чем занимается процессор по одной из ссылок с этого сайта, когда я его не трогаю? Предположения какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafmа не подскажите, чем занимается процессор по одной из ссылок с этого сайта, когда я его не трогаю? Предположения какие? подсчитывает количество "счастливых" билетиков на двадцатисемимиллионной выборке? (просто как предположение от "фонаря", он светит слева спереди) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRiscrafmа не подскажите, чем занимается процессор по одной из ссылок с этого сайта, когда я его не трогаю? Предположения какие? подсчитывает количество "счастливых" билетиков на двадцатисемимиллионной выборке? (просто как предположение от "фонаря", он светит слева спереди) у гугла на туже задачу почему-то хватает 1%, в бездействии 0%. Он правда SL для рисовалки интерфейса не использует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:49 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafmу гугла на туже задачу почему-то хватает 1%, в бездействии 0%. Он правда SL для рисовалки интерфейса не использует. возможно... вывод? очевиден: SL - УГ! надеюсь, Вы услышали что хотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:53 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iна Искре, будет загрузка 400% на каждом ядре даже с одним справочником ты ошибаешься. Загрузка будет такой же, потому что Искра просто браузер для SL. На себя она не забирает лишнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:55 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRнадеюсь, Вы услышали что хотели? нет. Ответа же не было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:56 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Посмотри в Silverlight/Showcase . Загрузка ноль% в споконом состоянии. Твой пример - кривые руки, которые ни о чем не говорят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iПосмотри в Silverlight/Showcase . Загрузка ноль% в споконом состоянии. Твой пример - кривые руки, которые ни о чем не говорят так я об этом мнения и спрашиваю. Если это объясняется просто кривыми руками, то это тоже объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 01:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafm, SL по ресурсам конечно достаточно прожорлив, спору нет. Но не настолько, чтобы нельзя было разрабатывать для "посредственного нынче" железа. Конечно, всегда есть "железная перспектива", но ведь "вменяемые" разработчики этим никогда не злоупотребляют (ориентир - "посредственное нынче" железо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 02:10 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LR, согласен. Запускал на посредственной по нынешним временам Sony Vaio C1, завтра попробую на Z-серии, останется ли место для других приложений. Сегодня уже нет желания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 02:26 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iПосмотри в Silverlight/Showcase . Загрузка ноль% в споконом состоянии. Твой пример - кривые руки, которые ни о чем не говорят действительно. функционал похожий, но реализация конечно качественная. Перемудрили ребята с анимацией, похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 02:42 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRну вот нечто подобное, местами использую в xaml (чтобы не "мусорить" в коде) Не катит, с этим behavior легко выставить фокус на действие произведенное на UI. В моем примере фокус нужно установить из ViewModel/Presenter/Controller после ответа с сервера. iscrafmа не подскажите, чем занимается процессор по одной из ссылок с этого сайта, когда я его не трогаю? Предположения какие? Вообще, вопрос к теме не относится, вроде. Но раз спросили. На этот баг не попадался в этом примере, но вообще это все кривые руки разработчиков, когда-то я решал похожий баг. Чаще всего на LayoutUpdate или похожий event начинают делать что-то с UI, что приводит в бесконечный цикл - Layout обновляется -> дергается event -> в коде разработчик обновляет Layout -> и по кругу. Так что сам SL тут не причем, а я для вас и на html c js могу похожее сделать, и на любой другой платформе. P.S. Еще в SL есть несколько случаев, когда может происходить утечка памяти, например с BusyIndicator. Случаи известные, и тру разработчики с ними легко справляются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 09:28 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhЧаще всего на LayoutUpdate или похожий event начинают делать что-то с UI, что приводит в бесконечный цикл - Layout обновляется -> дергается event -> в коде разработчик обновляет Layout -> и по кругу. Так что сам SL тут не причем, а я для вас и на html c js могу похожее сделать, и на любой другой платформе. попробуйте, сделайте. Интересно даже, получите такой же эффект или все же классически вылетит программа по причине замкнутого цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 10:28 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafm, зачем мне пробовать? Классического замкнутого цикла там нет, там даже может и не быть утечки памяти. Просто будет постоянно обрабатываться layoutupdated event. Ничего вылететь не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 10:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiscrafm, зачем мне пробовать? чтобы убедиться, а не предполагать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafm, эмс, может я не так выразился, но вообще-то я говорил про случай из жизни. Этот баг я действительно правил в одном из приложений. В вашем примере - скорее всего виноват не LayoutUpdate, посмотрел в SL Spy, никаких событий по циклы не происходит, но очевидно, что есть, что-то еще. Предположительно, могут обрабатывать контекст, искать мышку как-то. Нужно смотреть код, чтобы понять ошибку, допущенную разработчиками. В любом случае - вопрос уже не по теме сообщения. Так что предлагаю закрыть его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
MVVM - игрушка, не способная решать сложные нетривиальные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:52 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhВ любом случае - вопрос уже не по теме сообщения. Так что предлагаю закрыть его. Вы уже второй раз вспоминаете о теме топика, нарушив ее еще в третьем сообщении на первой странице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:55 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Выступление на ADD2010: Silverlight/WPF: возврат от паттерна MVVM к MVP О чём я и говорил тут: 9903653 МСУP.S. Как Вы смели заметить, я не уважаю MVVM, меня больше устраивает гибкий вариант как-бы смеси MVVM + MVP (MVC). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:56 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ Выступление на ADD2010: Silverlight/WPF: возврат от паттерна MVVM к MVP О чём я и говорил тут: 9903653 МСУP.S. Как Вы смели заметить, я не уважаю MVVM, меня больше устраивает гибкий вариант как-бы смеси MVVM + MVP (MVC).Судя по нику участника, отстаивающего эту позицию в топике, и имени автора выступления, "массовых выступлений" против MVVM пока что не видно. И тут и там - один и тот же :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 11:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Игорь, не суетитесь ) Я вещаю за реальные практические вещи, которые нужны разработчику в повседневном быте. На основе опыта, а не разглагольства придурковатых евангелистов. Я ищу оптимальное , а не опираюсь на рекламу пионеров-багописателей, которые пиарят какой-то там сферический паттерн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 12:05 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafmDenis GladkikhВ любом случае - вопрос уже не по теме сообщения. Так что предлагаю закрыть его. Вы уже второй раз вспоминаете о теме топика, нарушив ее еще в третьем сообщении на первой странице. эмс... как это я нарушил? Я показал на "фреймворк", описанный в тех статьях по ссылке. Он легко вписывается в архитектуру MVVM, а точнее это это смесь MVP c MVVM. i seeСудя по нику участника, отстаивающего эту позицию в топике, и имени автора выступления, "массовых выступлений" против MVVM пока что не видно. И тут и там - один и тот же :) Все верно, это я. И я позицию в топике не отстаиваю. Даю просто совет. ;) И то, что попалось на глаза не отображает всю действительность. Погуглите и посмотрите сколько народу задумывается о сравнении MVP и MVVM и увидите ;) А еще посмотрите с какой архитектурой разработаны первые примеры Prism, да даже в версии 2.x ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 12:12 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhДаю просто совет. ;) И то, что попалось на глаза не отображает всю действительность. Погуглите и посмотрите сколько народу задумывается о сравнении MVP и MVVM и увидите ;) +1, Дениска. Верно вещаете )) P.S. За TDD тоже согласен. Была даже ссылка, постил как-то, что специалисты пишут, что 100% покрыть код автотестами невозможно впринципе. Всех комбинаций и поведений не учтешь. Выводы - мы пишем тест, а не программу (если серьезный проект), тратим много времени на имзменение теста под новые задачи оптимизации и кастома. И так далее. В современных условиях заказчик не готов платить на время - ему нужно быстро и чтоб работало так, как нужно ему. Ну и так далее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 12:17 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeМСУ Выступление на ADD2010: Silverlight/WPF: возврат от паттерна MVVM к MVP О чём я и говорил тут: 9903653 пропущено... Судя по нику участника, отстаивающего эту позицию в топике, и имени автора выступления, "массовых выступлений" против MVVM пока что не видно. И тут и там - один и тот же :) Весомых аргументов тоже не видно авторВ большинстве случаев реализации MVVM паттерна модель представления имеет очень много причин для изменений. Если нам нужно на представлении поменять немного логику, использовать другое связывание данных, то, скорее всего, нужно будет менять и логику в модели представления. Если поменялась модель, то нужно менять за ней и модель представления. Одни из самых важных принципов разработки – это «разделение ответственности» (Seperation of Concerns) и «принцип единственной ответственности» (Single Responsibility Principle). В случае модели представления эти принципы нарушены. Данную проблему можно решить, вернувшись обратно к паттерну MVP с небольшими доработками. Основой этих доработок будет являться облегченная версия модели представления, описанной Мартином Фаулером [3]. В данном случае эта модель представления возьмет на себя только задачу связывания данных, и в некоторых случаях их валидацию. В результате у нас будет презентатор, который будет выполнять действия по запросу пользователя, модель представления, которая будет связывать данные с представлением, само представление, а так же модель. Каждый компонент фокусируется на более специфичных задачах вместо охвата нескольких, что дает нам, например, преимущества в написании тестов. Данный подход не только делает код более читабельным и классы более сфокусированными, так же у нас появляется возможность использовать облегченную версию модели представления сразу на нескольких представлениях MVVM - MVP без View. "Если нам нужно на представлении поменять немного логику" это придется делать и в MVP. "Если поменялась модель, то нужно менять за ней и модель представления", а это делать совершенно необязательно, если Model отдельное свойство MVVM. Помимо этого, MVP есть еще одно существенное усложнение, которое соврешенно не отвечает принципу единичной ответственности - в нем должна быть заложенна логика управления предтавлением и связыванием с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 13:17 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУDenis GladkikhДаю просто совет. ;) И то, что попалось на глаза не отображает всю действительность. Погуглите и посмотрите сколько народу задумывается о сравнении MVP и MVVM и увидите ;) +1, Дениска. Верно вещаете )) P.S. За TDD тоже согласен. Была даже ссылка, постил как-то, что специалисты пишут, что 100% покрыть код автотестами невозможно впринципе. Всех комбинаций и поведений не учтешь. Выводы - мы пишем тест, а не программу (если серьезный проект), тратим много времени на имзменение теста под новые задачи оптимизации и кастома. И так далее. В современных условиях заказчик не готов платить на время - ему нужно быстро и чтоб работало так, как нужно ему. Ну и так далее... -100, Данилка вещает, как всегда о вещах не имея ни малейшего представления о них. Основные аргументы сторонников TDD - заказчик не готов платить за полное обследование и проектирование по науке или это не имеет смысла, тк пока будет рисовать красивые диаграммы бизнес-требования успеют десять раз поменяться. Посему действуем по принципу - "быстро шьем и еще быстрее распарываем", а для этого нужны unit test'ы, иначе далеко не уедем с ручным тестированием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 13:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i-100, Данилка вещает, как всегда о вещах не имея ни малейшего представления о них. Данилка вещает о вещах, имея шикарное представление о них. Слыхал о таком парне под именем Joel Spolsky? Давай посмотрим на "Разоблачение юнит-тестов и TDD в частности": 9690683 МСУРазоблачение юнит-тестов и TDD в частности. Юнит тесты и TDD Основной упор сделан на то, что юнит-тесты - бесполезная штука. Модная, но бесполезная. Лично я согласен с автором. РазоблачениеВ очередной раз Joel Spolsky, автор отличных книг из серии Joel on Software и одноименного блога JoelOnSoftware, написал потрясающую статью . В этот раз он рассуждает про Test Driven development и, как обычно, делает это без всякого уважения к авторитетам и современным тенденциям. Должен признаться, что моё отношение к TDD в точности совпадает с тем, что он описал в этой статье. И это радует и успокаивает. Попробую в этой статье раскрыть мое отношение к юнит тестам и TDD. ... читаем дальше :) iОсновные аргументы сторонников TDD - заказчик не готов платить за полное обследование и проектирование по науке или это не имеет смысла, тк пока будет рисовать красивые диаграммы бизнес-требования успеют десять раз поменяться. Поверь мне, TDD нисколько не ускоряет работу без полного обследование, которое является, вообще-то, аналитической работой. Ты вообще не в тему приплёт сюда обследование, клоун iПосему действуем по принципу - "быстро шьем и еще быстрее распарываем", а для этого нужны unit test'ы, иначе далеко не уедем с ручным тестированием Жесть. Ты хоть раз когда-нибудь хоть один тест написал? С тестами априори быстрее не сошьешь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 13:42 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУi-100, Данилка вещает, как всегда о вещах не имея ни малейшего представления о них. Данилка вещает о вещах, имея шикарное представление о них. Слыхал о таком парне под именем Joel Spolsky? Давай посмотрим на "Разоблачение юнит-тестов и TDD в частности": 9690683 МСУРазоблачение юнит-тестов и TDD в частности. Юнит тесты и TDD Основной упор сделан на то, что юнит-тесты - бесполезная штука. Модная, но бесполезная. Лично я согласен с автором. пропущено... ... читаем дальше :) iОсновные аргументы сторонников TDD - заказчик не готов платить за полное обследование и проектирование по науке или это не имеет смысла, тк пока будет рисовать красивые диаграммы бизнес-требования успеют десять раз поменяться. Поверь мне, TDD нисколько не ускоряет работу без полного обследование, которое является, вообще-то, аналитической работой. Ты вообще не в тему приплёт сюда обследование, клоун iПосему действуем по принципу - "быстро шьем и еще быстрее распарываем", а для этого нужны unit test'ы, иначе далеко не уедем с ручным тестированием Жесть. Ты хоть раз когда-нибудь хоть один тест написал? С тестами априори быстрее не сошьешь )) Муся, не переживай за меня. Их другие пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 13:47 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
А у меня нет авторитетов. Спольски умный мужик, но никто не может быть прав на 100%. А иногда его можно понять не так, как хотел бы сам Спольски, чтобы его понимали. По поводу тестов - нужно золотая середина. Каждый проект имеет ее свою. Товарищи, не превращайте тред в флуд, если хотите пообщаться между собой - пишите друг другу письма. _andrews_. , извиняюсь, если инициатором флуда был я. По поводу фреймворков еще раз хочу сказать, что в принципе любой из них придется допиливать, потому особой разницы в выборе нет. Главное выбрать тот, что проще будет восприниматься вами. Ну а лучше своего фреймворка ничего быть не может ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 14:14 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhА у меня нет авторитетов. Спольски умный мужик, но никто не может быть прав на 100%. А иногда его можно понять не так, как хотел бы сам Спольски, чтобы его понимали. По поводу тестов - нужно золотая середина. О том и речь. Просто радуют некоторые товарищи, которые кричат "Тесты - наше всё!". Хочется сразу спросить у товарищей - "А ты тесты-то когда-нить писал? И?" Лично моё имхо, основанное на практике: Тесты хороши на конкретных выделенных участках кода, которые имеет нестандартную (нетривиальную) логику. Во всех остальных случаях тесты не представляют никакого интереса. Выбирать паттерн проектирования систем ради тестов - параноя. Описывать поведение гуя на отдельный класс (полноценная реализация "модель-представление") - идиотизм. Единстенный плюс - тесты. Про тесты уже сказал - нахер не нужны (за исключением ряда случаев). Именно поэтому писать велосипед на MVVM паттерне - садомазохизм. Лишаемся чудестной кодогенерации вида Code Behind и умираем (тонем, гибнем, тратим время) в классе, описывающим полностью поведение представления. А на вопрос "А нахер оно мне нужно?" ответить-таки никто не может. Для тестирования софта: применение ручного тестирования и применение тестирования роботом (с разработкой реального подробного документа - тест-плана) - гуд прэкстис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 14:30 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Вот тут выкладывал семпл паттерна, который реально может быть съедобен во всех приложениях WPF или SL. 9898671 Примерно тоже самое, о чём говорит Дениска. Есть так называемая "модель", которая может стыковаться с декларативным XAML и его Code Вehind. В Code Вehind есть события и вызовы, в которых мы ссылаемся на "модель". Тем самым "модель" - это как-бы ядро, которое можно оторвать и запустить на том же ASP.NET и WinForms с незначительными изменениями. Описывать же всю логику представления в отдельном классе - идиотизм и трата времени, особенно гиблое это дело для достаочно сложных гуев. Поэтому имея контроллер (пусть им будет кодогенерированный Code Вehind) - то, что доктор прописал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 14:39 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 15:23 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
мимо_пробегал_МСУ, флуд конечно задрал, но ИМХО i предлагал решение покрасивее.. Ну я как-бы уже дал комментарии по поводу MVVM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 15:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУВот тут выкладывал семпл паттерна, который реально может быть съедобен во всех приложениях WPF или SL. 9898671 Примерно тоже самое, о чём говорит Дениска. Есть так называемая "модель", которая может стыковаться с декларативным XAML и его Code Вehind. В Code Вehind есть события и вызовы, в которых мы ссылаемся на "модель". Тем самым "модель" - это как-бы ядро, которое можно оторвать и запустить на том же ASP.NET и WinForms с незначительными изменениями. Описывать же всю логику представления в отдельном классе - идиотизм и трата времени, особенно гиблое это дело для достаочно сложных гуев. Поэтому имея контроллер (пусть им будет кодогенерированный Code Вehind) - то, что доктор прописал. Ура!!! Таки свершилось и Мустафа осчастливил нас в очередной раз, осознал необходимость в Model и открыл Америку, что она может использоваться где угодно. За незнание названия паттерна, огрызки которого ты продемострировал снимаю один бал. Еще один за невнятное название метода(Init) для загрузки данных. -1 за magic string в базовом классе. -1 за эту лапшу Код: 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. Итого -твердый кол. Чтобы исправить оценку, подготовь обзорный реферат по фреймворкам для работы с Model. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 16:03 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iУра!!! Таки свершилось и Мустафа осчастливил нас в очередной раз, осознал необходимость в Model и открыл Америку, что она может использоваться где угодно. Как говорили деды - зри в корень. Но Сева никогда не следовал этим инструкциям, поэтому его лоб стал походить на кирпичную кладь. Ужасное зрелище. Суть высказывания была не в том, что Model можно где угодно использовать, а в том, что в нее не нужно закладывать поведение представления, которое нам навязывает MVVM. Уловил разницу? Тогда присаживайся, на сегодня твой мозг получил и так уже много информации. Завтра продолжим. iЗа незнание названия паттерна, огрызки которого ты продемострировал снимаю один бал. За слепоту ты уволен из рядов вещателей правды о SL: МСУТам не используется паттерн MVVM 9899001 iЕще один за невнятное название метода(Init) для загрузки данных. Да, верно. Нужно было так: SeVaDegradatedCommit(). Буду в следующий раз предусмотрительней. i-1 за magic string в базовом классе. В каком именно? Где стринг? P.S. Как всегда - белый шум и сопение... Не конкретики, ни дела. Сплошное незнание ни теории, ни практики. Ты только еще вчера мембершип освоил и пишал, что идентити это зло - рано тебе про MVVM басни читать. Уйди в угол. iДальше лениво ковыряться и так достаточно. В чем ковыряться? Ты в терминах путаешься и блещешь слабоумием (про тесты поржал сегодня), о каком ковырянии речь? iЧтобы исправить оценку, подготовь обзорный реферат по фреймворкам для работы с Model. Прими благодетель и покойся с миром. Гроб - твой верный друг в этой жизни. Мы будем помнить о тебе и твоих маразмах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 16:18 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Мусик, перекладывать логику представления в модель - это твой очередной шедевр. Поздравляю, до такого бреда еще никто не додумался. ЗЫ Разработкой в минимальный сроки в этом лапшекоде даже отдаленно не пахнет. Берем лопату и тупо копаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 16:56 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУi-1 за magic string в базовом классе. В каком именно? Где стринг? P.S. Как всегда - белый шум и сопение... Не конкретики, ни дела. Утомительно все тебе разжевывать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. "Items" - magic string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:04 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i"Items" - magic stringВ принципе да, но как еще обратиться к имени свойства, не перегружая код хитровывернутыми референсами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i-1 за magic string в базовом классе iУтомительно все тебе разжевывать Милок, а где, собственно, базовый класс? Ты или часто ударяешься головой, либо одно из двух, но базовый класс - это BaseModel. И в нем нет "magic string". Во-вторых, ты мне предлагаешь вылизывать тестовый код? Ты либо реально в вакууме, либо ты просто не в состоянии сформулировать более достойные и осмысленные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:09 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeно как еще обратиться к имени свойства, не перегружая код хитровывернутыми референсами? Через отдельный хелпер енумов или констант сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
see Классический подход в виде имплемента: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:18 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Концептуально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seei"Items" - magic stringВ принципе да, но как еще обратиться к имени свойства, не перегружая код хитровывернутыми референсами? Вариантов много. Один из самых распространенных - через лямбды. Самый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ii seeпропущено... В принципе да, но как еще обратиться к имени свойства, не перегружая код хитровывернутыми референсами? Вариантов много. Один из самых распространенных - через лямбды. Самый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject а можно сампл простенький обоих вариантов, ну или линк где можно почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:38 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iВариантов много. С десяток покажешь? iОдин из самых распространенных - через лямбды. Ну давай, покажи через "лямбды", чего воздух трясти. iСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject Сынок, DynamicObject появился только вчера еще. И как же ты это раньше наследовался от DynamicObject, поведай миру? P.S. Показывай пример с DynamicObject. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
студент51iпропущено... Вариантов много. Один из самых распространенных - через лямбды. Самый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject а можно сампл простенький обоих вариантов, ну или линк где можно почитать? первая ссылка, которая попалась под руку . Где-то встречал сравнительный анализ вариантов 5. Если найду, то дам ссылку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiВариантов много. С десяток покажешь? iОдин из самых распространенных - через лямбды. Ну давай, покажи через "лямбды", чего воздух трясти. iСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject Сынок, DynamicObject появился только вчера еще. И как же ты это раньше наследовался от DynamicObject, поведай миру? P.S. Показывай пример с DynamicObject. На нем мы уже проект сдали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:51 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iНа нем мы уже проект сдали Я не спрашиваю у тебя про твой проект, я спрашиваю: МСУПоказывай пример с DynamicObject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 17:52 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiВариантов много. С десяток покажешь? iОдин из самых распространенных - через лямбды. Ну давай, покажи через "лямбды", чего воздух трясти. iСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject Сынок, DynamicObject появился только вчера еще. И как же ты это раньше наследовался от DynamicObject, поведай миру? P.S. Показывай пример с DynamicObject. Я тоже как-то писал вариант с люмбдами тут http://outcoldman.ru/ru/blog/show/250 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 18:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iНа нем мы уже проект сдали немного офтопа.. часом не ASIC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 18:55 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhЯ тоже как-то писал вариант с люмбдами тут http://outcoldman.ru/ru/blog/show/250 Так это ты бочки катишь на MVVM! Не помню точно у кого(кажется, из MS), тоже есть ряд статей с критикой MVVM в пользу MVP. PS Блог знакомый. До этого читал твои статьи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 20:54 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis GladkikhЯ тоже как-то писал вариант с люмбдами тут http://outcoldman.ru/ru/blog/show/250 Так это ты бочки катишь на MVVM! Не помню точно у кого(кажется, из MS), тоже есть ряд статей с критикой MVVM в пользу MVP. PS Блог знакомый. До этого читал твои статьи.Статьи Дениса и на MSDN есть. Неужели в MSDN допускают критику MVVM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 21:45 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
В Prism крамолы еще больше. Кроме MVP есть еще Application Controller. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 22:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject хм...звучит интригующе, но вообразить крайне трудно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhМСУпропущено... С десяток покажешь? пропущено... Ну давай, покажи через "лямбды", чего воздух трясти. пропущено... Сынок, DynamicObject появился только вчера еще. И как же ты это раньше наследовался от DynamicObject, поведай миру? P.S. Показывай пример с DynamicObject. Я тоже как-то писал вариант с люмбдами тут http://outcoldman.ru/ru/blog/show/250 денис, так и должно быть в последнем примере у вас в статье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
LRiСамый простой, короткий и универсальный - базовый класс с наследованием от DynamicObject хм...звучит интригующе, но вообразить крайне трудно... в SL вроде нет байдинга к DynamicObject, а вот в WPF вроде есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 23:27 |
|
||
|
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 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeDenis Gladkikhi, давайте не будем засорять "стенгазету", если действительно интересно про это поговорить напишите мне email и мы это обсудим ;)Денис, давайте уж здесь, зачем переводить в приват интересное обсуждение. Мне просто сложно продолжать эту тему тут, я не вижу вопросов, а вижу мнения. Потому и говорю, если интересно со мной поговорить на эту тему, то лучше в приват. Давайте переведем обсуждение немного в другое русло, с конкретными вопросами и ответами. В данном треде реально сложно следить за ветвью обсуждения. Я не могу понять, например, этого предложения "View(если я правильно понимаю, тяжело воспринимать русские аналоги, которых не существует за отсутствием литературы) в MVVM логики не имеет." Как не имеет? Какой логики? View это часть паттерна. iавториспользовать другое связывание данных, что под этим подразумевается совершенно непонятно я не понимаю откуда вырван контекст и что здесь обсуждается. iсовершенно не обязательно, если Model - отдельное свойство в ViewModel я говорил, что не принимаю эту реализацию, она ужасна. может быть в отдельных проектах, и то вряд ли. iстатья Фаулера, на мой вгзляд, совершенно не к месту. Xaml позволяет иметь в таких случаях два отдельных MVVM без всякой взаимосвязи, что гораздо проще и внятней. Здесь я тоже не понимаю связи этого предложения с моим высказыванием. Причем тут то, что XAML может иметь два отдельных MVVM, я говорил именно про разделения функциональности для PresentationModel и Presenter. В случае ViewModel вся функциональность падает на один класс ViewModel. Если два класса ViewModel то по два класса PresentationModel и Presenter должно быть. iВ таком случае мы будем иметь только нарушение принципов. Обычно в MVVM Моdel отвечает за валидацию, а VM за логику. Это и делает их более простыми и сфокусированными. Нет, это неверное толкование паттерна. ViewModel отвечает за связывание View и Model, но никак не за логику, и что подразумевается под логикой? iVM совершенно не зависит от VIew, сооветственно последних может быть сколько угодно Может быть в некоторых случаях, а так только на словах она не зависит. "Логически" она зависит на 90%. i see я хочу перевести это в приват, чтобы нормально разобраться в вопросе, который здесь возник. Так мы разведем здесь разговор на несколько страниц ни к чему не приводящих. В привате я постараюсь понять мнение собеседника, и потом сделать вывод "отчет", который увидят все. Я могу признать что я где-то не прав, потому с удовольствием это обсужу, только в более "плановом" русле. Как хотите можно и тут все разобрать, только давайте как-то по пунктам, по темам, а не вырывая словосочетания из контекста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 00:49 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikh i see я хочу перевести это в приват, чтобы нормально разобраться в вопросе, который здесь возник....Как вам будет удобнее, Денис, мнение MVP для нас важно :) Но по результатам разбора полётов всё же прошу вас отписаться тут, если не затруднит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 00:53 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikh i see я хочу перевести это в приват, чтобы нормально разобраться в вопросе, который здесь возник. Так мы разведем здесь разговор на несколько страниц ни к чему не приводящих. В привате я постараюсь понять мнение собеседника, и потом сделать вывод "отчет", который увидят все. i, ты же SeVa, ты же Silverlight, ты же "..." - (наш тебе наказ) мы, посетители энтого хворума, призываем тебя - будь с энтим парнем "Denis Gladkikh" - компетентен, комплиментарен, контактуарен, т.е., будь три "К"!!! (мы полагаемся на тебя) - и да подможет тебе Silverlight! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 02:38 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhПравильно ли я понимаю, что вы говорите о том, чтобы осуществлять байдинг сразу к моделям, которые генерирует EF/Linq-To-SQL/WCFServices (нужное подчеркнуть), а Presenter/ViewModel должен просто тупо возвращать этот объект? Сразу скажу, что подход просто нереально ужасный, разрабатывая так руководствуются только ленью. По вашему принципу View это тоже wrapper над Моделью.Процитировал, чтобы освежить контекст. :-) Сомнительно. Как говорилось выше, если модель довольно объёмна - будет уходить масса времени на "тупой" мэппинг значений свойств. Denis GladkikhПроблемы будут разные. Сложнее поддерживать конструкцию, иногда не всегда можно будет осуществить байдинг именно на свойство модели, потому логика будет расплываться, что где-то будет осуществляться байдинг на модель, а где-то на свойство ViewModel.Непонятно, логика чего будет расплываться? Логика биндингов? А "конструкцию" поддерживать будет проще. Меньше изменений нужно будет вносить при изменении модели, одним слоем будет меньше. А все возникающие сложности решаются дописыванием в partial class модели. Denis GladkikhЕще стандартный вариант. Есть список и есть контрол для редактирования сущности. Пользователь начинает редактировать сущность, а потом нажимает отмена (вместо сохранить), а в нашу модель уже записались все данные. Более того, когда пользователь начинает редактировать, то он уже видит изменения и в списке, что не очень-то хорошо. Получается, в таких случаях нужно делать копию объекта, а потом уметь обновлять основной объект из копии. Либо при отмене постоянно перегружать коллекцию.А в любом случае придётся делать запрос к модели после сохранения записи, чтобы получить значения, вычисляемые в сервисах модели. И не "обновлять основной объект", а "заменить основной объект вновь полученным". И проблемы тут нет. Всё это легко выносится в базовые классы и в прикладном коде не присутствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 06:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhЯ не могу понять, например, этого предложения "View(если я правильно понимаю, тяжело воспринимать русские аналоги, которых не существует за отсутствием литературы) в MVVM логики не имеет." Как не имеет? Какой логики? View это часть паттерна. Всё правильно, в представлении нет логики, какие тут могут быть еще вопросы, Дениска? :) Denis Gladkikhiсовершенно не обязательно, если Model - отдельное свойство в ViewModel я говорил, что не принимаю эту реализацию, она ужасна. может быть в отдельных проектах, и то вряд ли. В чем Вы видите подвох, если модель будет опубликована во вьюмодели в качестве проперти? Что ужасного? )) Denis Gladkikhя говорил именно про разделения функциональности для PresentationModel и Presenter. В случае ViewModel вся функциональность падает на один класс ViewModel. Если два класса ViewModel то по два класса PresentationModel и Presenter должно быть. Мне единственное, что не устраивает в MVVM - это описание работы модели во вьюмодели (в том чисте и событийная часть). Лишаемся замечательного Code Behind, пляшем с бубнами в классе-описателе для решения банального поведения гуя. Маразм. MVVM несъедобен в принципе. Denis GladkikhНет, это неверное толкование паттерна. ViewModel отвечает за связывание View и Model, но никак не за логику, и что подразумевается под логикой? +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 08:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУМне единственное, что не устраивает в MVVM - это описание работы модели и представления во вьюмодели (в том чисте и событийная часть). P.S. Да чтож такое, руки кривят с утра :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 08:38 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУDenis GladkikhЯ не могу понять, например, этого предложения "View(если я правильно понимаю, тяжело воспринимать русские аналоги, которых не существует за отсутствием литературы) в MVVM логики не имеет." Как не имеет? Какой логики? View это часть паттерна. Всё правильно, в представлении нет логики, какие тут могут быть еще вопросы, Дениска? :) Denis Gladkikhпропущено... я говорил, что не принимаю эту реализацию, она ужасна. может быть в отдельных проектах, и то вряд ли. В чем Вы видите подвох, если модель будет опубликована во вьюмодели в качестве проперти? Что ужасного? )) Denis Gladkikhя говорил именно про разделения функциональности для PresentationModel и Presenter. В случае ViewModel вся функциональность падает на один класс ViewModel. Если два класса ViewModel то по два класса PresentationModel и Presenter должно быть. Мне единственное, что не устраивает в MVVM - это описание работы модели во вьюмодели (в том чисте и событийная часть). Лишаемся замечательного Code Behind, пляшем с бубнами в классе-описателе для решения банального поведения гуя. Маразм. MVVM несъедобен в принципе. Denis GladkikhНет, это неверное толкование паттерна. ViewModel отвечает за связывание View и Model, но никак не за логику, и что подразумевается под логикой? +1 В кои-то веки у нас с MCУ совпали мнения аж по двум вопросам!!! В последнем ребята глубоко ошибаются. VM содержит команды, а они во всех паттернах реализуют необходимую логику. MVP всем хорош, за исключением одной немаловажной детали - наличием View в Presenter'e. Это значительно все усложняет и делает неверным еще одно высказывание: "Presenter может использоваться для нескольких представлений". В 90% две основные задачи: показ списков; редактирование выбранной записи. С замечательными свойствами биндинга в WPF\SL это спокойно можно делать без ссылок на View в VM. C нелинейной навигацией, которая имеет больший функционал, чем одно диалоговое окно, можно обойтись без ChildView. Отдельное свойство для Моdel широко используется в подавляющем большинстве фреймворков, тк граф объектов может быть очень развесистым(root->child->grandchild, etc) Делать его плоским - пустая трата времени и сил.Если вводить отдельные Presenter'ы для каждого объекта, то зачем тогда вообще нужна Моdel. Помимо этого в 90% можно обойтись без их явного создания, используя только их базовые классы. У MVVM один недостаток - он перегружен. Все остальные аргументы неубедительны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 09:56 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iЕсли вводить отдельные Presenter'ы для каждого объекта, то зачем тогда вообще нужна Моdel. Помимо этого в 90% можно обойтись без их явного создания, используя только их базовые классы. Модель нужна для байдинга, он очень вскусен. Ты, видимо, хотел сказать - вьюмодель. Да, я согласен, что можно без вьюмодели. Презентационного (Code Behind, по asp.net'овски) слоя вполне хватит. Но дело в том, что использование вьюмодели можно "гибче" адаптировать под твои любимые тесты (только ее логика, без событийной части). Событийную часть нефик тестить - для этого можно натравить робота. Во-вторых, с помощью вьюмодели можно гораздо с меньшими бубнами портировать проложение на другую платформу. Вызовы же юзать в соответствии со спецификой той платформы. А вот с MVVM ты не перенесешь вызовы со своими командами, ибо они не будут работать на том же ASP.NET или WinForms. Это, кстати, опять один из огромных минусов MVVM. Вызовы должны быть специфичны в рамках используемой платформы. iУ MVVM один недостаток - он перегружен. Все остальные аргументы неубедительны Выше я озвучил еще недостаток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 10:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiЕсли вводить отдельные Presenter'ы для каждого объекта, то зачем тогда вообще нужна Моdel. Помимо этого в 90% можно обойтись без их явного создания, используя только их базовые классы. Модель нужна для байдинга, он очень вскусен. Ты, видимо, хотел сказать - вьюмодель. Да, я согласен, что можно без вьюмодели. Презентационного (Code Behind, по asp.net'овски) слоя вполне хватит. Но дело в том, что использование вьюмодели можно "гибче" адаптировать под твои любимые тесты (только ее логика, без событийной части). Событийную часть нефик тестить - для этого можно натравить робота. Во-вторых, с помощью вьюмодели можно гораздо с меньшими бубнами портировать проложение на другую платформу. Вызовы же юзать в соответствии со спецификой той платформы. А вот с MVVM ты не перенесешь вызовы со своими командами, ибо они не будут работать на том же ASP.NET или WinForms. Это, кстати, опять один из огромных минусов MVVM. Вызовы должны быть специфичны в рамках используемой платформы. iУ MVVM один недостаток - он перегружен. Все остальные аргументы неубедительны Выше я озвучил еще недостаток. Нет, MCУ, ты меня не правильно понял. VM обязательно нужна для агрегации данных. Вызовы конанд специфичны, а реализация логики в них спокойно может переноситься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 10:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iНет, MCУ, ты меня не правильно понял. VM обязательно нужна для агрегации данных. Не в коей мере это не так. VM - это тупо абстракция представления. Приложения WPF с шаблоном проектирования модель-представление-модель представления MVVMОднако в этой статье я буду называть шаблон аббревиатурой MVVM, а абстракцию представления — моделью представления. В сообществах WPF и Silverlight такая терминология значительно более распространена. И предлагаю не путаться в определениях. А то у нас в дискуссии каша какая-то. iВызовы конанд специфичны, а реализация логики в них спокойно может переноситься Сомнительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 10:31 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiНет, MCУ, ты меня не правильно понял. VM обязательно нужна для агрегации данных. Не в коей мере это не так. VM - это тупо абстракция представления. Приложения WPF с шаблоном проектирования модель-представление-модель представления MVVMОднако в этой статье я буду называть шаблон аббревиатурой MVVM, а абстракцию представления — моделью представления. В сообществах WPF и Silverlight такая терминология значительно более распространена. И предлагаю не путаться в определениях. А то у нас в дискуссии каша какая-то. iВызовы конанд специфичны, а реализация логики в них спокойно может переноситься Сомнительно. Чтобы не путаться самый простой вариант - не вводить русских определений. Лично я, их совершенно не воспринимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 10:53 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
MVP валят! ну ничего святого не осталось! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 10:54 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iЧтобы не путаться самый простой вариант - не вводить русских определений. Лично я, их совершенно не воспринимаю. Ок, вот описываю "мой" паттерн (сместь MVVM и MVP(C)): НазваниеОписание View CategoryList.xaml ViewModel CategoryListModel.cs Model кодогенерация враппера WCF сервиса (Service References)Code BehindCategoryList.xaml.cs View Код: 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. ViewModel Код: 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. ModelНу, тут без вопросов Code Behind Код: 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. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. P.S. И тестировать легко, и переносить на другие платформы легко, никакого прибивания гвоздей к специфике событий (или команд). Всё по-рихтеро-фаулерски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 11:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Кстати, по поводу утечек памяти. Где-то читал, что зверски текут ChildWindow. Ну и как на этом сыром SL писать софт? :) P.S. Вообще, сам XAML - сплошной мемори лик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 11:30 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Алексей К...будет уходить масса времени на "тупой" мэппинг значений свойств. ... "конструкцию" поддерживать будет проще. Меньше изменений нужно будет вносить при изменении модели, одним слоем будет меньше. А все возникающие сложности решаются дописыванием в partial class модели. угу, так и поступаю - где вьюмодель на 90% "тупой" мэппинг значений свойств модели - дописываю недостающие свойства вьюмодели в "собачий хвост" partial class (модели), а если вьюмодель объединяет несколько моделей - wrapper (соотв. биндинг на вьюмодель.модель.свойство) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 12:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Мда, дискуссия получила другой оборот. Безумно рад, что этот вопрос даже, такое ощущение, примирил i и МСУ в некоторых вопросах. Алексей КСомнительно. Как говорилось выше, если модель довольно объёмна - будет уходить масса времени на "тупой" мэппинг значений свойств. У меня такой подход: я практически отказываюсь от кодогенерации, все сервисы и объекты описываю сам, там у меня Dto объекты, которые несут только в себе полезную для контекста информацию (максимальная экономия трафика). Для осуществления байдинга, конечно, нет смысла для каждого объекта осуществлять PresentationModel, но это для тех случаев, когда у нас идет readonly binding, то есть OneWay. В случае редактирования я придерживаюсь создания полей именно в PresentationModel и байдинга на них. В результате бизнес объекты не перегружены, в них нет всяческих реализаций INotifyPropertyChanged интерфейсов (которые по большому счету не нужны нигде кроме View, если это не объекты EF/WCF RIA и т.п.). Так же в PresentationModel описывается валидация, которая наиболее полная: правила, сообщения. Очевидно, что часто приходится дублировать некоторые валидационные правила, во-первых на стороне сервера (сервисы), во-вторых в БД (уникальные ключи и т.п.). Но основная валидация это все таки на стороне клиента (в SL приложении), вся остальная это защита от взлома. Алексей К Непонятно, логика чего будет расплываться? Логика биндингов? А "конструкцию" поддерживать будет проще. Меньше изменений нужно будет вносить при изменении модели, одним слоем будет меньше. А все возникающие сложности решаются дописыванием в partial class модели. В моем случае может быть больше кода, зато мне кажется более чище выглядит код, и ясно где что искать. Скажем так, я быстро печатаю :) Алексей КА в любом случае придётся делать запрос к модели после сохранения записи, чтобы получить значения, вычисляемые в сервисах модели. И не "обновлять основной объект", а "заменить основной объект вновь полученным". И проблемы тут нет. Всё это легко выносится в базовые классы и в прикладном коде не присутствует. Может быть, один раз участвовал в таком подходе, писали на WPF + LinqToSQL, мне откровенно не понравилось. Слишком много путаницы. Пытались и с длинными сессиями и с короткими работать. iVM содержит команды, а они во всех паттернах реализуют необходимую логику. VM по классическому определению должна осуществлять связь между Model и View. Вся логика (как я понимаю это бизнес логика) должна быть в Model! Model - это не только классы-объекты, которые генерируются EF/WCF или еще чем, а это вся бизнес логика, и даже сервисы и т.п. iMVP всем хорош, за исключением одной немаловажной детали - наличием View в Presenter'e. View в Presenter не обязательна. МСУ продемонстрировал как раз пример MVP без использования View в Presenter. Но вот иногда ее бывает полезно иметь, например, для тех же BusyIndicator, ChildWindow и т.п., чтобы сделать нечто вроде IDisposable интерфейса для представлений (и то зависит от реализации Presenter-First или View-First, какая инициализация происходит первая контроллера или представления, и соответственно кто умирает первым). iУ MVVM один недостаток - он перегружен. Все остальные аргументы неубедительны Именно, потому я и говорю про разделение VM на Presenter и PresentationModel. Presenter несет в себе связь с сервисами, PresentationModel связь с представлением, как-то так. Причем так же можно PresentationModel использовать для нескольких Presenter и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 12:27 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhУ меня такой подход: я практически отказываюсь от кодогенерации, все сервисы и объекты описываю сам, там у меня Dto объекты, которые несут только в себе полезную для контекста информацию (максимальная экономия трафика). Для осуществления байдинга, конечно, нет смысла для каждого объекта осуществлять PresentationModel, но это для тех случаев, когда у нас идет readonly binding, то есть OneWay. В случае редактирования я придерживаюсь создания полей именно в PresentationModel и байдинга на них. В результате бизнес объекты не перегружены, в них нет всяческих реализаций INotifyPropertyChanged интерфейсов (которые по большому счету не нужны нигде кроме View, если это не объекты EF/WCF RIA и т.п.). Это неплохо решается с помощью partial class. А с серверной стороны в "собачий хвост" вполне уместно запихнуть, например, код ORM. Общими (для трафика) остаются лишь свойства DataMember (ну и необходимые для обеих сторон методы). В случае SL такой подход особенно оправдан, т.к. приходится "шарить" исходники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 12:55 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhУ меня такой подход: я практически отказываюсь от кодогенерации А смысл? Рутина ведь. Вообще, лично я не очень уважаю DTO подходы, ибо рутина - извечный враг. К оффтопу заметить, что ну всем нравится хибернейт, но реально минус в том, что руками нужно писать классы, маппинг и DAL. В отличие от L2S/EF, где теме и маппинги генерятся, и DAL какой-никакой генерится при контексте. А вот EF-ский DTO ну никак не радует. Denis GladkikhВ результате бизнес объекты не перегружены, в них нет всяческих реализаций INotifyPropertyChanged интерфейсов (которые по большому счету не нужны нигде кроме View, если это не объекты EF/WCF RIA и т.п.). Не понял, что Вы называете бизнес-объектами - сущности модели или вью-модели? Во-вторых, что значит не нужны INotifyPropertyChanged, то есть как это (если речь о вьюмодели)? В-третьих (если речь о модели-таки), кодогенераторы сами по-дефолту генерят пропертя с INotifyPropertyChanged. Не понял Вас. Вот видите, если отказываться от кодогенерации - многое теряешь. А руками это всё писать - рутинно. Denis GladkikhМожет быть, один раз участвовал в таком подходе, писали на WPF + LinqToSQL, мне откровенно не понравилось. Слишком много путаницы. Пытались и с длинными сессиями и с короткими работать. О каких сессиях идет речь? Во-вторых, нет информации о транспорте данных - напрямую к SQL серверу или SOA? МСУ продемонстрировал как раз пример MVP без использования View в Presenter. Но вот иногда ее бывает полезно иметь, например, для тех же BusyIndicator, ChildWindow и т.п., чтобы сделать нечто вроде IDisposable интерфейса для представлений[/quote]. Вот Вам реализация ChildWindow на таком же паттерне, о котором я говорил: CategoryPicker.xaml Код: 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. CategoryPicker.xaml.cs Код: 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. 94. CategoryPickerModel.cs Код: 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. 94. 95. 96. 97. 98. Собственно вызов: Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. И никаких противоречий. Плюс, опять же, в том, что я с гораздо меньшими граблями портировать код на другую платформу, даже не ориентированную на XAML. Вот оно чё, Дениска. Denis GladkikhiУ MVVM один недостаток - он перегружен. Все остальные аргументы неубедительны Именно, потому я и говорю про разделение VM на Presenter и PresentationModel. Presenter несет в себе связь с сервисами, PresentationModel связь с представлением, как-то так. Причем так же можно PresentationModel использовать для нескольких Presenter и т.п. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 12:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
offПорадовала оценка сроков задачи :) http://outcoldman.ru/ru/blog/show/257 ДенискаНедавно менеджеры попросили добавить сортировку. Я прикинул, что в простом случае, когда все элементы подгружаются за раз, сделать сортировку очень просто, нужно всего добавить CanUserSort к колонкам и все. Задачу оценили в час (вместе с тестированием и развертыванием). P.S. Без обид )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:08 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhУ меня такой подход: я практически отказываюсь от кодогенерации, все сервисы и объекты описываю сам, там у меня Dto объекты, которые несут только в себе полезную для контекста информацию (максимальная экономия трафика).Это уже как модель будет спроектирована. ПМСМ, нужно стремиться к тому, чтобы DTO соответствовали сущностям модели. Тогда необходимость в дополнительных DTO отпадёт и траффик будет минимальным. Ну или будет достигнут разумный компромис между созданием DTO и использованием существующих классов модели. Denis GladkikhДля осуществления байдинга, конечно, нет смысла для каждого объекта осуществлять PresentationModel, но это для тех случаев, когда у нас идет readonly binding, то есть OneWay. В случае редактирования я придерживаюсь создания полей именно в PresentationModel и байдинга на них. В результате бизнес объекты не перегружены, в них нет всяческих реализаций INotifyPropertyChanged интерфейсов (которые по большому счету не нужны нигде кроме View, если это не объекты EF/WCF RIA и т.п.).Учитывая объёмы данных, обрабатываемых на клиенте, "перегруженность" в виде INotifyPropertyChanged вряд ли на что-либо повлияет. Denis GladkikhТак же в PresentationModel описывается валидация, которая наиболее полная: правила, сообщения. Очевидно, что часто приходится дублировать некоторые валидационные правила, во-первых на стороне сервера (сервисы), во-вторых в БД (уникальные ключи и т.п.). Но основная валидация это все таки на стороне клиента (в SL приложении), вся остальная это защита от взлома.Я бы сказал наоборот. Основная логика валидации данных расположена в модели. Логика предварительной валидации в PresentationModel - это бантик для удобства пользователя, может в каких-то случаях для экономии траффика и уменьшения количества запросов на сервер. Denis GladkikhВ моем случае может быть больше кода, зато мне кажется более чище выглядит код, и ясно где что искать. Скажем так, я быстро печатаю :)"Овчинка выделки не стоит" (с) народное. :-) Denis GladkikhАлексей КА в любом случае придётся делать запрос к модели после сохранения записи, чтобы получить значения, вычисляемые в сервисах модели. И не "обновлять основной объект", а "заменить основной объект вновь полученным". И проблемы тут нет. Всё это легко выносится в базовые классы и в прикладном коде не присутствует. Может быть, один раз участвовал в таком подходе, писали на WPF + LinqToSQL, мне откровенно не понравилось. Слишком много путаницы. Пытались и с длинными сессиями и с короткими работать.Видимо, дело привычки. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУА смысл? Рутина ведь. Вообще, лично я не очень уважаю DTO подходы, ибо рутина - извечный враг. К оффтопу заметить, что ну всем нравится хибернейт, но реально минус в том, что руками нужно писать классы, маппинг и DAL. В отличие от L2S/EF, где теме и маппинги генерятся, и DAL какой-никакой генерится при контексте. А вот EF-ский DTO ну никак не радует. А мне вот не нравятся кодогенераторы, на них сложно полагаться в сложных проектах. Люди используют EF/LinqToSQL и т.п. даже не подозревая как это все должно работать. Не думаю о сессиях, о транзакциях, о состояниях объектов и т.п. А вообще у nHibernate есть кодогенераторы, они не идут в комплекте. Да и самому просто написать. МСУНе понял, что Вы называете бизнес-объектами - сущности модели или вью-модели? Во-вторых, что значит не нужны INotifyPropertyChanged, то есть как это (если речь о вьюмодели)? В-третьих (если речь о модели-таки), кодогенераторы сами по-дефолту генерят пропертя с INotifyPropertyChanged. Не понял Вас. Вот видите, если отказываться от кодогенерации - многое теряешь. А руками это всё писать - рутинно. Приехали. Бизнес объект . Для меня никакой рутины в этом нет. Все зависит от проекта, где-то это хорошо работает, а где-то не очень. MVC сложнее WinForms, потому что там писать больше кода нужно, но зато на выходе получаются более качественные веб-проекты. Разве не так? МСУО каких сессиях идет речь? Во-вторых, нет информации о транспорте данных - напрямую к SQL серверу или SOA? Сессиях ORM. Есть понятие длинных и коротких сессиях. Зависит от того, как вы держите сессию, либо только за загрузку объектов, либо раз загрузили, оставили открытой, работают Lazy свойства и т.п. Соединение было напрямую с БД. МСУИ никаких противоречий. Плюс, опять же, в том, что я с гораздо меньшими граблями портировать код на другую платформу, даже не ориентированную на XAML. Вот оно чё, Дениска. Не понял к чему реализация ChildWindow мне. Про какие противоречия мы говорили? Как я понимаю вызов его делаете в codebehind другого окна. Ну что ж, это прелести Presenter. В случае ViewModel не все так просто. Но, это как раз один из случаев, почему я считаю MVP подход более практичным, меньше ограничений на реализацию. МСУ, если вас не затруднит, то не обращайтесь ко мне подобным образом, я все таки вам не приятель ;) МСУПорадовала оценка сроков задачи :) http://outcoldman.ru/ru/blog/show/257 Дениска Недавно менеджеры попросили добавить сортировку. Я прикинул, что в простом случае, когда все элементы подгружаются за раз, сделать сортировку очень просто, нужно всего добавить CanUserSort к колонкам и все. Задачу оценили в час (вместе с тестированием и развертыванием). P.S. Без обид )) По мне так хватит уже флудить. Если есть вопросы лично ко мне - то давайте заведем отдельную ветвь на этом форуме. Ну, реально, засрали уже этот тред, и как я понимаю данное происходит с любым тредом. А не нравится оценка задачи? Я не настаиваю ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Алексей КВидимо, дело привычки. :-) Я тоже так думаю. Сколько людей - столько мнений. Это же замечательно, что живут разные подходы к разработки ПО. Насколько я понимаю у людей приживается подход, который рассказывают как раз на MS мероприятиях по разработке приложений на SL/WPF, что ж классно, если он действительно работает. В моем случае мне не нравилось как он работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:50 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhА мне вот не нравятся кодогенераторы, на них сложно полагаться в сложных проектах. Это как "полагаться"? Denis GladkikhЛюди используют EF/LinqToSQL и т.п. даже не подозревая как это все должно работать. Не думаю о сессиях, о транзакциях, о состояниях объектов и т.п. Ну так люди-то разные бывают. Есть и такие, которые подозревают "о сессиях, о транзакциях, о состояниях объектов и т.п.". Уж поверьте мне. Denis GladkikhА вообще у nHibernate есть кодогенераторы, они не идут в комплекте. Да и самому просто написать. Я бы не сказал, что "просто" написать. Не видел ни одного вменяемого маппинго-генератора. Слишком гибкий и сложный маппинг можно писать на хибере ручками. Denis GladkikhПриехали. Бизнес объект. Для меня никакой рутины в этом нет. Все зависит от проекта, где-то это хорошо работает, а где-то не очень. Ну так в бизнес-объекте по-дефолту генерятся INotifyPropertyChanged. В чем проблема-то? Реализация уже есть по-дефолту. Denis GladkikhMVC сложнее WinForms, потому что там писать больше кода нужно, но зато на выходе получаются более качественные веб-проекты. Разве не так? Вообще-то, странное сравнение: MVC и WinForms. Что сложнее, апельсин или корова? Denis GladkikhСессиях ORM. ORM - ORM'у рознь. В нормальных кругах это называют контекстом. В хибе это называют фабрикой сессий (ISessionFactory, типа глобального контекста), и сессией (ISession, типа локального контекста). А еще сессия бывает у студентов. Так что говорите конкретней. Denis GladkikhЕсть понятие длинных и коротких сессиях. Зависит от того, как вы держите сессию, либо только за загрузку объектов, либо раз загрузили, оставили открытой, работают Lazy свойства и т.п. Соединение было напрямую с БД. Опять сессия... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУНу так в бизнес-объекте по-дефолту генерятся INotifyPropertyChanged. В чем проблема-то? Реализация уже есть по-дефолту. Хватит уже топтаться на месте. Где генерятся по дефолту? Я вот классы пишу, у меня почему то не генерируются по дефолту реализации INotifyPropertyChanged, пишу с использованием nHibernate и тоже ничего не генерируется. Может быть в случае использования какого-то особого фреймворка генерируются по дефолту? А как думаете, этот фреймворк о котором вы говорите используется всеми разработчиками? МСУORM - ORM'у рознь. В нормальных кругах это называют контекстом. В хибе это называют фабрикой сессий (ISessionFactory, типа глобального контекста), и сессией (ISession, типа локального контекста). А еще сессия бывает у студентов. Так что говорите конкретней. Благо для меня нормальный круг - это родоначальник ORM'ов Nibernate, где всегда были определены понятия long-session и session-per-request-with-detached-objects http://docs.jboss.org/hibernate/core/3.3/reference/en/html/transactions.html. Это термин, а не имя класса. МСУВообще-то, странное сравнение: MVC и WinForms. Что сложнее, апельсин или корова? Ну если вы можете применить понятие "сложнее" к апельсину и корове, то я выберу ответ апельсин. МСУ, ладно, сейчас действительно все переходит больше в треп, а не дискуссию. Я нисколько нигде не указывал, что ваши подходы или идеи не верные. Заметьте, я только говорю о своих идея и подходах. Если они вам не подходят, это ваше право. Доказывать или опровергать мне, вроде, нет необходимости. Я, вроде, ответил на все разумные вопросы, которые были тут. В общем-то на форумы я хожу, чтобы что-то рекомендовать и помогать, а не для того чтобы потрепаться (видел вашу тему про Silverlight более чем на 30-40 страниц). Так что давайте закончим этот тред, а? Ну или по крайней мере я отсюда ухожу (с этого треда). Без обид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 14:33 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Ну или по крайней мере я отсюда ухожуне уходите, лучше просто игнорируйте вопросы "на-флейм" и около-SL/MVVM/you-name-it демагогию от МСУ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 14:41 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
dbisНу или по крайней мере я отсюда ухожуне уходите, лучше просто игнорируйте вопросы "на-флейм" и около-SL/MVVM/you-name-it демагогию от МСУ справедливости ради, следует заметить, что сравнения типа "MVC vs WinForms" больше похожи на треп или на непонимание сути вещей. Поэтому замечания типа про коров и апельсины выглядят в этом контексте вполне уместно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 14:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhХватит уже топтаться на месте. Где генерятся по дефолту? Я вот классы пишу, у меня почему то не генерируются по дефолту реализации INotifyPropertyChanged, пишу с использованием nHibernate и тоже ничего не генерируется. А кто топчется? Вы то одно говорите, то другое. NHibernate и его классы не имеет ничего общего с кодосгенерированным враппером WCF сервиса. Вы поставку данных как делаете? Правильно, через WCF сервис. Вот он идолжен сгенерировать асинхронный враппер + INotifyPropertyChanged реализацию. Бесплатно. Что не понятно? Во-вторых, для меня непонятно, как может WPF/SL разработчик сказать такое: Denis GladkikhВ результате бизнес объекты не перегружены, в них нет всяческих реализаций INotifyPropertyChanged интерфейсов (которые по большому счету не нужны нигде кроме View, если это не объекты EF/WCF RIA и т.п.). Denis GladkikhМожет быть в случае использования какого-то особого фреймворка генерируются по дефолту? А как думаете, этот фреймворк о котором вы говорите используется всеми разработчиками? Если WCF генератор Вы называете фреймворком, то - да, всеми, кто юзает SL, о котором мы и ведем речь. Вменяемый разработчик SL не будет юзать транспорт на asmx-сервисах. Denis GladkikhБлаго для меня нормальный круг - это родоначальник ORM'ов Nibernate, где всегда были определены понятия long-session и session-per-request-with-detached-objects http://docs.jboss.org/hibernate/core/3.3/reference/en/html/transactions.html. Это термин, а не имя класса. Вот я и прошу уточнять , ибо мне неизвестно, кто являлся для Вас родоначальником. Всё-таки, понятие контекст больше понятнее и очевиднее, даже в терминах хиба. Понятие "сессия" может запутать человека, который не работал с хибом, а работал с L2S/EF. Поэтому, я-лишь хочу предостеречь от путаницы, не более того. Denis GladkikhНу если вы можете применить понятие "сложнее" к апельсину и корове, то я выберу ответ апельсин. Попахивает детством: "Что лучше, Дельфи или Плас-плас". Несерьезный вопрос - несерьезный ответ. Простите, я - пас. Denis GladkikhТак что давайте закончим этот тред, а? Ну или по крайней мере я отсюда ухожу (с этого треда). Без обид. Ладно, давайте окончим тепатню. Все всё давно поняли (а кто не понял - пусть продолжат дискуссию). Думаю, пора сворачиваться. Ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 14:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
автор Вся логика (как я понимаю это бизнес логика) должна быть в Model! Model - это не только классы-объекты, которые генерируются EF/WCF или еще чем, а это вся бизнес логика, и даже сервисы и т.п. Это только в русской wiki должна быть вся бизнес-логика(специально посмотрел). В английском авторA domain model, or Domain Object Model (DOM) in problem solving and software engineering can be thought of as a conceptual model of a domain of interest (often referred to as a problem domain) which describes the various entities, their attributes and relationships, plus the constraints that govern the integrity of the model elements comprising that problem domain Помимо этого есть масса других подходов для борьбы с бизнес-объектами(ActiveRecords, D в периоде, еtc), но ни в одном не было и не будет всей логики в силу нарушения тех принципов, которые ты упоминал в тезисах. Помимо этого бизнес-требования могут существенно меняться однако это совершенно не означает изменения структуры БД и соответствующих БО авторЯ не использую кодогенераторы и ORM..., а бысро печатаю Вот это основная причина. С нее нужно было начинать, тогда сразу все становится понятным и дальше можно не читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 15:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Тема интересная и можно ее продолжить без уважаемого MVP(он и в блоге тоже предпочитает вопросы переводить в личку и не хочет нести знания в массы, соответствуя своему статусу). Самопальный вариант борьбы с данными, как я понял, все дружно забраковали. Дальше у каждого свои предпочтения(RIA, EF, список можно продолжить до бесконечности). Нивелировать весь этот зоопарк можно с помощью паттерна Repository(приблизительный вариант я уже показывал). В нем скрываем детали реализации получения данных, а Model задает структуру бизнес-объектов и содержит только валидацию для обеспечения консистентности данных. Таким образом можно перейти с двухзвенки на 3х, не зависеть от метода вызовов(синхронный или асинхронный), обеспечить при необхомости кэширование и тд не меняя всего остального. Обсуждаем, затем продолжаем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 23:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iТема интересная и можно ее продолжить без уважаемого MVP(он и в блоге тоже предпочитает вопросы переводить в личку и не хочет нести знания в массы, соответствуя своему статусу). облажаться просто более ущербно. Все проще. А тема действительно интересная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 23:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafmiТема интересная и можно ее продолжить без уважаемого MVP(он и в блоге тоже предпочитает вопросы переводить в личку и не хочет нести знания в массы, соответствуя своему статусу). облажаться просто более ущербно. Все проще. А тема действительно интересная Возможно. Он уже опубликовал свой вариант на Codeproject . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. - Model содержит команды, о переносимости, на которую указывал MCУ(ASP,WPF\SL,Winforms, etc), сразу можно забыть. - Конструктор содержит правила валидации - лишние тормоза в случае, когда правила валидации применимы ко всему типу объекта - валидация через аттрибуты влечет необходимость изменения модели при изменении соответствующих правил. Постоянный Reflection для них Код: plaintext 1. 2. 3. 4. - Сложно и накладно. Можно в сеттере свойства сразу делать проверки без всяких делегатов и подписок. Это позволит обойтись полностью без UpdateSourceTriggerHelper - DelegeteCommand без слабых ссылок, как мы давно уже знаем, возможны утечки памяти ЗЫ Любим мы избретать все самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 01:45 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Мда... Пихать в модель валидацию - тут не только кросспереносимость пойдёт лесом, но и в текущем приложении возможны грабли: для редких, но реальных случаев, когда одна и та же модель в разных представлениях может немного отличаться поведением. Классический пример - пользователь и администратор (ролевые политики). Их GUI может различно вести себя в разрезе валидации и определенных этих политик безопасности. Так что за такой родход имеет право на жизнь в хеллоуворлд софте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 13:27 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Модератор: МСУ, прекратите постоянные переходы на личности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 13:31 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i- Model содержит команды, о переносимости, на которую указывал MCУ(ASP,WPF\SL,Winforms, etc), сразу можно забыть. Я смотрю вы все приложения с таким расчетом разрабатываете? Что завтра Silverlight перенесете на ASP.NET? Глупости не говорите, когда стоит задача разработки приложения на несколько платформ, тогда и совершенно другой подход работает. Притом, я смотрю, вы гражданин раньше любитель MVVM теперь против использования команд? Это пять. i- Конструктор содержит правила валидации - лишние тормоза в случае, когда правила валидации применимы ко всему типу объекта Феерический бред. Я понимаю, что хочется придраться к чему-нибудь. Но вот эта фраза ставит все на свои места. i- валидация через аттрибуты влечет необходимость изменения модели при изменении соответствующих правил. Постоянный Reflection для них Тут, я думаю, может понять только автор, что же он хотел сказать. И я смотрю идет постоянная путаница между моделью (Model) и моделью представления (ViewModel), ну это ладно. Спрашивается, а есть такая волшебная валидация, которая не требует изменения при изменении правил? i- DelegeteCommand без слабых ссылок, как мы давно уже знаем, возможны утечки памяти А тут вот действительно интересно, а слабо показать? ;) Один пример: запихни туда 1000 кнопок, пересоздавай для них ViewModel, переноси ViewModel от одной кнопки к другой, ну и все в том же духе. Покажи, что в этом случае будет утечка, уж очень интересно. Я понимаю прочли одну умную статью про WeakReference, но все же нужно уметь применять в нужных местах. А еще возможен конец света в 2012, ждете? Все ваши упреки основаны на попытке придраться ко мне, а не на попытке построить конструктивный разговор. Ребят, я не говорю, что я тут пришел умный парень, который все расставит на свои места, я умею признавать свои ошибки, и признаю те, которые будут конструктивно обоснованы. Но вот и вы же не производите пока впечатление умных парней, ну совсем. В общем, давайте заниматься делом. Я сюда пришел, чтобы отвечать на вопросы, а не дискутировать на постоянные темы, которых и так полно в интернете. МСУМда... Пихать в модель валидацию - тут не только кросспереносимость пойдёт лесом, но и в текущем приложении возможны грабли: для редких, но реальных случаев, когда одна и та же модель в разных представлениях может немного отличаться поведением. Классический пример - пользователь и администратор (ролевые политики). Их GUI может различно вести себя в разрезе валидации и определенных этих политик безопасности. Так что за такой родход имеет право на жизнь в хеллоуворлд софте. Проблема решается очень легко на любой реализации. Если тяжко додуматься как, у вас проблемы. P.S. Уважаемый, МСУ, я вас попросил не обращаться ко мне подобный образом, так как вы игнорируете, я понимаю, что вы просто не хотите относится ко мне, как к оппоненту, с уважением. Пускай так, ваше право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 13:49 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikh, не советую шуметь по-поводу "DelegeteCommand без слабых ссылок". Вы не правы, а во-вторых это баян. Тут утечки уже давно мусолятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 14:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
... а то щас начну вспоминать "MVC vs WinForms". Ужас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 14:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ... а то щас начну вспоминать "MVC vs WinForms". Ужас Жесть в том, что я до сих пор не понял в чем проблема сравнения, пока не прочитал внимательнее. Но так как у оппонентов основная идея попытаться принизить другую стороны, то сложно, конечно, включить мозги и понять где тут опечатка. ;) МСУDenis Gladkikh, не советую шуметь по-поводу "DelegeteCommand без слабых ссылок". Вы не правы, а во-вторых это баян. Вам этого в блоге не расскажут. Тут утечки уже давно мусолятся. И потише шумите на ламерские вопросы - порвут одним махом мыши. Серьезно. При всём уважении. Действительно, про эту утечку я не знал. Но как я понимаю у вас самих о ней знаний не больше, что-то вроде "слышу звон, да не знаю где он". Вот нашел по этой теме http://compositewpf.codeplex.com/workitem/4065?ProjectName=compositewpf . А не слышал я про нее по очевидным причинам, в примерах типа hello world я этого не делаю, а вообще в проектах давно уже все привыкли при удалении окон, контролов, выставлять DataContext = null (об этом я и говорил, про реализацию IDispatch интерфейса для View). И тогда, в этом случае, таких проблем не будет ;) Ну что ж, спасибо, буду знать. МСУИ потише шумите на ламерские вопросы - порвут одним махом мыши. Серьезно. При всём уважении. Уважаемый, а вы не бойтесь за меня. Я же говорю, я признаю любые свои ошибки, и не считаю глагол "порвут" уместным в этом случае. ;) МСУОтличный аргументированный ответ. Браво. Ну так это же из серии любимых ламерских вопросов. Ну неужто нет ни одной идеи как это реализовать? Ну расскажите, как вы это решаете, а потом просто подумайте, а здесь можно так же решить или нет? Для меня тут все настолько очевидно, что я считаю, что вы просто придираетесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 15:02 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Уважаемые МСУ и i, разрешите сделать вам вызов? Вот тут народ часто говорит, чтобы на вас вообще внимание не нужно обращать, но все же я так не думаю, и, скорее всего, просто в некоторых вопросах возникает такой негатив и спор, только потому, что я, просто, не верно толкую ваши мысли из сообщений. Так вот про вызов. Сможете сделать такой пример, который бы показал эту самую утечку на моей реализации DelegateCommand? Я без проблем могу хоть сейчас накидать ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 15:09 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhi- Model содержит команды, о переносимости, на которую указывал MCУ(ASP,WPF\SL,Winforms, etc), сразу можно забыть. Я смотрю вы все приложения с таким расчетом разрабатываете? Что завтра Silverlight перенесете на ASP.NET? Глупости не говорите, когда стоит задача разработки приложения на несколько платформ, тогда и совершенно другой подход работает. Притом, я смотрю, вы гражданин раньше любитель MVVM теперь против использования команд? Это пять. i- Конструктор содержит правила валидации - лишние тормоза в случае, когда правила валидации применимы ко всему типу объекта Феерический бред. Я понимаю, что хочется придраться к чему-нибудь. Но вот эта фраза ставит все на свои места. i- валидация через аттрибуты влечет необходимость изменения модели при изменении соответствующих правил. Постоянный Reflection для них Тут, я думаю, может понять только автор, что же он хотел сказать. И я смотрю идет постоянная путаница между моделью (Model) и моделью представления (ViewModel), ну это ладно. Спрашивается, а есть такая волшебная валидация, которая не требует изменения при изменении правил? i- DelegeteCommand без слабых ссылок, как мы давно уже знаем, возможны утечки памяти А тут вот действительно интересно, а слабо показать? ;) Один пример: запихни туда 1000 кнопок, пересоздавай для них ViewModel, переноси ViewModel от одной кнопки к другой, ну и все в том же духе. Покажи, что в этом случае будет утечка, уж очень интересно. Я понимаю прочли одну умную статью про WeakReference, но все же нужно уметь применять в нужных местах. А еще возможен конец света в 2012, ждете? Все ваши упреки основаны на попытке придраться ко мне, а не на попытке построить конструктивный разговор. Ребят, я не говорю, что я тут пришел умный парень, который все расставит на свои места, я умею признавать свои ошибки, и признаю те, которые будут конструктивно обоснованы. Но вот и вы же не производите пока впечатление умных парней, ну совсем. В общем, давайте заниматься делом. Я сюда пришел, чтобы отвечать на вопросы, а не дискутировать на постоянные темы, которых и так полно в интернете. МСУМда... Пихать в модель валидацию - тут не только кросспереносимость пойдёт лесом, но и в текущем приложении возможны грабли: для редких, но реальных случаев, когда одна и та же модель в разных представлениях может немного отличаться поведением. Классический пример - пользователь и администратор (ролевые политики). Их GUI может различно вести себя в разрезе валидации и определенных этих политик безопасности. Так что за такой родход имеет право на жизнь в хеллоуворлд софте. Проблема решается очень легко на любой реализации. Если тяжко додуматься как, у вас проблемы. P.S. Уважаемый, МСУ, я вас попросил не обращаться ко мне подобный образом, так как вы игнорируете, я понимаю, что вы просто не хотите относится ко мне, как к оппоненту, с уважением. Пускай так, ваше право. Денис, рано тебе отвечать на вопросы и публиковать статьи. Ты еще находишься в пионерском периоде, когда изобретаются собственные велосипеды без всякого опыта, да и в теории большие проблемы. Для работы с БД есть большое кол-во фреймворков, которые применимы для всей линейки Net, c валидацией и реализацией всех интерфейсов(в том числе и разграничением доступа,MCУ), которые нужны для клиентской части. В них нет такого "феерического бреда"(буду придерживаться твоей терминологии), который ведет к большим накладным расходам и тормозам, как пообъектная валидация, когда она применима ко всему типу(длина строки,not null,etc) или DelegeteCommand в Model(посмотри ее реализацию в Prism, там же на форуме есть обсуждение утечек памяти из-за кривости,как у тебя, в первой версии). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 15:17 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУДениска, Дениска, Дениска, Дениска, Дениска МСУ, вам понравится, если вас начнут звать "Данилкой", демонстрируя своё пренебрежение к вам? Может как-то повежливей будете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 15:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУДениска, я не придираюсь, увольте. Просто речь была о том, что валидации в моделе нечего делать. Я думаю, Вы и сами это прекрасно понимаете, просто упираетесь ) Проблема только в том, что нет у меня валидации в Model, а так все ок ;) И я не очень вас понимаю, то у вас валидация в моделе, то нет, где правда? iВ них нет такого "феерического бреда"(буду придерживаться твоей терминологии), который ведет к большим накладным расходам и тормозам, как пообъектная валидация, когда она применима ко всему типу(длина строки,not null,etc) Видимо я действительно глуп, расскажите, пожалуйста, поподробнее где здесь накладные расходы. Можете по пальцам показать? МСУДениска, во-первых, если ничего не знали об этой утечке - зачем начали гнуть пальцы? Я просто хочу сказать, что раз вы такие на форуме завсегдатые, и даже знаете о каких-то проблемах, то их сначала нужно разобрать самому. И не говорить "может случиться", а говорить "случиться в случае...". Это же просто, ведь так? Понимаете утечку памяти можно реализовать уж очень просто и без какого-нибудь чудо фреймворка, как-то я видел как люди хранили ссылки на Page в контроллерах (WebForms), из-за чего память улетучивалась мгновенно, так сказать руки такие. Видите, получилось так что я решал эту проблему установкой DataContext в null, но из-за другой найденной утечки, оговоренной на форумах silverlight.net. Это такое же решение, как использование WeakReference в DelegateCommand для CanExecute ивента. Ситуация, когда будет memory leak очень специфичная, и не удивительно что Prism так долго жил с такой реализацией. Необходимо после создания контрола с установленным в DataContext объектом ( у которого есть команда, на которую установлен байдинг из контрола), удалить контрол из дерева контролов, но где-то оставить ссылку на объект из DataContext. Потому и говорю, ситуация очень специфичная. Обычно в реализациях MVP+PresentationModel или MVVM объекты типа PresentationModel или ViewModel убиваются во время гибели самих View. Ну обычно нет в них смысла после гибели View, ну может быть на доли времени, чтобы собрать последнюю информацию. Я ни разу не встречал подобных реализация, хотя, конечно же, они могут быть. Все так, или есть еще случаи? Знаете вы о том как работает эта утечка или нет, мне все равно. Мне было интересно разобраться в этом вопросе подробнее, потому я это и сделал. Спасибо за информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 15:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhiВ них нет такого "феерического бреда"(буду придерживаться твоей терминологии), который ведет к большим накладным расходам и тормозам, как пообъектная валидация, когда она применима ко всему типу(длина строки,not null,etc) Видимо я действительно глуп, расскажите, пожалуйста, поподробнее где здесь накладные расходы. Можете по пальцам показать? Правила, которые я упоминал, если они задаются один раз(а это можно сделать, например, при загрузке модуля и правильной реализации валидации(примеры тому есть)) не требуют этого в каждом конструкторе класса. Таких объектов в общем случае может быть великое множество, соответственно будут тормоза при загрузке списков и лишнее,значительное выделение памяти. Относительно утечек, вариантов тоже может быть большое разнообразие. Есть вполне определенные правила WPF\SL для поддержания гигиены. Не нужно даже ничего выдумывать и представлять, их нужно просто соблюдать, тогда не будет кариеса. Для разработчиков системного слоя - это прописная истинна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 16:28 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikh, Вы, чуть ранее, объясняли постоянную загрузку при отсутствии взаимодействия с компьютером какими-то руками разработчиков, высказывали соответствующие предположения. Чтобы было легче, объясните плз такую же ситуацию с сайтом компании, в которой вы работаете. Имеете отношение к его созданию и подобным проблемам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 01:46 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafm, а черт его знает :) P.S. надеюсь намек понятен ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 02:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiscrafm, а черт его знает :) P.S. надеюсь намек понятен ;) нет, не понятен. Зачем на реальную картинку накладывать какое-то левое изображение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 02:18 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiscrafm, а черт его знает :) насчет "черт его знает"... В предыдущий раз вы высказали предположения, объяснив отсутствие ответа отсутствием исходников. Я подумал, что в этот раз получится без предположений, имея, возможно, доступ к исходникам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 02:26 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
CompositumМСУ, вам понравится, если вас начнут звать "Данилкой", демонстрируя своё пренебрежение к вам? Ради бога, я на этом не заостряю внимание. Это как присказка детства - "будешь обращать излишнее внимание за кличкой - она твоя". Согласны, Андрюша? CompositumМожет как-то повежливей будете? Куда уж вежливей. Denis GladkikhЯ просто хочу сказать, что раз вы такие на форуме завсегдатые, и даже знаете о каких-то проблемах, то их сначала нужно разобрать самому. И не говорить "может случиться", а говорить "случиться в случае...". Это же просто, ведь так? Просто не нужно говорить, что мы такие на форуме завсегдатаи и даже не знаем о каких-то проблемах. Нужно просто уделить вопросу большее внимание, нежели чем просто трепотня в блоге. Во-вторых, только щас заметил, что модератор потёр моё вчерашнее сообщение о пари, на которое я согласился. Суть пари заключалась в том, что если я описываю ситуацию, в которой будет утечка (даже можете нулить датаконтекст) - Вы прилюдно извиняетесь. Согласны на пари? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 10:00 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafmDenis Gladkikhiscrafm, а черт его знает :) P.S. надеюсь намек понятен ;) нет, не понятен. Зачем на реальную картинку накладывать какое-то левое изображение? Как не понятен? Откуда я знаю чего у вас процессор сейчас не спокоен? Вы скажите хоть какие действия произвели. Я вот видите показал скриншот с sql.ru, а у меня оба ядра на 100% загружены, только вот в этот момент работало что-то еще фоном. Во вторых, если вы к этому клоните, я не имею отношение к сайту, более того, я даже не знаю кто имеет к нему отношение. У нас все таки компания не из 10 человек ;) Но для вас, если так интересно я попробую найти источник проблемы из исходников сгенерируемой таблицы, только опишите действия. Правда не понимаю, зачем вам это нужно. МСУПросто не нужно говорить, что мы такие на форуме завсегдатаи и даже не знаем о каких-то проблемах. Нужно просто уделить вопросу большее внимание, нежели чем просто трепотня в блоге. Во-вторых, только щас заметил, что модератор потёр моё вчерашнее сообщение о пари, на которое я согласился. Суть пари заключалась в том, что если я описываю ситуацию, в которой будет утечка (даже можете нулить датаконтекст) - Вы прилюдно извиняетесь. Согласны на пари? А я и не говорю, что вы не знаете о проблемах. Я понимаю, что вы их знаете. МСУ, этот треп, который развернулся на этих страницах, похож на то, как в начальный класс приходит новый ребенок, а все остальные начинают к нему приставать, типа "а ты где живешь?", "а папа у тебя кем работает?", "а старший брат есть?". Ну честно. Я безусловно с радостью посмотрю на ту проблему где возникнет memory leak без обнуления datacontext. МСУ, если я вас чем-то уже обидел, извините, и пари тут не при чем. Я не гордый, говорил уже не раз. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 12:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiscrafmпропущено... нет, не понятен. Зачем на реальную картинку накладывать какое-то левое изображение? Как не понятен? Откуда я знаю чего у вас процессор сейчас не спокоен? Вы скажите хоть какие действия произвели. Я вот видите показал скриншот с sql.ru, а у меня оба ядра на 100% загружены, только вот в этот момент работало что-то еще фоном. думаете здесь кто-то кого-то разводит? Не смешите. Ладно, все понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 12:32 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhНо для вас, если так интересно я попробую найти источник проблемы из исходников сгенерируемой таблицы, только опишите действия. Правда не понимаю, зачем вам это нужно. есть в планах строчка о реализации "кабинетного" интерфейса, я просто изучаю возможные проблемы при использовании различных средств разработки. С показанной проблемой столкнулся не первый раз, думал знаете ответ (типа MVP. Или эти три буквы не за знания и опыт дают, а за маркетинговую активность?). Действия и в первом и во втором случае, показанных здесь, одинаковы: клинуть по ссылке и убрать руки от компьютера. Хотя повторяюсь. Это уже было описано, невнимательны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 12:47 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iscrafm, iscrafmдумаете здесь кто-то кого-то разводит? Не смешите. Ладно, все понятно. Я не про развод говорю, а про то что непонятно откуда проблема идет. У вас может быть стоят какие-нибудь плагины к браузеру, которые и тормозят работу. Самый распространенный из них это плагин от skype, посмотрите и попробуйте убить его, уменьшится ли процент использование процессора. Ну и так же попробуйте в другом браузере, там та же картина или нет? Как я понимаю разговор идет про страницу www.msiuk.com/softwares.asp. На ней работает Flash (даже предположить не могу кто у нас на Flash что-то делает, скорее всего сайт просто заказывали у кого-то), который меняет картинки с определенной периодичностью. Подозреваю, что это и вызывает у вас использование процессорного времени, у меня такого заметного использования нет. То есть процессор используется, но используется процессом iexplorer не более 4% (может у меня просто компьютер немного помощнее вашего). iscrafmесть в планах строчка о реализации "кабинетного" интерфейса, я просто изучаю возможные проблемы при использовании различных средств разработки. С показанной проблемой столкнулся не первый раз, думал знаете ответ (типа MVP. Или эти три буквы не за знания и опыт дают, а за маркетинговую активность?). Действия и в первом и во втором случае, показанных здесь, одинаковы: клинуть по ссылке и убрать руки от компьютера. Хотя повторяюсь. Это уже было описано, невнимательны. Вы не повторяетесь, в первый раз вы просто кинули скриншот, и сказали что ничего не трогали. Я так же попробовал открыть сайт, нашел ту страницу, но у меня такого эффекта не было. И не нужно тут затрагивать статусы, их дают за многое и за разное. Но они не ставят человека в другой ранг: "человек делает себе статусы, а не статусы делают человека". Если изучаете возможные проблемы при использовании различных средств разработки, тогда давайте об этом и говорить. Сайт нашей компании совсем не показатель того, как нужно разрабатывать сайты. Скажите сначала что вы хотите разработать, а мы подскажем технологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 13:33 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhА я и не говорю, что вы не знаете о проблемах. Я понимаю, что вы их знаете. МСУ, этот треп, который развернулся на этих страницах, похож на то, как в начальный класс приходит новый ребенок, а все остальные начинают к нему приставать, типа "а ты где живешь?", "а папа у тебя кем работает?", "а старший брат есть?". Ну честно. Я безусловно с радостью посмотрю на ту проблему где возникнет memory leak без обнуления datacontext. МСУ, если я вас чем-то уже обидел, извините, и пари тут не при чем. Я не гордый, говорил уже не раз. ;) Треп ты сам начал в лучших и хамоватых традициях Net'овских веток. Никто к тебе не придирается. Желание во всем разобраться самому похвально, но есть одно но. Твое графоманство вредно, тем более на страницах весьма уважаемого ресурса, как codeproject. Если ты сам со всеми своими сертификатами, скачешь по верхам и не видишь жирных минусов и ошибок, то что говорить о других? Модератор: Я публично извиняюсь перед МСУ, Denis Gladkikh и i, но следующий оффтоп буду грохать на корню. Надоел этот ситком! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 13:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis GladkikhА я и не говорю, что вы не знаете о проблемах. Я понимаю, что вы их знаете. МСУ, этот треп, который развернулся на этих страницах, похож на то, как в начальный класс приходит новый ребенок, а все остальные начинают к нему приставать, типа "а ты где живешь?", "а папа у тебя кем работает?", "а старший брат есть?". Ну честно. Я безусловно с радостью посмотрю на ту проблему где возникнет memory leak без обнуления datacontext. МСУ, если я вас чем-то уже обидел, извините, и пари тут не при чем. Я не гордый, говорил уже не раз. ;) Треп ты сам начал в лучших и хамоватых традициях Net'овских веток. Никто к тебе не придирается. Желание во всем разобраться самому похвально, но есть одно но. Твое графоманство вредно, тем более на страницах весьма уважаемого ресурса, как codeproject. Если ты сам со всеми своими сертификатами, скачешь по верхам и не видишь жирных минусов и ошибок, то что говорить о других? Модератор: Я публично извиняюсь перед МСУ, Denis Gladkikh и i, но следующий оффтоп буду грохать на корню. Надоел этот ситком! Уважаемый i, перед вами я так же готов извиниться, если я вас как-то обидел. А так же перед модератором, и всеми участниками треда, если виновник этого трепа считаете меня, в будущем буду только по делу. Вы указали мне на одну из ошибок, чем я конечно же признателен, и об этой ошибке я напишу в статье, и в той же что лежит на codeproject, чтобы не смущать народ, и в будущем никто не попался на эту ошибку. Если хотите я даже могу указать вас, как автора, указавшего на ошибку. Уважаемый модератор, прошу не удалять это сообщение. Надеюсь что дальше мы переведем русло в другое направление, и общаться будем только по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:14 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhВы указали мне на одну из ошибок, чем я конечно же признателен, и об этой ошибке я напишу в статье, и в той же что лежит на codeproject, чтобы не смущать народ, и в будущем никто не попался на эту ошибку. Если хотите я даже могу указать вас, как автора, указавшего на ошибку. Уважаемый модератор, прошу не удалять это сообщение. Надеюсь что дальше мы переведем русло в другое направление, и общаться будем только по делу. Лучше укажи в статье какие другие существуют решения для валидации с их + и -. Вот это будет интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iDenis GladkikhВы указали мне на одну из ошибок, чем я конечно же признателен, и об этой ошибке я напишу в статье, и в той же что лежит на codeproject, чтобы не смущать народ, и в будущем никто не попался на эту ошибку. Если хотите я даже могу указать вас, как автора, указавшего на ошибку. Уважаемый модератор, прошу не удалять это сообщение. Надеюсь что дальше мы переведем русло в другое направление, и общаться будем только по делу. Лучше укажи в статье какие другие существуют решения для валидации с их + и -. Вот это будет интересно. А какие еще знаете методы валидации средствами Silverlight, кроме валидации на Exception, IDataErrorInfo и INotifyDataErrorInfo? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:51 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis GladkikhЯ не про развод говорю, а про то что непонятно откуда проблема идет. У вас может быть стоят какие-нибудь плагины к браузеру, которые и тормозят работу. Самый распространенный из них это плагин от skype, посмотрите и попробуйте убить его, уменьшится ли процент использование процессора. Ну и так же попробуйте в другом браузере, там та же картина или нет? спасибо. Скорее всего проблемы с Flash именно на этом компьютере. Попробовал этот пример на другом - такого поведения действительно не наблюдается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 15:55 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Denis Gladkikhiпропущено... Лучше укажи в статье какие другие существуют решения для валидации с их + и -. Вот это будет интересно. А какие еще знаете методы валидации средствами Silverlight, кроме валидации на Exception, IDataErrorInfo и INotifyDataErrorInfo? Я имел ввиду не интерфейсы, а готовые фреймворки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
...На правах оффтопа. Подраскурил статью на хабре, жесть. За такие статьи п е сателям нужно, минимум, линчевать моск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 14:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Данил, а ведь смысл в этом есть. Иногда предметная область очень заковыристая, и переводить на английский имена хитровывернутых методов бывает непросто. Конечно, ситуацию частично спасают "подсказки" для интеллисенса, но мысль, что гораздо проще было бы назвать метод по-русски и не париться, нет-нет да и возникнет. Хотя пока не пробовал. А надо бы. В конце концов, переименовать метод обратно в студии можно парой мышекликов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 18:12 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Игорь, ну так словари карманные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 20:56 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
чем не нравиться? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 22:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosчем не нравиться? Код: plaintext 1. А если так? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 22:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeИногда предметная область очень заковыристая, и переводить на английский имена хитровывернутых методов бывает непросто. Вопрос не в том, можно или нельзя переводить (русские термины предметной области на английский язык) И не в том, просто или непросто. Вопрос в том - нужно ли этим заниматься. И если нужно, то по какой такой производственной необходимости. Подавляющее большинство российских программеров знает английский в пределах своей предметной области (т.е. программирования) чуть хуже, чем "удовлетворительно", а в пределах чужой предметной области - чуть хуже, чем "отвратительно". Карманными словарями делу не поможешь, если нет знаний ни языка, ни предметной области. В итоге получается потеря времени на создание корявой смеси правильных терминов с промптовыми "карманными" переводами, с восхитительными вкраплениями транслита, в исключительных случаях с аббревиатурами для пущей понятности. Полученный суп без сопроводилова не воспринимается никем. Ни русским программистом, ни английским, ни китайским. Ломать язык, чтобы потом ломать глаза, чтобы потом писать расшифровку своих же ляпов - глупее не придумать траты времени. Ежели человек сидит на русской винде, програмит в русифицированной студии, по Ф1 лезет в переведённый MSDN, в коде пишет комментарии-ворнинги-туду по русски, и рисует полторы формочки с русским интерфейсом для бухгалтерши Сары Моисеевны - перед кем он крутость выпячивает, ежеминутно заглядывая в словарь, и попёрдывая вырисовывая аглицкие букафки в названиях переменных? Не родился шекспиром, заказчик у тебя не шекспир, начальник у тебя не шекспир, коллеги у тебя не шекспиры, будешь увольняться, так и на смену тебе не шекспир придёт - ну и пиши по-русски. Бывают конечно объективные причины. Начиная с незрелости инструментария, заканчивая проектами "наружу" (или с привлечением сил "извне"). Но если оных объектывных нет на горизонте, то непонятно за каким таким прыщавым самолюбованием себя же и мучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 23:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
__ЛП, я, в сущности, о том же. Но писать имена классов и методов заставляет не самоторчание, а банальная программистская инерция и подсознательная боязнь кириллической кодировки, оставшаяся с доюникодовских времён. Кроме того, неизвестно, как отреагирует на мешанину английских операторов и русских наименований классов глаз и мозг (Данил, мозг - это моск ) Поставлю дерзкий эксперимент - попробую задействовать в проекте русскую терминологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 23:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeКроме того, неизвестно, как отреагирует на мешанину английских операторов и русских наименований классов глаз и мозг Отключи подсветку синтаксиса. Поработай денёк. Включи подсветку синтаксиса. Это не "мешанина", это как раз наоборот, помощь глазу и мозгу в более чётком разделении мух и котлет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 23:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
__ЛПi seeКроме того, неизвестно, как отреагирует на мешанину английских операторов и русских наименований классов глаз и мозг Отключи подсветку синтаксиса. Поработай денёк. Включи подсветку синтаксиса. Это не "мешанина", это как раз наоборот, помощь глазу и мозгу в более чётком разделении мух и котлет.Ты абсолютно прав. Я переименовал свойства и методы у нескольких классов. Чётко видно, где синтаксис языка, а где терминология предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 00:12 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeКроме того, неизвестно, как отреагирует на мешанину английских операторов и русских наименований классов глаз и мозг (Данил, мозг - это моск ) "Кому, что нравится" - сказал еж, слезая с сапожной щетки. Мой мозг представление модель уже воспринимать отказывается. Великий и могучий проигрывает информационную войну. На других просторах СНГ ситуация еще хуже(может, сейчас уже лучше) - своей технической терминологии нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 00:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, че ты там хотел сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 00:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iМой мозг представление модель уже воспринимать отказывается. Великий и могучий проигрывает информационную войну. На других просторах СНГ ситуация еще хуже(может, сейчас уже лучше) - своей технической терминологии нетПредставление модель я тоже не пойму. Но речь идет о том, что по-русски называются сущности предметной области. Синтаксис языка и программерская терминология остаются англоязычными - нельзя не признать, что для этого английский язык более подходящ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 00:41 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i see, да не английские они, а просто символичесое обозначние чего то мне пофиг что означет for или static запросто могло бы быть гургу и тумаз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:04 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosi see, да не английские они, а просто символичесое обозначние чего то мне пофиг что означет for или static запросто могло бы быть гургу и тумаз Спорить не буду, хотя вообще-то английские :) Но суть не в этом. А в том, что операторы языка вполне могут быть гургу и тумаз, а вот с сущностями объектной модели работать значительно удобнее, если это не гургу и тумазы, а Документы, Сотрудники, Счета-Фактуры и проч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:07 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i see, я о том и гворю гургу и тумаз нас заставляют а остально надо писать на том языке, на каком надо (самому, заказчику, и т.д.) я как то умничл и написал типа такие названия RecurыiveType и т.д. тогда казалось что это что то означает каждый раз блин приходится разобрать код что бы понять что это за рекурсив и что за тип когда поймешь вроде лень переименовать :( Я вс теперь пишу на русском в БД языке и везде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosi, че ты там хотел сказать? Это и хотел сказать, что непонятно. Если я правильно понимаю(в чем не уверен ;-), - ViewModel. Гавайская смесь может получиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, да пофиг все эти вьюмью у меня называется просто СоздатьПользовательскийИнтерфейсДляМакротипа("Процесс расчетный") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:23 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosi, да пофиг все эти вьюмью у меня называется просто СоздатьПользовательскийИнтерфейсДляМакротипа("Процесс расчетный") А ПользовательскийИнтерфейс, что означает?Форма?Диалог?Закладка?...????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 01:45 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i seeViPRosi see, да не английские они, а просто символичесое обозначние чего то Спорить не буду, хотя вообще-то английские :) i see, не будешь спорить - и правильно. Не английские. От английского языка в шарпе одни ошмётки. Ну или это какой-то очень странный английский. В котором есть слова foreach, bool, int, в котором "ИЛИ" записывается как ||, "И" записывается как &&, begin-end записывается как {}, и т.п. Вот для сравнения. Есть SQL. В котором, с некоторыми условностями, как слышится, так и пишется (для англоговорящих). А раньше были и такие причуды для работы с БД, как например MUMPS. Постоянно вспоминаю пример ASCRUS'а из соседнего форума: "Запас компактности" рассмотрим на примере: записать во все Заказы, сделанные в этом году (позже 31 декабря 1998 года) Покупателями из Города London, Дату заказа 1 января 1999 года: - если нет индекса по Дате заказа для привязанных к Покупателю Заказов: n ea,ez s ea="" f s ea=$$O^%cpad("A",3,"London",ea) q:ea="" d .s ez="" f s ez=$$OC^%cpadc("A","Z",1,ea,ez) q:ez="" i $$G^%cpgd("Z",ez,2,"",1)>19981231 d U^%cpuh("Z",ez,2,19990101) .q q - если есть индекс: n ea,ez,dt s ea="" f s ea=$$O^%cpad("A",3,"London",ea) q:ea="" d .s dt=19981231 f s dt=$$OZ^%cpadi("A","Z",1,ea,2,dt) q:dt="" s ez="" f s ez=$$O^%cpadi("A","Z",1,ea,2,dt,ez) q:ez="" d U^%cpuh("Z",ez,2,19990101) .q q 717385 Как говорится, почувствуйте разницу с SQL Так вот. В отличие от паскале-подобных языков (включая VB), си-подобные языки и прочие перлы, с ихними сокращательно-аббревиатурно-символическими скотоложествами - такое же мумпсоподобное говнищще, по большому то счёту. К английскому языку относятся постольку поскольку. Просто потому, что ни на какие другие человечьи языки вообще никак не похожи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 02:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
__ЛПТак вот. В отличие от паскале-подобных языков (включая VB), си-подобные языки и прочие перлы, с ихними сокращательно-аббревиатурно-символическими скотоложествами - такое же мумпсоподобное говнищще, по большому то счёту. К английскому языку относятся постольку поскольку. Просто потому, что ни на какие другие человечьи языки вообще никак не похожи. Спорить не буду, но ежикам разные щетки нравятся. Паскаль только у нас прижился, а на C полмира пишет. Программисты для себя писали, чтобы не ломать себе пальцы. До сих пор помню, как меня бесил этот многословный правильный английский(особенно - обязательный End да еще с точкой в конце файла), когда переходил на Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 09:10 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
__ЛП Со всем соглсен, кроме словарей. Каким бы ты не был божеством программирования, но очень часто встречаются в русской лексике соответствующие задачи, перевода которых ты не знаешь. Помогают словари. Встретить сейчас на рынке богатую смесь отличного девелопера и отличного upper intermediate инглишмена - вероятность 1% из ста, по крайней мере в столице. i seeПоставлю дерзкий эксперимент - попробую задействовать в проекте русскую терминологию. Комменты и описания ту ду и иже - да, классы, методы и код в частности - ни в коей мере. Русскую студию - печь. ViPRosЯ вс теперь пишу на русском в БД языке и везде Сахават, вот таких датабасе девелоперов всегда хотелось к стенке и очередью из калаша по пузяке :) ViPRosСоздатьПользовательскийИнтерфейсДляМакротипа("Процесс расчетный") Этапять! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 09:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
i, А все что надо, что бы обработать макротип (это несколько связанных типов обычно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:02 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Мусь, ты токо не нервничай, места не сервере много пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМусь, ты токо не нервничай, места не сервере много пока "Саха", да тут не о месте я вещаю, а про бестпрактис как-бы. Вот потом такой код по-наследству достанется доброму человеку, ... Ни дай Бог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:16 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, ну че будет? посмотрит на стиль и продолжить в том же духе а стиль простой - все что можно описать на улице, надо описать на улице, а внутри интерпретировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:22 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
я сморю всеэти вьюмью тоже практичеки этим и заняты, а мс какой то еще подобие аксеса выпустил, все стараются но ихни подельки тебе нравтся а мои нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:24 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
мои бизнис объекты описывает аналитик, а ихний кодер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosну че будет? Будут проблемы, если этот код будет заюзан на машинах без русской локали. Только не нужно приводить доводы, что этот код впринципе не будет юзаться на машинах без русской локали. Во-вторых, это очевидная проблема для работы в команде при наличии аутсорс-девелоперов, которые не обязаны быть русскими и знать русский. В-третьих, не раз уже обсуждалось - это антипаттерн, причём злостный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:30 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, ну нерусских ТОЧНО не будет, аутсорс и т.д. исключен априори :) Это как раз один из способов сохранить свое авторство :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:36 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Замет , Сахавата уе нет нигде, випрос и т.д. усиленно стирают автора :) даже на форуме твоими услиями стерли :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМСУ, ну нерусских ТОЧНО не будет, аутсорс и т.д. исключен априори :) Я же просил, не говорить об этом. Изначально расставляем себе грабельки. ViPRosЭто как раз один из способов сохранить свое авторство :) В этом-то и беда этого гавноподхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosЗамет , Сахавата уе нет нигде, випрос и т.д. усиленно стирают автора :) даже на форуме твоими услиями стерли :) Один только емэйл в випросовском профиле напоминает нам о чудодейственном пареньке из прошлых лет ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:39 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
нормальны подход требую поывешения зарплаты в 2 раза!!! Упала на треть за 3 года за счет инфляции, премии нет уже полгода за 2 недели переведу на суахили и греческий если требования народа будут учтены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:40 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosтребую поывешения зарплаты в 2 раза!!! За что? За "этот" код и "эту" БД? Саха, я бы Вам зарплату в 2 раза понизил бы. И плетью по кистям нащёлкал бы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Интересный ты парень, а в проектированииБД есть еще один интересны он сильно возмущается что я какой то классический объектный модель строю на РМД и слова у меня неправильные надо грит вместо свойство писать характеристики вместо тип объект и связь у меня вроде есть а вроде это не связь а ссылка а в объекте не может быть ссылки так как на не на самого нет ссылки во как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:43 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
это потому что какой то дейт сказал а ты про какого то буча наверное счас начнешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Муся, попробуй создай бд из 700 табличек и посмотрю как ты будешь петь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:45 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Юсифыч, ну выражайте мысли яснее, ну итить же. Читать сложно, а то каша опять. Вечно у Вас с формулированиями проблемы были ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:46 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМуся, попробуй создай бд из 700 табличек и посмотрю как ты будешь петь Наследие гемора один цэ структуры - уже ж обсуждали. В топку такие стратегии, особенно в разрезе "оптимизация запросов" + "производительность запросов". А-ля шарепоинт на данных в одной таблице. Индусы, не иначе - поубивавбынах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:48 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, я имел ввиду, что когда перед тобой сложная задача, она потихоночку заставляет вводить собственные правила. Мне ООП сразу понравился, но как только увидел ХЕЛПЕР класс где, понял что фигня этот ооп. потом пошли фабрики классов, аспектные, ижексионно - ехтеншионные, таперача лямда и т.д. т.е. полное фиаско как то хотел переделать код девок когда увидел тыщами классов с одним методом return false, то воще не стал мучиться но оправдываться приходится у меня на работе один крутой перец, чуть ли личный друг Буча и Фаулера, родной брат Дейта и Кодда, все время меня ругает за архитектуру, ООП и т.д полгода пишет одну фигню и каждый месяц обещает закончить на следующем :( все поправляет запятые и ищет в словаре слово на аглийском, примеривается к паттернам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:03 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
а так как фаулер этот бабки на этом делает, то скоро он начнет конституцию писать для прогеров и моральный кодекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:05 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, давай проверим напиши ты ХП и сгенерирует ВИПРОС посмотрим что у кого получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМСУ, я имел ввиду, что когда перед тобой сложная задача, она потихоночку заставляет вводить собственные правила. А если эти правила по неопытности ошибке были сформулированые не правильно, а впоследствии выясняется, что "надо было не так, а вот так"? ViPRosМне ООП сразу понравился, но как только увидел ХЕЛПЕР класс где, понял что фигня этот ооп. Ну хелпер классы это еще не ООП ;) Это, скорей, готовые собранные функциональности, которые не хочется прибивать к бизнес слою. Поэтому, вынесите свои хелпер ошмётки в отдельную сборку, чтоб не мазолило ооповский глаз. ViPRosпотом пошли фабрики классов, аспектные, ижексионно - ехтеншионные, таперача лямда и т.д. т.е. полное фиаско Фигасе, фиаско... Да этож красота - подрубил неймспес и подсосались тебе экстешены. Лямба вообще вне конкуренции - читабельно и коротко. Вы эт чего, Саха? ViPRosу меня на работе один крутой перец, чуть ли личный друг Буча и Фаулера, родной брат Дейта и Кодда, все время меня ругает за архитектуру, ООП и т.д Возможно, ругательства коллеги-божества не лишены основания? ) ViPRosполгода пишет одну фигню и каждый месяц обещает закончить на следующем :( все поправляет запятые и ищет в словаре слово на аглийском, примеривается к паттернам... Ну это классический антипаттерн: Рыцарь на белом коне (Knight in shining armor)происходит тогда, когда личность, которая не совершает ошибок, появляется на сцене и пытается починить всё, без сообщений о том, какие изменения он сделал/сделает и почему. А Вы, Саха, больны этим антипаттерном: Единственный знающий человек (Single head of knowledge)Единственный человек во всей организации контролирует жизненно-важную область ноу-хау или информации о внутренностях системы. Система оказывается "завязана" на этого человека. При его уходе или бездействии работа останавливается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:15 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, последнее очень точно подмечено, потому все с этого и начинается коней на переправе не меняют, больше овса!!! кони устали и мчутся хз куды а им овса жалко блин антипаттерн тоже паттерн я помню одного кодера он грил прога=алгоритмы+структуры правда он ошибался пога = структуры + алгоритмы во это паттерн был и есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:21 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМСУ, последнее очень точно подмечено, потому все с этого и начинается Не согласен. Задача тимлида или руководителя девелоперов как раз-таки организовать правильно процесс, чтобы такого не было. Достигается элементарно - разграничение ответственности в разрезе задач (а не всего приложения(-ний)). Задача не выполнена. ViPRosконей на переправе не меняют, больше овса!!! кони устали и мчутся хз куды а им овса жалко блин Согласен, ибо поздно уже. Посему, наслаждайтесь "процессом" и не ворчите, что "у нас всё так плохо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:28 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, как спеца по безопасника советы нужны куда эту фигню развивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:29 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosМСУ, как спеца по безопасника советы нужны куда эту фигню развивать? Правила есть - это уже гуд. Как сделано у меня тут: Membership Administrator Добавьте возможность множественности (plural relations). То есть, [блок-1] {может использовать} [блок-2], [блок-3], ..., [блок-n]. [блок] - это пользователь, роль или правило. Добавить возможность динамик кода (dynamic blocks of code C#). То есть в момент вызова Can{x} можно выполнить определенный код (хранится в БД). P.S. А, вообще, оффтоп уже конкретный пошел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:36 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, значить побольше гранулярности спс да каой наифг офтоп вес скл офтоп, а я ту по делу спрашиваю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:44 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRosда каой наифг офтоп Оставляю Вас один на один с Вождём для урегулирования данного вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 11:54 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
ViPRos Надеюсь, описывать плюсы "plural relations" безопасности Вам не нужно. P.S. Иногда в задаче часто можно встретить такую политику: юзер 1 может редактировать документы юзера 2 и юзера 3 "может редактировать документы" - это правило ( в частном случае , можно использовать и роль ) "юзер 1", "юзер 2", "юзер 3" - прльзователи Многие программисты, встречая такую задачу, стараются слать в топку такие требования, ссылаясь на то, что современные готовые ролевые политики не обладают таким функционалом ("правила", наследования правил или ролей, групп, plural relations и иже). Но задача остаётся ею быть. Можно и так задать: юзер 1 и юзер 2 может редактировать документы юзера 3 и юзера 4 Можно вместо юзера комбинировать группы, роли и правила. Можно вообще всё в кучу. Таким образом, имея такую гибкую конфигурацию политик можно сформулировать достаточно сложное правило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 12:02 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 12:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ, понял я уже это будет нужно для документооборта скорее всего, ну в принципе несложно добавить спс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 12:14 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУViPRos Надеюсь, описывать плюсы "plural relations" безопасности Вам не нужно. MCУ, у тебя неправильный справочник. Это делегирование прав. Многие программисты, которые про это знают, используют уже готовые велосипеды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 13:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Опишу плюсы динамической имплементации (dynamic blocks of code C#). Скажу честно, идею украл из рекламированную Севой системы NetSqlAzMan. Например, рассмотрим правило CanEditDocuments (может редактировать документы). Что имеем: (1) Вызов CanEditDocument (1.5) dynamic blocks of code (2) Получение результата (true/false) Суть динамической имплементации (dynamic blocks of code C#) - выполняться между первым и вторым пунктом. То есть, выполниться после пункта 1 и повлиять на пункт 2. В простом понимании можно описать следующий алгоритм: Код: plaintext Пример - в галерее . По умолчанию - "DynamicCodeResult" возвращает true. Но есть возможность проверить какое-то условие и повлиять на резултат. В результате имеем еще более гибкую конфигурацию политики. Например, не трудно составить такое правило: разрешать пользователю редактировать доументы, если возраст пользователя > 30 лет и email пользователя начинается на "superuser" :) Результатом будет создание правила "CanEditDocument" и соответствующей правкой в "dynamic blocks of code" этого правила. Есть возможность отключить вообще "dynamic blocks of code" в приложении (в случае ненужности) для того, чтобы не выполнять лишнее условие через reflection. + ко всему, желательно ввести понятие "Группа", чтобы можно было манипулировать безопасностью через группы. Ведь удобно выделить ряд пользователей в группу и накинуть на группу парвило(-а) или роль(-и). Все участники группы автоматически получат эту привелегию. Так же, реализовать наследование прав (если имеется иерархия групп). Так же дать возможность в группы класть не только пользоватлей, а роли и правила. Вот это будет уже вкусно. Можете посмотреть, как это у меня сделано )) Так что, Сахават, работать еще много над расширением безопасности :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 13:20 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iMCУ, у тебя неправильный справочник. Это делегирование прав. Многие программисты, которые про это знают, используют уже готовые велосипеды Сева, Вы оперируете не теми терминами - делегирование прав - это просто (абстрактоно) раздача полномочий. У меня же - именно множестенные отношения. Про делегирование - общий подход делегирования состоит в том, что делегировать нужно всегда, когда для этого есть возможность, максимальному количеству сотрудников, находящихся на самых низких этажах управленческой структуры, там где на практике реализуются принимаемые решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 13:24 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Сева, если что, - из энциклопедия менеджмента: Делегирование прав и ответственности подчиненным Предлагаю не вступать в полемику: плюс системы в том, что она является враппером над готовоым майкрософтским мембершипом, который используют очень многие .NET разработчики (особенно, что касается ASP.NET). Плюс, система работает и с AD. То есть, переход от обычного мембершипа к расширенному мембершипу - плавный и безболезненный. Самое главное правило, которое я сформулировал - не должен сломаться работающий код. Все старые приложения будут нормальное крутиться под кастомизированным мембершипом. Новый софт можно юзать с новыми возможностями, о которых я писал. Вот и всё. Так что у кого "велосипед" - еще спорный вопрос. Стандартные ролевые политики не удовляетворяют даже минимальным требованиям, ты это и сам знаешь. Большой минус NetSqlAzMan - нужно иметь свою таблицу юзверей, нужно писать (для веба) левые педальные роле провайдеры, профиль-провайдеры, юзер-провайдеры и т.д. То есть, возможность безболезненного и быстрого перехода с родного популярного мембершипа - нет в принципе. Нету наследования групп. Нету plural relations как класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 13:50 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiMCУ, у тебя неправильный справочник. Это делегирование прав. Многие программисты, которые про это знают, используют уже готовые велосипеды Сева, Вы оперируете не теми терминами - делегирование прав - это просто (абстрактоно) раздача полномочий. У меня же - именно множестенные отношения. Про делегирование - общий подход делегирования состоит в том, что делегировать нужно всегда, когда для этого есть возможность, максимальному количеству сотрудников, находящихся на самых низких этажах управленческой структуры, там где на практике реализуются принимаемые решения. Сотрудник готовит документ, согласовывает его с другими, начальник отдела утверждает, директор подписывает. У каждого свои должностные обязанности без всякого наследования(босс не будет сидеть за печатной машинкой и телефоном). Если директора нет, то он передает(делегирует) эту возможность вполне конкретному лицу/лицам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 13:57 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iСотрудник готовит документ, согласовывает его с другими, начальник отдела утверждает, директор подписывает. У каждого свои должностные обязанности без всякого наследования(босс не будет сидеть за печатной машинкой и телефоном). Если директора нет, то он передает(делегирует) эту возможность вполне конкретному лицу/лицам Это уже процесс , а не политики безопасности. Решается легко с помощью WWF или своими средствами, кои никак не коррелируют с администрированием , о котором я вещаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 14:00 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Ты правильно подчеркнул, то что ты вещаешь, действительно, МСУ никак не коррелируют с администрированием :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 14:59 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iТы правильно подчеркнул, то что ты вещаешь, действительно, МСУ никак не коррелируют с администрированием :) Еще раз. Имеем: 1. Секьюрити, описанный мной. 2. Воркфлоу, описанный тобой. Внимание вопрос: кто "не правильно" вещает. Просьба подумать, прежде чем отвечать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 15:13 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
К чему относятся: имеет право "подписывать документ","согласовывать документ", "опубликовывать документ"? МСУПросьба подумать, прежде чем отвечать. А Workflow - последовательность, в которой могут выполнятся эти действия. На нее могут накладываться правила разграничений прав доступа. Последовательность, правила, права доступа - три большие разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 15:35 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iК чему относятся: имеет право "подписывать документ","согласовывать документ", "опубликовывать документ"? К секьюрити, конечно. iА Workflow - последовательность, в которой могут выполнятся эти действия. На нее могут накладываться правила разграничений прав доступа. Могут. А к чему тогда в начале вот это сказал: iЭто делегирование прав. Многие программисты, которые про это знают, используют уже готовые велосипеды ? И о каких готовых велосипедах речь? Способны ли эти велосипеды решить задачу безпроблемной миграции с существующей безопасности? Способны ли эти системы дать полный набор инструментария, о котором я увещеваю? Если отталиваться от твоего изначального потал, то делегирование - абстрактное понятие в рамках обсуждения темы. Любой пук админа в разере секьюрити - это делегирование. Тогда непонятно, зачем ты стал акцентировавть внимание на этом делегировании, когда я начал рассказывать о "plural relations". Ясен пень, что всё это делегирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 15:50 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУiК чему относятся: имеет право "подписывать документ","согласовывать документ", "опубликовывать документ"? К секьюрити, конечно. iА Workflow - последовательность, в которой могут выполнятся эти действия. На нее могут накладываться правила разграничений прав доступа. Могут. А к чему тогда в начале вот это сказал: iЭто делегирование прав. Многие программисты, которые про это знают, используют уже готовые велосипеды ? И о каких готовых велосипедах речь? Способны ли эти велосипеды решить задачу безпроблемной миграции с существующей безопасности? Способны ли эти системы дать полный набор инструментария, о котором я увещеваю? Если отталиваться от твоего изначального потал, то делегирование - абстрактное понятие в рамках обсуждения темы. Любой пук админа в разере секьюрити - это делегирование. Тогда непонятно, зачем ты стал акцентировавть внимание на этом делегировании, когда я начал рассказывать о "plural relations". Ясен пень, что всё это делегирование. MCУ, велосипеды были способны на все это задолго до того, как ты передрал частично функционал у них. А в их документации нет русского понимания общепринятых и всем понятных терминов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 17:37 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iMCУ, велосипеды были способны на все это задолго до того, как ты передрал частично функционал у них. Ну давай на пальцах: Наследования привилегий - нету Множественного отношения - нету Костыль в БД у них - есть (у меня же юзается родная мембершип БД, которая развертывается готовым инсталлятором от MS) Родных ASP.NET роле-провайдеров, профиле-пролвайдеров и юзер-провайдеров у них нет. Весь этот ужас придется писать самому. У меня же - ни строчки провайдерного кода, всё крутится по дефолту, так же работает и дефолтная родная безопасность. У меня - миграция на расширенную безопасность - пнул дистриб, он сам расширил существующий мембершип. Всё. Программист получил расширенную безопасность + ASP.NET сайт админка в подарок. iА в их документации нет русского понимания общепринятых и всем понятных терминов Эти термины в той или иной степени сводятся к одному - к задаче, которую нужно выполнить. Не важно как ты называешь алычу - алычёй или сливой, абрикос - абрикосом или жердёлой. Факт только один - нужно сделать так, чтобы работало должным образом. И не важно, где это будет работать - в Шанхае, Страссбурге или Удмутрии, - оно должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 17:47 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
+ в подарок девелопер получает "Health Monitoring module" (логи, кстати тоже родные, с удобным ридером + командами, вшитыми в объектную модель мембершип-расширения) Пакет отчетов для мониторинга секьрити компании (естессно, всё расширяется по надобности) + система адаптирована и оттестирована под работу с большими массивами данных, собсно всё это в 1.8 версии P.S. Плюс даётся урезанная редакция безопасности: Membership Administrator Standard Edition , без всех вкусностей полной редакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 18:00 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУ+ в подарок девелопер получает "Health Monitoring module" (логи, кстати тоже родные, с удобным ридером + командами, вшитыми в объектную модель мембершип-расширения) Пакет отчетов для мониторинга секьрити компании (естессно, всё расширяется по надобности) + система адаптирована и оттестирована под работу с большими массивами данных, собсно всё это в 1.8 версии P.S. Плюс даётся урезанная редакция безопасности: Membership Administrator Standard Edition , без всех вкусностей полной редакции. Старый баян и всего лишь куцый функционал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 18:23 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
iСтарый баян и всего лишь куцый функционал. Ну я не ахти верстаю. Натрави суперверсталу, он сделает умопомрачительную верстку по дизайну. Но я не эту цель преследовал, тут уж прости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 18:31 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 07:04 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
buredВ сети появилась книга Сам не увлекаюсь, местным на заметку. P.S. просьба не разводить срачЪ ;d Индусским студентам нужно кормиться, вот и пишут порноту всякую :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 08:05 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Нигде не встречал вот такую методику сращивания моделиМорды с мордой в режиме создания View Model First. Код: 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. Мне представляется такая схема наиболее жизнеспособной. Интересны мнения по поводу недостатков и преимуществ этого подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 08:25 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Не, Лёнь. Порнушно. Тут в родном коде бехинде представления лучше общаться с ViewModel. Ваш же способ пакуется в печь по причине непереносимости ViewModel - ибо жестко прибито гвоздями представление. Отоночё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 09:09 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУНе, Лёнь. Порнушно. Тут в родном коде бехинде представления лучше общаться с ViewModel. Ваш же способ пакуется в печь по причине непереносимости ViewModel - ибо жестко прибито гвоздями представление. Отоночё.Как раз наоборот. В кодбехинде логика железно прибита к представлению. В моём случае ViewModel может иметь свою иерархию наследования и взаимодействовать с разными типами View в зависимости от потребностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 09:16 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
В коде бехинде нет логики. Там только вызовы методов вьюмодели :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:06 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУВ коде бехинде нет логики. Там только вызовы методов вьюмодели :)Тогда речь идёт о View First? Если так, то я говорю о ViewModel First. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:10 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУТам только вызовы методов вьюмодели :)OFF: Через ICommand лучше. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Другими словами, коде бехинде выступает в роли презентационного слоя. А точнее - контроллера.. Баян, уже дискутировали. С примрами гавнокодига. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:11 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
Алексей КМСУТам только вызовы методов вьюмодели :)OFF: Через ICommand лучше. :-) Через коде бехинде гибче и больше возможностей. Тем более, он бесплатно генерится. Нечего ему пустовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:16 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУВаш же способ пакуется в печь по причине непереносимости ViewModel - ибо жестко прибито гвоздями представление. Кстати, а чего в этом плохого? В большинстве случаев МодельМорды и Морда создаются одновременно и живут сообща. В случае, когда это не так - никто не заставляет применять такой способ. А про тестирование тоже уже много говорили. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:19 |
|
||
|
MVVM Framework. Кто какой использует?
|
|||
|---|---|---|---|
|
#18+
МСУЧерез коде бехинде гибче и больше возможностей. Тем более, он бесплатно генерится. Нечего ему пустовать :)Если МодельМорды инкапсулирована в Морду - при взаимодействии нескольких МоделейМорд приходится мутить средства для делегирования или приведения типов вроде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Учитывая, что дизайнер не любит наследования - эта необходимость весьма неприятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2011, 10:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=21&tid=1442515]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
198ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 547ms |

| 0 / 0 |
