• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Add2010 - Silverlight/WPF: MVP&MVVM
 

Add2010 - Silverlight/WPF: MVP&MVVM

on

  • 2,130 views

Presentation from Application Developers Days 2010

Presentation from Application Developers Days 2010

Statistics

Views

Total Views
2,130
Views on SlideShare
1,856
Embed Views
274

Actions

Likes
0
Downloads
24
Comments
0

5 Embeds 274

http://addconf.ru 176
http://www.addconf.ru 93
http://add4.addconf.ru 3
http://localhost 1
http://add.byte-force.yar.ru 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Add2010 - Silverlight/WPF: MVP&MVVM Add2010 - Silverlight/WPF: MVP&MVVM Presentation Transcript

    • Silverlight/WPF: возврат от паттерна MVVM к MVP
      Гладких Денис
      http://outcoldman.ru
    • История
      Первое упоминание паттерна MVC в Smalltalk’80
      Задача: архитектурное решение, которое позволяло бы манипулировать графическими представлениями данных приложения таким образом, чтобы изменение Представления этих данных не влияло на бизнес-логику и данные (Модель) приложения, а так же, чтобы была возможность иметь несколько Представлений для одной Модели. 
    • Термины
      Model(модель данных) - бизнес логика вашего приложения;
      View(представление) – пользовательский интерфейс;
      Controller(контроллер) - содержит логику на изменение модели при определенных действиях пользователя;
    • Классический MVC
      Действия
      пользователя
      View
      Передача
      вызова
      Сообщение
      об изменениях
      Изменение
      модели
      Model
      Controller
    • Реализация
      UserEditView
      UserEditController
      Model (User,Repository)
      Пользователь
      нажал Apply
      controller.UpdateUser(
      textBoxName.Text,

      )
      user.Name = name;
      repository.Save(user);
      Сообщить об изменении
      (INotifyPropertyChanged)
    • Model – View – Presenter
      Действия
      пользователя
      Passive View
      Supervising Controller
      View
      Передача
      вызова
      Обновление
      Изменение
      модели
      Presenter
      Model
      Сообщение
      об изменениях
    • Реализация
      IUserEditView
      UserEditView
      UserEditPresenter
      Model (User,Repository)
    • Реализация
      Model (User,Repository)
      UserEditView
      UserEditPresenter
      Пользователь
      нажал Apply
      presenter.UpdateUser();
      name = view.UserName;
      user.Name = name;
      repository.Save(user);
      view.UserName= user.Name;
    • INotifyPropertyChanged
      INotifyCollectionChanged
      DependencyObject
      Silverlight/WPF Binding
      МАГИЯ
      View
      Controller
      TextBox
      UserName
      Button
      Command
    • Model – View – Presenter
      Действия
      пользователя
      View
      Передача
      вызова
      Обновление
      Изменение
      модели
      Presenter
      Model
      Сообщение
      об изменениях
    • Model – View – ViewModel
      Действия
      пользователя
      View
      Передача
      вызова
      Обновление
      Изменение
      модели
      ViewModel
      Model
      Сообщение
      об изменениях
    • Реализация
      Магия
      Model (User,Repository)
      UserEditView
      UserEditViewModel
      Пользователь
      нажал Apply
      ExecuteSaveCommand()
      name = UserName;
      user.Name = name;
      repository.Save(user);
      TextBoxполучит актуальное
      значение
    • View
      ViewModel
      Задачи (View / ViewModel)
      Установка значений в соответствующие контролы
      Связь/взаимодействие с моделью
      Валидация измененных / новых данных
      Создание данных (из Модели) для отображения
      Визуализация контролов
    • BindingModel
      View
      BindingModel . . .
      Создание данных (из Модели) для отображения
      Валидация измененных / новых данных
      ViewModel . .
      Связь/взаимодействие с моделью
      Presenter
    • Demo (by Davy Brion)
    • Silverlight/WPF: возврат от паттерна MVVM к MVPГладких Денис (outcoldman)
      http://outcoldman.ru
      http://twitter.com/outcoldman
      outcoldman@gmail.com