WPF Under The Hood Engines Tamir Khason Software consulter mPrest systems [email_address] http://blogs.microsoft.co.il/blo...
Agenda <ul><li>What is Windows Presentation Foundation? </li></ul><ul><li>New age of real world applications </li></ul><ul...
What is Windows Presentation Foundation? <ul><li>It’s part of WinFX (.NET 3.0) </li></ul><ul><li>It’s XAML (just like [HT]...
So XAML or Code Compile and Run Compile and Run Parse 010010100101101001010101101010100 BAML Load and Display < Button   W...
…  or Both CLASS Compile and Run public partial class  internal Button b; Load(“app.baml”); 010010100101101001010101101010...
WPF architecture Property Engine Input / Eventing System .NET Framework 2.0 Desktop Windows Manager Media Integration Laye...
New age of real world applications
LET’S DO IT! <ul><li>New age of real world applications </li></ul>
Dependency and Attached Properties <ul><li>Dependency Property </li></ul><ul><ul><li>Globally registered static property <...
DEPENDENCY AND ATTACHED PROPERTIES <ul><li>WPF Properties Systems – base concepts </li></ul>
 
 
Data Binding <ul><li>UI can be bound to any data driven object </li></ul><ul><li>Dependency properties can be even bounded...
DATA BINDING <ul><li>WPF Data Binding </li></ul>
 
Visualization engine and Styling <ul><li>Dependency Properties = binding, styling, triggers, animation </li></ul><ul><li>T...
STYLES, TEMPLATES, SKINS AND THEMES <ul><li>WPF visualization engine </li></ul>
 
 
 
LET DESIGNERS DO THEIR WORK <ul><li>Expression Blend / Sparkle </li></ul>
 
Come to meet me at the Development Panel, mail me [email_address] or visit my blog:  http://blogs.microsoft.co.il/blogs/ta...
2  iMATE JASJAM  –  סלולרי חכם משולב כף יד דור  3.5  בחסות חברת סולגוד יוגרלו בין כל ממלאי המשובים ! סט מקלדת - עכבר אלחוט...
Thanks giving <ul><li>Many thanks to Cian Walsh from Afterglow Design ( www.afterglow.ie ) for icons </li></ul><ul><li>Tha...
 
Upcoming SlideShare
Loading in …5
×

Wpf Under The Hood Engines

2,162 views

Published on

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
2,162
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Wpf Under The Hood Engines

    1. 1. WPF Under The Hood Engines Tamir Khason Software consulter mPrest systems [email_address] http://blogs.microsoft.co.il/blogs/tamir
    2. 2. Agenda <ul><li>What is Windows Presentation Foundation? </li></ul><ul><li>New age of real world applications </li></ul><ul><li>WPF properties system </li></ul><ul><li>WPF data binding </li></ul><ul><li>WPF visualization engine </li></ul><ul><li>Expression Blend / Sparkle </li></ul>
    3. 3. What is Windows Presentation Foundation? <ul><li>It’s part of WinFX (.NET 3.0) </li></ul><ul><li>It’s XAML (just like [HT]ML) and .NET 2.0 </li></ul><ul><li>It’s a unified approach to code, UI, documents and media </li></ul><ul><li>It’s not HWND </li></ul><ul><li>It runs in Windows (XP too), Web and even /E </li></ul><ul><li>It works mostly using the GPU </li></ul>
    4. 4. So XAML or Code Compile and Run Compile and Run Parse 010010100101101001010101101010100 BAML Load and Display < Button Width =&quot;100&quot; Background =&quot;LightBlue&quot;>OK</ Button > Button b = new Button(); b.Width = 100; b.Background = Brushes.LightBlue; b.Content = &quot;OK&quot;; Dim b As New Button b.Width = 100 b.Background = Brushes.LightBlue b.Content = &quot;OK&quot;
    5. 5. … or Both CLASS Compile and Run public partial class internal Button b; Load(“app.baml”); 010010100101101001010101101010100 app.baml Parse and Generate < Button Width =&quot;100&quot; Background =&quot;LightBlue&quot; Click =&quot;DoSomething&quot;>OK</ Button > void DoSomething(object sender, RoutedEventArgs e) { MessageBox.Show( &quot;I do not have to do designer's work!&quot;); }
    6. 6. WPF architecture Property Engine Input / Eventing System .NET Framework 2.0 Desktop Windows Manager Media Integration Layer DirectX Windows Vista Display Driver (LDDM) Windows Media Foundation Composition Engine Print Spooler Managed Unmanaged Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D Audio Imaging Text Video Effects Composition Engine MEDIA INTEGRATION LAYER Controls Layout Windows Presentation Foundation XPS Viewer
    7. 7. New age of real world applications
    8. 8. LET’S DO IT! <ul><li>New age of real world applications </li></ul>
    9. 9. Dependency and Attached Properties <ul><li>Dependency Property </li></ul><ul><ul><li>Globally registered static property </li></ul></ul><ul><ul><li>Handles storage and property changes </li></ul></ul><ul><ul><li>Implement a dependency properties when visual or logical inheritance, or invalidation is required </li></ul></ul><ul><li>Attached Property </li></ul><ul><ul><li>Specialized form of dependency properties </li></ul></ul><ul><ul><li>Child elements store unique values on parent Child informs parent how to present it on the UI </li></ul></ul><ul><ul><li>If parent not found, attached property is ignored </li></ul></ul>Property Engine Input / Eventing System .NET Framework 2.0 Unmanaged USER INTERFACE SERVICES Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES MEDIA INTEGRATION LAYER
    10. 10. DEPENDENCY AND ATTACHED PROPERTIES <ul><li>WPF Properties Systems – base concepts </li></ul>
    11. 13. Data Binding <ul><li>UI can be bound to any data driven object </li></ul><ul><li>Dependency properties can be even bounded to ADO.NET and Web Services </li></ul><ul><li>All operations (filter, sort, group) are generated on top of the data </li></ul><ul><li>You can apply Data Templates to the data </li></ul><ul><li>What can be a data binding target </li></ul><ul><ul><li>Any FrameworkElement </li></ul></ul><ul><ul><li>Any DependencyProperty </li></ul></ul>Binding Target Binding Source Dependency Object Object Dependency Property Property TwoWay OneWay OneWayToSource
    12. 14. DATA BINDING <ul><li>WPF Data Binding </li></ul>
    13. 16. Visualization engine and Styling <ul><li>Dependency Properties = binding, styling, triggers, animation </li></ul><ul><li>Template = customized experience </li></ul><ul><li>Removed explicit relationship between code & UI </li></ul><ul><li>Empowered application designer to create custom visuals </li></ul>USER INTERFACE SERVICES XAML BASE SERVICES DOCUMENT SERVICES Composition Engine MEDIA INTEGRATION LAYER Controls Layout
    14. 17. STYLES, TEMPLATES, SKINS AND THEMES <ul><li>WPF visualization engine </li></ul>
    15. 21. LET DESIGNERS DO THEIR WORK <ul><li>Expression Blend / Sparkle </li></ul>
    16. 23. Come to meet me at the Development Panel, mail me [email_address] or visit my blog: http://blogs.microsoft.co.il/blogs/tamir
    17. 24. 2 iMATE JASJAM – סלולרי חכם משולב כף יד דור 3.5 בחסות חברת סולגוד יוגרלו בין כל ממלאי המשובים ! סט מקלדת - עכבר אלחוטיים יוגרלו בכל אולם בהרצאה האחרונה ! ( לא לשכוח למלא משוב מסכם ....)
    18. 25. Thanks giving <ul><li>Many thanks to Cian Walsh from Afterglow Design ( www.afterglow.ie ) for icons </li></ul><ul><li>Thanks to PYImage for application layout </li></ul><ul><li>Thanks to Big Bill for his song “How you want it done” </li></ul><ul><li>Thanks to Microsoft for their Foundations ( www.netfx3.com ) </li></ul><ul><li>Thank you for your patience! </li></ul>Go build your own application easily with WPF

    ×