Caliburn Micro Overview

10

Click here to load reader

description

Невеличкий огляд про магічнй фреймворк Calibrum Micro.

Transcript of Caliburn Micro Overview

Page 1: Caliburn Micro Overview

Caliburn Micro overview

Micro-Framework for WPF, Silverlight and WP7

Іван Корнелюк

  [email protected]  @korneliuk    korneliuk.blogspot.com

Page 2: Caliburn Micro Overview

Основні відомості

• Створено Rob Eisenberg (@EisenbergEffect)  

• Оснований на Caliburn - 90% можливостей в 10% коду

  •  Логічне продовження прикладу продемонстрованого на сесії Mix10 "Build Your Own MVVM Framework"

 

Page 3: Caliburn Micro Overview

Призначення

• Можливість створювати WPF/SL програми використовуючи TDD

 

• Спростити використання UI патернів MVC, MVP та MVVM

 

• Зменшити кількість рутинного коду, який потрібно писати для того, щоб MVVM працював

 

• Фреймворк, який легко зрозуміти та можна змінювати до власних потреб

"We want to write elegant, testable, maintainable and extensible presentation layer code…and we want it to be easy to do so. That’s what this is about."

Page 4: Caliburn Micro Overview

Приклад Game Library з сесії "Build Your Own MVVM Framework" був портований Marco Amendola для Caliburn.Micro. 

Game LibraryDEMO

Page 5: Caliburn Micro Overview

Game Library Demoслайд з презентації, яку робив Rob Eisenberg

• No Code Behind  

• No Event Wireups  

• No Commands  

• No Data Binding 

• No Data Templates 

• No Async Programming  

• No Custom Controls 

Page 6: Caliburn Micro Overview

Convention over configuration

• Action conventions   

• Binding conventions • View locating conventions

Page 7: Caliburn Micro Overview

ActionMessages

• Прив'язка UI тригерів до методів ViewModel - немає потреби в командах!

• Дозволяє передавати параметри методуo Можна передавати DataContext чи EventArgs o Конвертуються до сигнатури метода

  

• Message "bubbling" - корисно в Master/Details сценаріх

  

• CanExecute Guard  

• Підтримка Coroutines  

• Підтрика Blend в дизайн-тайм 

Page 8: Caliburn Micro Overview

CoroutinesСпівпрограмма (Coroutine) — компонент програми, з підтримкою безлічі точок входу (а не однієї, як підпрограма) і зупинкою та продовженням виконання із збереженням певного положення.

• Більше немає потреби займатись асинхронним програмуванням

  

• Легко тестувати  

o Відсутні звичні проблеми із тестуванням асинхронного коду (бо він відсутній явно)

 

o Немає потреби в Mock фреймворках  

o Не потрібні інтерфейси, щоб ізолювати такі класи як MessageDialog.

Page 9: Caliburn Micro Overview

Інфраструктура

• Bootstrapper  

• Event Aggregator 

• WindowManager 

• ViewLocator 

• Logging  

• Screen та ScreenConductor 

• PropertyChangedBase та BindableCollection

Page 10: Caliburn Micro Overview

Дякую!