Пример хорошей практики Silverlight-MVVM

Я прочитал несколько хороших статей о шаблоне Model-View-ViewModel, и моя команда намеревается реализовать этот шаблон в последней версии нашего приложения. Я до сих пор не совсем понимаю ВСЕ части, которые идут вместе, чтобы заставить эту работу работать. Я хотел бы найти хороший пример этого паттерна, над которым я смогу работать. Что-то в небольшом масштабе, как это делает Джейсон Долинджер в своем видео здесь, но я бы хотел что-то, над чем я мог бы работать самостоятельно в более медленном темпе.

Заранее спасибо за вашу помощь.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
48
0
54 452
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

По сути, ViewModel - это оболочка модели. Теперь это может быть не очень полезно :-) Думайте о модели как о данных, с которыми работает ваше приложение, скажем, о человеке. Теперь у человека есть день рождения, и вы можете захотеть иметь форму для ввода дня рождения человека. Предположим, мы просто используем простое текстовое поле, дата отображается примерно как 01-02-2009 12:00:00 AM. Для начала нам не нужна часть времени, и мы также можем не быть довольны частью 01-02-2009, так как это зависит от ваших настроек локали.

Итак, здесь идет модель ViewModel im. Он является оболочкой для класса Person и предоставляет дату как три целых числа: год, месяц и день. В наборе свойств он пытается построить дату из разных значений и отображает все возможные ошибки.

Проще говоря, ViewModel - это оболочка модели, специально ориентированная на конкретное представление (отображение). Он одновременно устраняет большинство IValueConvertors.

У Джоша Смита есть хорошее объяснение: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages и большое обсуждение здесь: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

У Нихила Котари есть сообщение о том, как использовать этот шаблон с его библиотекой Silverlight.FX. Посмотрите здесь: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx

Prism 4.0 теперь включает документацию по созданию приложений MVVM. Это предназначено для использования библиотек Prism, но в целом концепции работают для шаблона MVVM.

http://compositewpf.codeplex.com/releases

В последнее время я прошел через многое, из них выделяются два:

Дэна Валина (LIDNUG):

http://www.lidnug.org/Archives.aspx

Джон Папа (PDC 2010):

http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344

Вот еще один, который нужно добавить к списку: Simple MVVM Toolkit от Тони Снида (искренне ваш): http://simplemvvmtoolkit.codeplex.com.

Набор инструментов состоит из вспомогательных классов, шаблонов элементов Visual Studio и фрагментов кода. В дополнение к фактическому набору инструментов существует образец приложения с пошаговыми инструкциями по созданию базового приложения Silverlight с использованием шаблона MVVM.

Добавлен ряд новых функций, улучшена документация и больше примеров: blog.tonysneed.com/2011/01/23/….

Anthony Sneed 24.01.2011 00:04

Взгляните на мою статью о реальной MVVM в Silverlight. Хотя он не для новичков и ориентирован в основном на опытных разработчиков, работающих над реальными проектами.

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

Лучшее объяснение ViewModel было дано Скоттом Хансельманом во время его выступления по MVC в Европе.

Однострочный ответ - это модель (класс), которая создается с единственной целью - отправлять все необходимые данные, которые нужны конкретному представлению, а также для получения измененных данных из представления в случае двусторонних привязок.

Другие вопросы по теме