An Introduction To Silverlight Gergely Orosz http://GregDoesIT.com @gergelyorosz In this presentation What SL is capable of How it is different Learning curve overview Why use SL Non-traditional way What is Silverlight? Rich Internet Application (RIA) platform Capabilities are similar to Flash Java FX Web-based subset of WPF Flash vs Silverlight Flash Silverlight Animation model Frame-based Time-based Language ActionScript CLR-compilant (VB.NET, C#) Platform All major Limited Linux (Moonlight) Multithreading No (from programmer perspective) Yes Flash vs Silverlight Flash Silverlight Image support Most formats JPG and PNG Video, audio Multiple formats, low-level APIs VC-1 codec, WMW, WM, no low-level APIs More costeffective Deep Zoom Streaming Other More mature Flash vs Silverlight Features: almost identical Development environments Streaming Mobile: ? WPF Descendant of Windows Forms Built on .NET 3.5 XAML: descriptive markup language WPF / Silverlight features Vector graphics & bitmap effects Data binding & UI update Animations Rich content: videos, images, sounds Styling, templates Silverlight: lightweight WPF CLR within Browser Limited CLR: Not all libraries Local filesystem limited Networking limited XAML Separate UI and logic XML markup, clean syntax XAML and code behind files Does not support generics XAML: a simple example Code UI Basics Layout Controls TextBlock, Image, MediaElement Brushes Button, HyperLinkButton, ComboBox etc Text, images Grid, Canvas, StackPanel Solid, linear, radial, image, video User Controls UI Basics: Example VideoBrush Example Use MSDN/references to look up UI elements Styling and templating Defining styles: TargetType Setters that are valid on the target Templates Customize controls Uses ControlTemplate class Easy to define in XAML Styling and templating: example Code Dependency Properties Extend CLR properties Property changed notification Data Binding Animating Default value and ClearValue Has to inherit DependencyObject Dependency Properties: example Registering, default value, Property Changed Animating Data Binding Attached Properties Global property that can be set on any object element Static Dps Used by the owner, defined on the child E.g. Canvas.Left, Grid.Column Attached properties: example Code MVVM How to effectively build large applications in WPF Lots of UI markup, lots of data binding Variation of MVC MVVM Model View BL, UI independent Visual elements + input processing Data binding View and model can be bound directly Usually direct binding is not possible MVVM ViewModel “Model of a View” Abstraction of the view: contains state and behaviour Data binder/converter: Model information → View information View commands → Model MVVM: Example MVVM in Silverlight Worth using on larger projects Frameworks MEF Official Prism Non-official, but MS Summary Similar to WPF XAML Styling & templating DPs Attached properties MVVM for larger applications Effort learning SL Project structure: small UI: significant Media: moderate Data binding: moderate Effort learning SL Network: moderate Events: moderate Other: moderate - significant Dependency Properties, Attached Properties MVVM Navigation Framework Out of Browser applications Why It's Worth It Things you couldn't do before! Good looking controls & pages Animation Video & vector graphics Why It's Worth It Silverlight client for Facebook Silverlight Toolkit (with source) http://www.jumpman23mosaic.com http://silverlight.net/showcase/ http://nokola.com/ (with source) Suggested Learning Curve C# / VB experience Web http://silverlight.net/getstarted/ MSDN: Getting Started with Silverlight Books WPF Thank You
© Copyright 2024