Introduction to Silverlight By Alan Cobb 2008-Jan-10 Sacramento, CA
About Alan Cobb Independent consultant since mid-80s on Microsoft platforms C#, WinForms, WPF,.NET One of directors of the SacDotNet U.G.
Presentation Overview What is Silverlight? How does it relate to other client-side technologies? How important is it? Silverlight app development walk-through
What is Silverlight? One word definition: Flash Browser plug-in: cross-browser, cross-platform Browser plug-in: cross-browser, cross-platform Use case today: Animated ads, Video Use case today: Animated ads, Video Use case tomorrow: Applications (Flex) Use case tomorrow: Applications (Flex) Benefits: Adds functionality + write-once-run-everywhere Benefits: Adds functionality + write-once-run-everywhere Why Silverlight not Flash? More words: Flash +.NET More words: WPF-subset +.NET-subset
This is a big deal Once-every-20-years event Existing client-side web technology has reached the peak of its life-cycle Fresh start of a new client GUI technology Web is where the action is The network is the computer The network is the computer
Comparing client platforms HTML / CSS / JavaScript / AJAX Desktop: Win16 Win32 WinForms WPFSilverlightFlash / Flex Web:
Competing technologies Desktop based “smart clients” WPF on high end WPF on high end 3D, Hardware acceleration WinForms: (Mature, proven) WinForms: (Mature, proven)Web-based: ASP.NET - HTML + CSS ASP.NET - HTML + CSS ASP.NET - HTML + CSS + AJAX ASP.NET - HTML + CSS + AJAX Adobe Flash / Flex Adobe Flash / Flex Desktop-web hybrid (?): Adobe AIR Adobe AIR
Demo – Yahoo Finance Charts * *
Demo – Picnik.com Photo Editor * *
Feature Details
WPF / Silverlight – Positives: Vector based vs. pixel based Scalable – Looks good at multiple resolutions Scalable – Looks good at multiple resolutions XAML – Similar to HTML Declarative Declarative Designers and programmers work in parallel Designers and programmers work in parallel Rich customization is possible in a well- designed way
WPF - Negatives Windows only Requires 50 / 200 MB.NET 3.x runtime Steep learning curve
Versions of Silverlight 1.0 RTM in Sept RTM in Sept Code behind – JavaScript only Code behind – JavaScript only 1.1 / 2.0 Alpha introduced in Spring Alpha introduced in Spring Beta at MIX08 in March Beta at MIX08 in March RTM maybe Q RTM maybe Q Code behind -.NET languages C#, etc. Code behind -.NET languages C#, etc. Partial.NET class library Partial.NET class library
Silverlight - Positives Lightweight at 4-6 MB, quick download.NET based Write in C# or VB.NET Write in C# or VB.NET Use familiar class libraries Use familiar class libraries Rich state-of-the-art GUI Vector based Vector based All types of content handled uniformly All types of content handled uniformly Secure - sandboxed
Silverlight - Negatives Not quite here yet “Pig in a poke” “Pig in a poke” Sandboxing limits functionality Conflicting products within Microsoft?
Demo: Silverlight Airlines * *
Demo: MS Download Center * *
Demo: 3 rd Party Control Vendor * *
Silverlight 2.0 Features: Won’t know details until March 2008 Controls:Data:Communications:
Silverlight 2.0 Features: Controls: Extensible control base classes Extensible control base classes Common controls: Common controls: Textbox, Checkbox, Radiobutton, etc TabControl, Slider, ScrollViewer, ProgressBar, etc Layout controls: Layout controls: Grid, StackPanel Data controls: Data controls: DataGrid, etc
Silverlight 2.0 Features: Data: 2-way data binding 2-way data binding More LINQ support: LINQ to XML More LINQ support: LINQ to XML
Silverlight 2.0 Features: Communications: REST, POX, RSS, and WS-* communication REST, POX, RSS, and WS-* communication Cross domain network access Cross domain network access Sockets Sockets
Feature Unknowns (?) Local client integration? Read and write local files? Read and write local files? Read local mic and webcam? Read local mic and webcam?WCF? Depth of class libraries? Pay-for-play Pay-for-play
Silverlight Development Walk-through
Silverlight Tools Expression Blend: GUI builder GUI builder Graphic designers Graphic designers Visual Studio 2008: Includes a more limited GUI builder Includes a more limited GUI builder Programmers Programmers