While I realize that this conference is about the web and about blurring the lines between development and design, what I've been really, really inspired about at this conference so far has been Silverlight 3. After hearing about some of the new features in SL3, I completely changed my planned conference schedule so that I could soak up as much SL3 information as humanly possible.
I will be doing several more detailed posts about various aspects of Silverlight 3 once I get back home and get a decent night's sleep, but for now, I wanted to touch on a few of the things that I think Silverlight and potential Silverlight developers need to keep an eye on.
- Hardware Acceleration. For things like stretches, transformations, and alpha blending Silverlight 3 will offload that work to the GPU. In some very informative and objective analysis given during a session yesterday, this can show over 50% speed improvement depending on the graphics your application is using.
- Element-to-Element binding. I know this may not seem like much if you've never used Silverlight, but to WPF developers this is like pure gold. Using E2E binding you can rig the value of one property to the value of another property on another XAML element... this can create some really great GUI quickly with very little code.
- Perspective 3D. They've taken the 80% case for why people need 3D (performing psuedo-3D transformations on 2D elements to create effects like cover flow, etc.
- Animation Easing - multiple built-in types of easing functions to make the animations you do in Silverlight seem more natural and smooth, including things like a standard exponential ease and little "bounces" to make your controls take on a more visceral feel.
- File Saving and Opening !! - Your SL3 application can now read and write to files anywhere on the user's disk, provided the user tells you where the file is. It's still secure because all the SL3 app gets is a stream and it can only operate on that stream.
- Pixel Shaders - I could write an entire blog post on this (and most likely I will), but SL3 now has the ability to use Pixel Shaders using the same HLSL 2 language that WPF 3.5 SP1 uses for it's pixel shaders. These can be used to create transitions, inversions, blends, blurs, and much more. Even cooler is that there are already huge treasure troves of publicly available pixel shaders that you can easily import into your application.
- Read/Write pixels. There is now a WriteableBitmap intermediate surface. It might seem a little unnecessary at first, but if you've ever needed to take control of low-level pixel blitting for your SL app, this is good news for you.
- Adaptive Streaming - this was demo'd multiple times and I won't go into too much detail. Basically it allows you to stream live video content directly to a SL3 application (not just pre-recorded) in VC1 or H.264 and it can dynamically switch up or down bitrates depending on various network factors. Also allows for "instant seek" behavior.
- We finally get a WrapPanel!! :)
- Pixel Shaders can be combined with layering, alpha blending, and media elements to perform live, on-the-fly "green screen" effects. Demo was putting static backgrounds behind a video of John McCain talking. The possibilities here for creating high-end, rich applications are endless.
- Local Messaging - We can now use named-pipe style communication channels to talk to other instances of Silverlight applications running on the same machine, even if they're not in the same browser.
- Some new controls - DockPanel, WrapPanel, Expander, Label, TreeView, ViewBox, ChildWindow, etc.
- Silverlight can now run out of the browser and install desktop icons similar to ClickOnce. I cannot possibly express how huge this is for Silverlight developers. Basically you can right-click a Silverlight app and choose the "Install" option (or hit a button coded by the app developer). This can put an icon on the desktop and/or in the start menu and will install the app. Installed apps can detect what their own state is (running offline, etc) and receive notifications when the network IP address changes, allowing apps to determine their own connectivity level. Again, this is HUGE.
As I said, I will be posting more about SL3 once things calm down a little bit (and I get some sleep), but this should whet your appetite. I think the key thing to realize here is that Silverlight 3 is quite possibly the single best zero-install-required cross-platform rich application development environment available given the list of supported features and the ease with which certain tasks are possible.
Stay tuned!
tags: silverlight silverlight3 ria microsoft web mix09
links: digg this del.icio.us technorati reddit