view session recording, presenter Joe Stegman, Group Program Manager

Take a tour of the new features in Silverlight 3 including a dive into some of the new experience oriented features like pixel shaders, perspective 3D, animation enhancements, bitmap APIs and improvements to the media stack. Also hear about new Silverlight base framework additions including updates to the style model, data binding improvements, improved resource handling and improvements to the web services stack. This session will also introduce the Silverlight 3 out of browser model…

Jon’s Outline and comments

  • Think of SL3 as 4 big swaths:
    1. the run-time feature set,
    2. the libraries build on top of the runtime, including the SDK
    3. tooling, like Visual Studio and Expression Blend
    4. backend pieces – media serving (WS2008 and IIS7 Bandwidth Throttling), .NET RIA Services, and WCF integration
  • Tooling
    • VS2008 for Beta and RTM
    • Improved XAP compression (10-30% decrease in XAP size)
  • First SL3 announcement: new support for H.264 and AAC (4:15)
    • Quicktime and iTunes use H.264
    • The big difference in H.264 and VC1 (WMV/WMA) is
      • DRM
        • supported today for VC1, but not yet for H.264
      • Windows Media Server
        • IIS can deliver both, but today Windows Media Server only servers VC1
  • GPU Acceleration (6:38)
    • All devices today have a CPU and a GPU (graphics processing unit), which is important for stretching pixels, which is math intensive and important for good graphics
    • Opt in model
      • via enabling in EnableGPUAcceleration
      • and at the element level
      • EnableCacheVisualization is a visual indicator for showing what is GPU accelerated (anything in red is not accelerated)
    • Demo’s H.264 video (8:07)
  • Perspective 3D (13:04)
    • Definition: manipulating a 2D object in 3D space (not a 3D object)
  • Animation Easing (14:30)
    • SL2 came with linear animation (looking robotic and fake), SL3 adds better looking animation functions
  • Demo (15:17)
    • PlaneProjection element (new), and RotationY property (swinging door effect)
    • UI to UI banding (new feature) – bound a control property to another control property value
    • Later shows RotationZ, CenterOfRotationX, CenterOfRotationZ
    • Then shows that these can be applied to textual controls like DataGrid, which he demo’d with the form backwards and typed into it
    • ElasticEase and ExponentialEase, used on moving DataGrid around
    • Shows the new SaveFileDialog, and creates an Excel download (applause)
    • Blur out background during file selection (for user to tell that form is inactive, via new effect BlurEffect
  • Effects and Pixel Shaders (30:37)
    • “Effects are about impacting the visual behavior and not necessarily the functional behavior”. Example in the previous demo.
    • Two included effects: Drop Shadow and Blur
    • Developer can create custom effects. Done as “shaders” using HLSL (High Level Shader Language)
  • Pixel API’s (33:26)
    • Read and write pixels to bitmap
    • Render a visual tree to a bitmap
  • Raw Audio/Video API’s (34:43)
    • Same as pixel API’s, but over time
  • Demo (35:35)
    • WrapPanel, a new control in SDK
    • WriteableBitmap, used to capture parts of a playing image in demo
    • Shows a playing video, clicks on different parts of the movie and adds to the WrapPanel
  • Demo (40:33)
    • Background image and Foreground Media Element
    • Adds DropShadowEffect
    • Silverlight media does not support an alpha key. Uses a shader to fake this (43:02)
  • Demo (45:00)
    • Fractal generators, using new pixel API’s
  • Local Messaging (45:57)
    • Allows SL plug-in’s to communicate with other plug-in’s (same page, different tabs, different browsers), as long as they come from same domain
    • Shared memory implementation, string based messages
  • Demo (47:40)
    • 4 browsers, with different balls moving around/across them
  • Demo (48:30)
    • Based on the early SL Chess demo, where .NET code shown faster than JavaScript
    • New demo allows for comparing browsers speeds. Very cool demo!!!
  • UI Framework Improvements (54:00)
    • Merged Resource Dictionaries
    • BasedOn Styles
    • styles cleared
    • Multi-select ListBox
    • New VSM “invalid” states
  • Other Improvements (55:45)
    • SystemColors, for assistance in high contrast scenarios
    • SaveFileDialog
    • Text Improvements
      • ClearType available post-beta
      • CaretBrush
      • flag to optimize text
      • Glyph support for system font
    • Image refinements
  • New SDK Controls (57:50)
  • Other Big Additions (58:15)
  • Out Of Browser (58:40)
    • See Building Out Of Browser Experiences with Mike Harsh
    • Sandboxed
    • Built into core SL3 runtime
    • Enabled per “application”
      • manifest update
    • User initiated, via Right-Click or custom button in application
    • New networking API’s
      • connected, disconnected, and change state
    • Offline API’s
      • launch state, update API’s
  • Demo (1:02:30)
    • Demo of out of browser
    • Modifies AppManifest.XML to offline enable
      • tooling support to be updated
    • Right-Click provides user prompting for install
    • Application.Current.Detach
    • Application.Current.RunningOffline
    • Supports getting new versions
    • User can easily delete app