420 likes | 554 Views
Catching up on Rich Clients (round 1). Mike Ormond, Mike Taulty Developer & Platform Group Microsoft Ltd Mike.Ormond@microsoft.com Mike.Taulty@microsoft.com. Microsoft UI Technologies. ASP.NET. ASP.NET AJAX. Win Forms. Silverlight. WPF. DirectX. Agenda. Foundations
E N D
Catching up on Rich Clients(round 1) Mike Ormond, Mike Taulty Developer & Platform Group Microsoft Ltd Mike.Ormond@microsoft.com Mike.Taulty@microsoft.com
Microsoft UI Technologies • ASP.NET • ASP.NET AJAX • Win Forms • Silverlight • WPF • DirectX
Agenda Foundations • Declarative Development (XAML) • Animations • Databinding • Styling • Controls • Templating 10 More Things... • Silverlight • WPF
rich clients demo
VS2008 Sp1 Express Edition Silverlight Tools Tools Design 2 Blend 2 Sp1 http://www.kaxaml.com/ VS Project Files XAML
myXaml.xaml XAML Based Development • eXtensibleApplication MarkupLanguage Declare a tree objects in XML rather than write code
XAML 101 – XML to .NET XML Elements map to instances of .NET Types XML Attributes map to properties of those instances
XAML 101 – XML to .NET • Namespaces in the XML map to CLR namespaces • Can be stated in the XML • Or embedded into the assembly in question
XAML 101 – Content Properties Types can have a “default” or “content” property
XAML 101 – Conversion/Propeties Properties often need converters “Dotted” syntax for property values of complex type Capabilities for populating collections
XAML 101 – Code Behind • Some XAML stands alone • Other XAML needs to be “married” with code at load time • Visual Studio generates code to wire up events at XAML load time
XAML 101 – Naming • Code often needs to locate objects created in XAML • Use naming in XAML to achieve this; • Visual Studio uses this to make strongly typed member variables
XAML 101 - Extensibility Markup extensions (many built in) Custom classes/controls
Bit of XAML demo
Animations & Triggers • WPF & Silverlight – a little more general: • Might not be visual • Might not be “movement” animatev. to present a series of images in rapid succession thereby creating the illusion of movement You can animate most properties of objects
Anatomy of an Animation Storyboard Properties BeginTime AutoReverse RepeatBehavior SpeedRatio ... Trigger (or Code) Storyboard Animation Animation Animation Animation Properties BeginTime From / To / By Duration ... Storyboard Animation
Animation Options Transforms Rotate Translate Scale Skew Matrix • Animation Types • Double • Point • Color • Thickness • String • ... • Animate By • Simple Interpolation • KeyFrame • Linear • Spline • Discrete • Path 0 1s 1.7s 4s 5s
Databinding is core • Elements have a DataContext • Resolution of declarative bindings is done by hierarchically examining an element’s DataContext Grid Button
Data Binding • Some requirements on underlying bound objects • INotifyPropertyChanged • INotifyCollectionChanged • Also – need to consider DependencyObject and DependencyProperty in some cases • Many options to tweak around binding; • One-way or two-way binding • Validation, Conversion • When to notify of modifications • etc...
Data Binding demo
Styles, Resources? • Styles • Styles allow us to collect properties in one place and apply them to many elements • Resources • Simple way to reuse commonly defined objects and values • FrameworkElement class properties: • .Style (as Style) • .Resources (as ResourceDictionary)
Defining Resources Dictionary1.xaml
Consuming Resources • StaticResource • Evaluated once when page / window loads • DynamicResource • Lazy loaded • Ongoing evaluation • Implicit Keys • Every resource has a key - not necessarily *explicit*
Some Observations • Style • Re-use, re-use, re-use • Usually created in XAML • Usually created as a resource • Resources • Not just about Styles
styles and resources demo
Controls – the “Toolkits” • Silverlight Toolkit and WPF Toolkit (CodePlex) WPF Silverlight
you can build your own controls • UserControl for composition of controls • Panel for custom layout • Control for ultimate flexibility incl. templating
Controls demo
Control Templating Flexibility Complexity Click Me! Appearance Appearance Behaviour • Set the Control.Template property (ControlTemplate) • Typically via a .... Style !
Data Template • Allows me to define data’s visual representation
templating controls demo
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.