Caliburn Micro Overview

1,635 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,635
On SlideShare
0
From Embeds
0
Number of Embeds
140
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Caliburn Micro Overview

  1. 1. Caliburn Micro overview Micro-Framework for WPF, Silverlight and WP7   Іван Корнелюк     [email_address]   @korneliuk     korneliuk.blogspot.com
  2. 2. Основні відомості <ul><ul><li>Створено Rob Eisenberg ( @EisenbergEffect ) </li></ul></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><ul><li>Оснований на Caliburn - 90% можливостей в 10% коду </li></ul></ul><ul><li>  </li></ul><ul><ul><li>  Логічне продовження прикладу продемонстрованого на сесії Mix10 &quot; Build Your Own MVVM Framework &quot; </li></ul></ul><ul><li>  </li></ul>
  3. 3. Призначення <ul><ul><li>Можливість створювати WPF/SL програми використовуючи TDD </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Спростити використання UI патернів MVC, MVP та MVVM </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Зменшити кількість рутинного коду, який потрібно писати для того, щоб MVVM працював </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Фреймворк, який легко зрозуміти та можна змінювати до власних потреб </li></ul></ul>&quot;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.&quot;
  4. 4. Приклад Game Library з сесії &quot;Build Your Own MVVM Framework&quot; був портований Marco Amendola для Caliburn.Micro. Game Library DEMO
  5. 5. Game Library Demo слайд з презентації, яку робив Rob Eisenberg <ul><ul><li>No Code Behind </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Event Wireups </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Commands </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Data Binding </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Data Templates </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Async Programming </li></ul></ul><ul><li>  </li></ul><ul><ul><li>No Custom Controls </li></ul></ul><ul><li>  </li></ul>
  6. 6. Convention over configuration <ul><ul><li>Action conventions </li></ul></ul><ul><ul><ul><ul><li>  </li></ul></ul></ul></ul><ul><ul><li>Binding conventions </li></ul></ul><ul><li>  </li></ul><ul><ul><li>View locating conventions </li></ul></ul>
  7. 7. ActionMessages <ul><ul><li>Прив'язка UI тригерів до методів ViewModel - немає потреби в командах! </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Дозволяє передавати параметри методу </li></ul></ul><ul><ul><ul><li>Можна передавати DataContext чи EventArgs </li></ul></ul></ul><ul><ul><ul><li>Конвертуються до сигнатури метода </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Message &quot;bubbling&quot; - корисно в Master/Details сценаріх </li></ul></ul><ul><li>  </li></ul><ul><ul><li>CanExecute Guard </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Підтримка Coroutines </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Підтрика Blend в дизайн-тайм </li></ul></ul>
  8. 8. Coroutines <ul><li>Співпрограмма ( Coroutine ) — компонент програми, з підтримкою безлічі точок входу (а не однієї, як підпрограма) і зупинкою та продовженням виконання із збереженням певного положення. </li></ul><ul><ul><li>Більше немає потреби займатись асинхронним програмуванням </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Легко тестувати </li></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>Відсутні звичні проблеми із тестуванням асинхронного коду (бо він відсутній явно) </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>Немає потреби в Mock фреймворках </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>Не потрібні інтерфейси, щоб ізолювати такі класи як MessageDialog. </li></ul></ul></ul>
  9. 9. Інфраструктура <ul><ul><li>Bootstrapper </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Event Aggregator </li></ul></ul><ul><li>  </li></ul><ul><ul><li>WindowManager </li></ul></ul><ul><li>  </li></ul><ul><ul><li>ViewLocator </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Logging </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Screen та ScreenConductor </li></ul></ul><ul><li>  </li></ul><ul><ul><li>PropertyChangedBase та BindableCollection </li></ul></ul>
  10. 10. Дякую!

×