SlideShare a Scribd company logo
 
Введение Немного теории Концептуальная диаграмма Суть фреймворка Как это работает Пример:  IT Developers v1 Actionscript 3 [Multicore version] Pipes Util Пример :  IT Developers v 2 Ньюансы Немного о недостатках Выводы Меню:
open-source  фреймворк для создания приложений базирующихся на мета-паттерне  MVC – Model, View, Controller PureMVC
open-source  фреймворк для создания приложений базирующихся на мета-паттерне  MVC – Model, View, Controller содержит множество других паттернов внутри себя:  Façade, Mediator, Proxy, Command, etc. имеет слабо связанную архитектуру легко расширяем хорошо задокументирован PureMVC
планировался как фреймворк, независимый от платформы и языка, хотя весь код в документации И примеры написаны на  Actionscript 3 , существуют версии для  AS2, Java, C#, PHP, etc.  PureMVC
планировался как фреймворк, независимый от платформы и языка, хотя весь код в документации И примеры написаны на  Actionscript 3 , существуют версии для  AS2, Java, C#, PHP, etc.  не использует  Actionscript Event Model не  использует  Flex Libraries (  т.е. может  использоваться для  Flash  проектов ) PureMVC
 
Façade, Model, View, Controller – 4 Singletons (Singleton –  только один экземпляр объекта может быть создан )
Façade  –  инициализирует и предоставляет прозрачный доступ для  Model, View  и  С ontroller. Модель представляют прокси классы ,  Вид  –  медиаторы ,  Контроллер –  команд ы. Медиаторы, прокси и комманды используют  Façade  для доступа к друг другу и взаимодествия.
Элементы системы взаимодейтсвуют между собой с помощью -  Notifications  (используется  Observer  паттерн) Прокси могут посылать события, но не могут их слушать, медиаторы могут и посылать и слушать события, а комманды могут не только посылать события, но и вызываться событием.
1.  Проектирование, нужно четко разобраться в приложении и сразу разграничивать роли и логику   между моделью, видом и контроллером 2.  Создание визуальн ых элементов –  view components пранировать как отдельный компонент, продумать его  API , создать ряд событий для отлавливания его изменений 3.  Создание сервисов для общения с сервером – отсылки и получения данных, а также  VO  объектов Как легко написать приложение на  PureMVC
4.  Продумать какие основн ые действия будет выполнять приложение – функциональность. Как легко написать приложение на  PureMVC
4.  Продумать какие основн ые действия будет выполнять приложение – функциональность. ... т.е все как обычно – спроектировать, создать визуальный мокап, сервисы (если есть общение с сервером) и продумать, что будет делать приложение...  Как легко написать приложение на  PureMVC
4.  Продумать какие основн ые действия будет выполнять приложение – функциональность. ... т.е все как обычно – спроектировать, создать визуальный мокап, сервисы (если есть общение с сервером) и продумать, что будет делать приложение... А вот теперь взять в руки инструмент... Как легко написать приложение на  PureMVC
Создаем   Façade   для нашего приложения extends PureMVC Façade and implements Ifacade interface определяем метод  getInstance()  который возвращает единственный экземпляр фасада описываем имена для всех основных сообщений ( notifications)  приложения инициализируем контроллер (перегружаем  initializeController  метод) и мапим события к коммандам определяем метод  startup  который запускает приложение и обычно связан с коммандой  StartupCommand Инициализируем и вызываем  startup  в приложении (если во  Flex,  то обычно в  creationComplete)
Все!
Все! ... Работает?
Все! ... Работает?... А по идее должно)
Все! ... Работает?... А по идее должно) 2.  Создать  Proxy   классы для разного типа данных в которых мы будем вызывать уже созданные сервисы
Все! ... Работает?... А по идее должно) 2.  Создать  Proxy   классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3.  Создать  Mediators  –  которые слушают и обрабатывают события визуальных компонентов, а также изменяют их
Все! ... Работает?... А по идее должно) 2.  Создать  Proxy  классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3.  Создать  Mediators –  которые слушают и обрабатывают события визуальных компонентов, а также изменяют их 4.  Создать  С ommands  для запуска приложения, инициализации и остальной логики приложения -  simple commands - macro commands
Все! ... Работает?... А по идее должно) 2.  Создать  Proxy   классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3.  Создать  Mediators  –  которые слушают и обрабатывают события визуальных компонентов, а также изменяют их 4.  Создать  С ommands  для запуска приложения, инициализации и остальной логики приложения -  simple commands - macro commands 5.  Добавить обмен событиями ( notifications )
Важное в  PureMVC Реализация первостепенной мечты каждого программиста, начинающего работать с чем-либо новым или на новом рабочем месте )
Модульные приложения А что если ядер несколько? Трубопровод, как выход из ситуации
public static function getInstance( key:String ):ApplicationFacade { if (instanceMap[key] == null) instanceMap[key] =  new ApplicationFacade(key); return instanceMap[key] as ApplicationFacade; } PureMVC Actionscript 3 Multicore Использование мультитона вместо синглтона
PureMVC Actionscript 3 Multicore   Pipes Ну и собственно трубопровод
PureMVC Actionscript 3 Multicore   Pipes Вариант посложнее: система водоканалов
PureMVC Actionscript 3 Multicore   Pipes Существующее приложение не нужно переделывать!
PureMVC Actionscript 3 Multicore   Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор –  Junction
PureMVC Actionscript 3 Multicore   Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор –  Junction - для главного приложения создаются и регистрируются  так наз ываемые  TeeSplit ( для труб по которым идут сообщения от главного приложения)   и  TeeMerge  ( для труб по которым идут сообщения от модулей к главному приложению)
PureMVC Actionscript 3 Multicore   Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор –  Junction - для главного приложения создаются и регистрируются  так наз ываемые  TeeSplit ( для труб по которым идут сообщения от главного приложения)   и  TeeMerge  ( для труб по которым идут сообщения от модулей к главному приложению) - на  соединители ставятся слушатели для входящих сообщений
PureMVC Actionscript 3 Multicore   Pipes Создаем  Junction  медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.
PureMVC Actionscript 3 Multicore   Pipes Создаем  Junction  медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель –  pipe listener,  для обработки входящих сообщений
PureMVC Actionscript 3 Multicore   Pipes Создаем  Junction  медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель –  pipe listener,  для обработки входящих сообщений Для отправки сообщения используется метод  sendMessage(),  метод  Junction  медиатора, который посылает объекты типа  Message
PureMVC Actionscript 3 Multicore   Pipes Создаем  Junction  медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель –  pipe listener,  для обработки входящих сообщений Для отправки сообщения используется метод  sendMessage(),  метод  Junction  медиатора, который посылает объекты типа  Message После получение сообщения оно легко превращается в  notification  внутри принимающего приложения
Список литератур ы для прочтения www.puremvc.org +  представленная документация, примеры с исходным кодом, форум http://www.joshuaostrom.com http://www.websector.de/blog http://www.nutrixinteractive.com/blog/ http://flash-ripper.com/
Спасибо за внимание!

More Related Content

PPTX
Konstantin slisenko - Spring Framework
PDF
Разработка Enterprise-приложения на основе Spring Framework
PDF
Symfony2 Best Practices
PPT
Eclipse Monkey
PPT
Spring in java
PDF
C# Web. Занятие 11.
PPT
Основы Symfony и отличия Sf 3.x от Sf 2.x
PPT
Moxy. Из чего состоит и как этим пользоваться
Konstantin slisenko - Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
Symfony2 Best Practices
Eclipse Monkey
Spring in java
C# Web. Занятие 11.
Основы Symfony и отличия Sf 3.x от Sf 2.x
Moxy. Из чего состоит и как этим пользоваться

Viewers also liked (6)

PPT
Unidea Che Cambia Il Mondo
PPT
Ready For Printing
PDF
Ghost Gallery
PPT
Ourland,Oursea
PDF
RainScapes Manual Montgomery County MD Department of Environmental Protection
PPT
Mis Pendejas Y Yo!!
Unidea Che Cambia Il Mondo
Ready For Printing
Ghost Gallery
Ourland,Oursea
RainScapes Manual Montgomery County MD Department of Environmental Protection
Mis Pendejas Y Yo!!
Ad

Similar to UAFPUG6 - PureMVC (20)

PPTX
Enterprise flex pure mvc, slides, russian
DOCX
Enterprise flex pure mvc.v4
PPT
PureMVC в картинках - часть 1
PPT
Стандарты и соглашения в сложных ООП-приложениях
PDF
Шаблоны проектирования в Magento
PDF
Artsofte for b2 b
PDF
C# Web. Занятие 09.
PPTX
Референсная архитектура приложения на ASP.NET MVC
PPTX
ASP.NET, MVC, ASP.NET MVC
PDF
Модифицируемость программных систем
PPTX
разработка бизнес приложений (9)
PPTX
Мировые информационные ресурсы. Лекция 5
PPTX
Software craftsmanship 17: Microservices interaction
PDF
Balashov
PPT
Архитектура CompanyMedia next
PDF
Фреймворки: недалёкое прошлое и ближайшее будущее
PPT
ASP.NET MVC: new era?
PPTX
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
PPTX
Разработка WPF приложений в стиле ViewModel First
PDF
2013 09 17 архитектура веб-приложений
Enterprise flex pure mvc, slides, russian
Enterprise flex pure mvc.v4
PureMVC в картинках - часть 1
Стандарты и соглашения в сложных ООП-приложениях
Шаблоны проектирования в Magento
Artsofte for b2 b
C# Web. Занятие 09.
Референсная архитектура приложения на ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
Модифицируемость программных систем
разработка бизнес приложений (9)
Мировые информационные ресурсы. Лекция 5
Software craftsmanship 17: Microservices interaction
Balashov
Архитектура CompanyMedia next
Фреймворки: недалёкое прошлое и ближайшее будущее
ASP.NET MVC: new era?
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Разработка WPF приложений в стиле ViewModel First
2013 09 17 архитектура веб-приложений
Ad

UAFPUG6 - PureMVC

  • 1.  
  • 2. Введение Немного теории Концептуальная диаграмма Суть фреймворка Как это работает Пример: IT Developers v1 Actionscript 3 [Multicore version] Pipes Util Пример : IT Developers v 2 Ньюансы Немного о недостатках Выводы Меню:
  • 3. open-source фреймворк для создания приложений базирующихся на мета-паттерне MVC – Model, View, Controller PureMVC
  • 4. open-source фреймворк для создания приложений базирующихся на мета-паттерне MVC – Model, View, Controller содержит множество других паттернов внутри себя: Façade, Mediator, Proxy, Command, etc. имеет слабо связанную архитектуру легко расширяем хорошо задокументирован PureMVC
  • 5. планировался как фреймворк, независимый от платформы и языка, хотя весь код в документации И примеры написаны на Actionscript 3 , существуют версии для AS2, Java, C#, PHP, etc. PureMVC
  • 6. планировался как фреймворк, независимый от платформы и языка, хотя весь код в документации И примеры написаны на Actionscript 3 , существуют версии для AS2, Java, C#, PHP, etc. не использует Actionscript Event Model не использует Flex Libraries ( т.е. может использоваться для Flash проектов ) PureMVC
  • 7.  
  • 8. Façade, Model, View, Controller – 4 Singletons (Singleton – только один экземпляр объекта может быть создан )
  • 9. Façade – инициализирует и предоставляет прозрачный доступ для Model, View и С ontroller. Модель представляют прокси классы , Вид – медиаторы , Контроллер – команд ы. Медиаторы, прокси и комманды используют Façade для доступа к друг другу и взаимодествия.
  • 10. Элементы системы взаимодейтсвуют между собой с помощью - Notifications (используется Observer паттерн) Прокси могут посылать события, но не могут их слушать, медиаторы могут и посылать и слушать события, а комманды могут не только посылать события, но и вызываться событием.
  • 11. 1. Проектирование, нужно четко разобраться в приложении и сразу разграничивать роли и логику между моделью, видом и контроллером 2. Создание визуальн ых элементов – view components пранировать как отдельный компонент, продумать его API , создать ряд событий для отлавливания его изменений 3. Создание сервисов для общения с сервером – отсылки и получения данных, а также VO объектов Как легко написать приложение на PureMVC
  • 12. 4. Продумать какие основн ые действия будет выполнять приложение – функциональность. Как легко написать приложение на PureMVC
  • 13. 4. Продумать какие основн ые действия будет выполнять приложение – функциональность. ... т.е все как обычно – спроектировать, создать визуальный мокап, сервисы (если есть общение с сервером) и продумать, что будет делать приложение... Как легко написать приложение на PureMVC
  • 14. 4. Продумать какие основн ые действия будет выполнять приложение – функциональность. ... т.е все как обычно – спроектировать, создать визуальный мокап, сервисы (если есть общение с сервером) и продумать, что будет делать приложение... А вот теперь взять в руки инструмент... Как легко написать приложение на PureMVC
  • 15. Создаем Façade для нашего приложения extends PureMVC Façade and implements Ifacade interface определяем метод getInstance() который возвращает единственный экземпляр фасада описываем имена для всех основных сообщений ( notifications) приложения инициализируем контроллер (перегружаем initializeController метод) и мапим события к коммандам определяем метод startup который запускает приложение и обычно связан с коммандой StartupCommand Инициализируем и вызываем startup в приложении (если во Flex, то обычно в creationComplete)
  • 18. Все! ... Работает?... А по идее должно)
  • 19. Все! ... Работает?... А по идее должно) 2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы
  • 20. Все! ... Работает?... А по идее должно) 2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их
  • 21. Все! ... Работает?... А по идее должно) 2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их 4. Создать С ommands для запуска приложения, инициализации и остальной логики приложения - simple commands - macro commands
  • 22. Все! ... Работает?... А по идее должно) 2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы 3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их 4. Создать С ommands для запуска приложения, инициализации и остальной логики приложения - simple commands - macro commands 5. Добавить обмен событиями ( notifications )
  • 23. Важное в PureMVC Реализация первостепенной мечты каждого программиста, начинающего работать с чем-либо новым или на новом рабочем месте )
  • 24. Модульные приложения А что если ядер несколько? Трубопровод, как выход из ситуации
  • 25. public static function getInstance( key:String ):ApplicationFacade { if (instanceMap[key] == null) instanceMap[key] = new ApplicationFacade(key); return instanceMap[key] as ApplicationFacade; } PureMVC Actionscript 3 Multicore Использование мультитона вместо синглтона
  • 26. PureMVC Actionscript 3 Multicore Pipes Ну и собственно трубопровод
  • 27. PureMVC Actionscript 3 Multicore Pipes Вариант посложнее: система водоканалов
  • 28. PureMVC Actionscript 3 Multicore Pipes Существующее приложение не нужно переделывать!
  • 29. PureMVC Actionscript 3 Multicore Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction
  • 30. PureMVC Actionscript 3 Multicore Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction - для главного приложения создаются и регистрируются так наз ываемые TeeSplit ( для труб по которым идут сообщения от главного приложения) и TeeMerge ( для труб по которым идут сообщения от модулей к главному приложению)
  • 31. PureMVC Actionscript 3 Multicore Pipes Существующее приложение не нужно переделывать! для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction - для главного приложения создаются и регистрируются так наз ываемые TeeSplit ( для труб по которым идут сообщения от главного приложения) и TeeMerge ( для труб по которым идут сообщения от модулей к главному приложению) - на соединители ставятся слушатели для входящих сообщений
  • 32. PureMVC Actionscript 3 Multicore Pipes Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.
  • 33. PureMVC Actionscript 3 Multicore Pipes Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений
  • 34. PureMVC Actionscript 3 Multicore Pipes Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений Для отправки сообщения используется метод sendMessage(), метод Junction медиатора, который посылает объекты типа Message
  • 35. PureMVC Actionscript 3 Multicore Pipes Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений Для отправки сообщения используется метод sendMessage(), метод Junction медиатора, который посылает объекты типа Message После получение сообщения оно легко превращается в notification внутри принимающего приложения
  • 36. Список литератур ы для прочтения www.puremvc.org + представленная документация, примеры с исходным кодом, форум http://www.joshuaostrom.com http://www.websector.de/blog http://www.nutrixinteractive.com/blog/ http://flash-ripper.com/