powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Паттерн MVVM
15 сообщений из 65, страница 3 из 3
Паттерн MVVM
    #36330553
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36333728
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa
Алексей КИзопропил давайте вернёмся к обсуждению MVVM
Имеет ли смысл во всех случаях выносить из ViewModel в другой класс львиную долю логики и оставлять только "прослойку" для взаимодействия Model <=> View через датабиндинг? Даже если выносимый код используется только в контексте данного ViewModel и в дальнейшем изменения ситуации не планируется. Что об этом говорят идейные вдохновители MVVM?
Хороший вопрос.
Теоретики сами озадачены этим вопросом и ничего внятного не говорят.
Еще одно обсуждение .
Сам по себе MVVM многих проблем не решает.Я для себя остановился пока на следующем варианте.
- работа с БД через Repository.С помощью Reactive Framework(Linq for Events будет входить в состав Net 4.0,для SL уже есть в Toolkit), удалось полностью избавится от необходимости написания асинхронных callback'ов,что дало идентичный код для серверной и клиентской частей.
- Унификация взаимодействия с БД позволила создавать базовые ViewModel, в них оставил только SCRUD (валидация в Моdel).
- Бизнес логика,создание View&ViewModel,композицию форм вынес в контроллеры.Их вызов удобней делать не с помощью ICommand, которые подразумевают явное создание команд, а через Routing по принципу ASP.Net MVC. Переходы задаются в текстовом виде(модуль/контроллер/действие/параметры) , их легко создавать и осуществлять binding.Кроме того, при таком подходе несложно сделать загрузку модулей по требованию.
Пока такой вариант полностью устраивает, основная работа сводится только к реализации бизнес-логики.Проблемы сейчас другие - приходится ломать голову над тем,как сделать более удобный интерфейс.Возможностей много,шаблоны не отработаны и это весьма тормозит процесс.
У меня 3 вопроса к SeVa:
что значит S в новоявленной аббревиатуре "SCRUD"? (вроде бы, всегда хватало CRUD aka C[reate]R[etrieve aka select]U[pdate]D[elete]);

как рассуждения Ward-a Bell-a о целесообразности введения "Screen Factory" ("View Factory") в WPF\SL приложении соотносятся с ответом на вопрос Алексея К о целесообразности вынесения к.-л. логики из VM вообще? (вроде бы, с логикой ли, без логики ли, а создавать VM в составе "триады" все равно надо и эти 2 вопроса - абсолютно ортогональны);

как в описанной вами структуре (архитектуре?) приложения обрабатываются "переходы в виде: модуль/контроллер/действие/параметры"? Подразумевает ли этот способ обработки наличие некоего "ViewEngine" ("по принципу ASP.Net MVC"), который строит V "на лету" (в виде XAML или еще чего-нить "декларативного") и отсылает клиенту только на "рендеринг" и отображение, фактически превращая UI-часть WPF\SL приложения в аналог браузера, но не для HTTP/HTML, а для XAML или любого другого "проприетарного" формата?

З.Ы. кстати, по принципу описанному в 3-ем вопросе еще 20 (25?) лет назад строился клиент для SAP\R3 (наверное, и сейчас строится, я уже выпал из контекста).
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36334028
Относит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaС помощью Reactive Framework(Linq for Events будет входить в состав Net 4.0,для SL уже есть в Toolkit), удалось полностью избавится...Это... как ево... и что - уже успешно это (reactive framework) используем? Поделитесь опытом.
Зы. Не флейма ради - вот это оперативность освоения новых технологий... Снимаю шляпу.

Модератор: Тема перенесена из форума "Winforms, .Net Framework".
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36334450
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ меня 3 вопроса к SeVa:

что значит S в новоявленной аббревиатуре "SCRUD"? (вроде бы, всегда хватало CRUD aka C[reate]R[etrieve aka select]U[pdate]D[elete]);

как рассуждения Ward-a Bell-a о целесообразности введения "Screen Factory" ("View Factory") в WPF\SL приложении соотносятся с ответом на вопрос Алексея К о целесообразности вынесения к.-л. логики из VM вообще? (вроде бы, с логикой ли, без логики ли, а создавать VM в составе "триады" все равно надо и эти 2 вопроса - абсолютно ортогональны);

как в описанной вами структуре (архитектуре?) приложения обрабатываются "переходы в виде: модуль/контроллер/действие/параметры"? Подразумевает ли этот способ обработки наличие некоего "ViewEngine" ("по принципу ASP.Net MVC"), который строит V "на лету" (в виде XAML или еще чего-нить "декларативного") и отсылает клиенту только на "рендеринг" и отображение, фактически превращая UI-часть WPF\SL приложения в аналог браузера, но не для HTTP/HTML, а для XAML или любого другого "проприетарного" формата?

1. - R(etrive) - выборка по фиксированным пармаетрам, S(earch) - по дополнителными условиям поиска.
2. Существуют разные стратегии, две из них: View First; ViewModel First. Все они имею существенные недостатки.Bell указывал на то,что логика построения(выбора) View может быть сложной(например, зависить от прав доступа),если ее помещать в VM, то это осложняет класс,теряется гибкость и тестируемость.Вынесение этой логики в отдельную сущность все упрощает. Такой подход применяется в их Caban'е, View&Presenter для гридов универсальные,нужны только специальные GridBuider'ы.
С помощью введения IScreen их действительно можно сделать ортогональными.
3.Низводить мощный xaml до банального рендеринга, на мой взгляд, не стоит.А вот инжекция нужных вариантов View,VM с помощью MEF(тоже будет входить в состав 4.0), в некоторых случаях может быть весьма интересным вариантом.
авторЭто... как ево... и что - уже успешно это (reactive framework) используем? Поделитесь опытом. Зы. Не флейма ради - вот это оперативность освоения новых технологий... Снимаю шляпу
Здесь нет ничего сложного. VM должен реализовывать IObserver, а создать универсальный Observable для асинхронных вызовов особого труда не составляет.Кроме универсальности получаем еще один дополнительный бонус - тестируемость без дополнительных framework'ов.
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36337096
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сранительный анализ MVVM framework'oв .
Приложение SL у меня не запустилось,но в предыдущем посте есть текстовая версия.
Большинство из одной бочки и в основном под WPF.Наиболее комплексный - Calibrum c MVP.
Под SL особняком - nroute. В этой парочке много интересных моментов.
Вчера попался Reactive Framework Extensions Generator .Тулзовина сканирует сборки проекта,создает "Reactive" assembly, это позволяет затем работать с Event'ами с помощью Observable APIs.
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352467
Zorrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу еще посоветовать поглядеть в сторону Prism. Сейчас как раз все десктопные клиенты разрабатываем в связке MVVM/Prism. Причем в зависимости от сложности модуля возможно присутствие контроллера модуля. View и ViewModel ресолвятся через Юнити. Мне лично нравится мэнеджер регионов, модульность и инфраструктура ивентов. Плюс атачед проперти и втроеные DelegateCommand и тд. Просто имхо=) Хотя в свое время и с MVC и MVP в пору выхода 3.0 ковырялся.
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352520
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZorrikМне лично нравится мэнеджер регионов, модульность и инфраструктура ивентов.
Что-то я поковырял этот призм недели две, да и выбросил. Особенно про регионы так ничего и не понял - нафига оно в таком виде нужно... имхо, регион должен из себя представлять стек с push(view) и pop(cnt). А так как он сделан - только hello world писать можно.
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352674
Zorrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может слабо ковыряли? =) К примеру Activate, Deactivate, ScopedRegions? На призме оч весело все заработало. Ну а если не нравятся регионы - не юзайте. К примеру там очень приятная интеграция с AvalonDock. Это все сугубо имхо. Кому-то нравится свои реализации DelegateCommand юзать, а кому-то нет. Фломастеры разные=)
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352688
Zorrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри забыл. Интеграция с авалоном в Композит контрибе. Но пришлось самому его пересобрать под проект=)
А, если не секрет, вы пользуетесь чем-нибудь из фреймворков? Если да, то каким(какими)?
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352693
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZorrikА, если не секрет, вы пользуетесь чем-нибудь из фреймворков? Если да, то каким(какими)?
Нет, как-то ни к чему пока было. Все в простые модели умещается.
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352701
Zorrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinZorrikА, если не секрет, вы пользуетесь чем-нибудь из фреймворков? Если да, то каким(какими)?
Нет, как-то ни к чему пока было. Все в простые модели умещается.

тынц

Вот тут неплохие статьи по базовой работе с регионами. В приложении б рассмотрен более комплексный вариант использования. К сожалению у нас достаточно сложный интерфейс, с поддержкой плагинов и тд. Получается вполне элегантно и чисто. А IEventAggregator просто ftw =)
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352730
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZorrikВот тут неплохие статьи по базовой работе с регионами. В приложении б рассмотрен более комплексный вариант использования.
Я это читал уже.
ZorrikК сожалению у нас достаточно сложный интерфейс, с поддержкой плагинов и тд. Получается вполне элегантно и чисто.
А у меня достаточно простой. Но чисто и элегантно пришлось писать свой RegionManager.
Zorrik А IEventAggregator просто ftw =)
Согласен. Хотя больше нравятся Callback-интерфейсы через WCF. Что называется, оповещение по факту и без всякой химии с предварительной регистрацией синглтонов
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352743
Zorrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinZorrikВот тут неплохие статьи по базовой работе с регионами. В приложении б рассмотрен более комплексный вариант использования.
Я это читал уже.
ZorrikК сожалению у нас достаточно сложный интерфейс, с поддержкой плагинов и тд. Получается вполне элегантно и чисто.
А у меня достаточно простой. Но чисто и элегантно пришлось писать свой RegionManager.
Zorrik А IEventAggregator просто ftw =)
Согласен. Хотя больше нравятся Callback-интерфейсы через WCF. Что называется, оповещение по факту и без всякой химии с предварительной регистрацией синглтонов

У нас тож через WCF с серверсайдом работа=) но там взял за основу идею из одной из первых реализаций DelegateCommand для MVVM, немножко переосмыслил и сейчас все работает асинхронно, быстро, прозрачно и куда же без красивых анимаций ;-) Все довольны=) Но, опять же, это мое имхо=) и пришел к этому не от желания пострадать фигней и поиздеваться над командой разработчиков=)
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352792
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZorrikУ нас тож через WCF с серверсайдом работа=) но там взял за основу идею из одной из первых реализаций DelegateCommand для MVVM, немножко переосмыслил и сейчас все работает асинхронно, быстро, прозрачно и куда же без красивых анимаций ;-) Все довольны=)
Что за идея, если не секрет? :)
...
Рейтинг: 0 / 0
Паттерн MVVM
    #36352842
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinZorrikУ нас тож через WCF с серверсайдом работа=) но там взял за основу идею из одной из первых реализаций DelegateCommand для MVVM, немножко переосмыслил и сейчас все работает асинхронно, быстро, прозрачно и куда же без красивых анимаций ;-) Все довольны=)
Что за идея, если не секрет? :)
Есть реализации с синхронизацией контекста.Вызов и обработчик в разных потоках.
...
Рейтинг: 0 / 0
15 сообщений из 65, страница 3 из 3
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Паттерн MVVM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]