Alain Hufkens {Rich Interactive Applications Developer}

18Mar/094

What’s new in Silverlight 3

cusersdavcrowdocumentsbloggingmix09logoToday was the day of the MIX conference by Microsoft in Las Vegas. After the Techdays last week I was a bit disappointed in the Silverlight presentations. But on MIX they announced a lot of new features that will end up in the next version of Silverlight. I have found this list on a couple of blogs from Microsoft employees. Some of the stuff we can already do in Flash but other features might become interesting in the future.

  • Video/Audio. Silverlight 3 now also supports the H.264 video format in addition to VC-1. It also supports the AAC audio format; both this and H.264 are implemented within the MP4 container format (i.e. .MP4 and .M4A files).
  • GPU Acceleration. This is an opt-in feature that is available within the Silverlight 3 runtime, both in-browser and out-of-browser.You can add a parameter EnableGPUAcceleration, and set it to true, to enable final surface draw GPU acceleration. This could be something that can out performe the Flash player.
  • 3D Support. Silverlight 3 includes perspective 3D, which gives you much of the benefit of 3D without the “productivity penalty” of having to write it from scratch.
  • Animation Easing. There’s now a series of easing functions.
  • Custom Dialogs. We now have SaveFileDialog support in Silverlight 3. For security reasons (because Silverlight runs in the sandbox), we don’t return a path to the developer.
  • Effects. Effects (introduced in Silverlight 3) provide a low-level way to impact visual behavior (rather than functional behavior). We provide drop shadow and blur effects out of the box, but you can also create your own.Custom effects are implemented as HLSL shaders – these can be compiled into byte code using a DirectX SDK utility, which Silverlight 3 then consumes. Something similar to Pixelbender?
  • Pixel and Media APIs. You can now read/write pixels from a bitmap. There are two ways this functionality is exposed: either as an in-memory bitmap or by saving a visual to a bitmap. Also supported are raw audio/video APIs that enable dynamic sound generation, custom video codecs or indeed alpha video channels.
  • Local Messaging. One common challenge is messaging across multiple Silverlight plug-ins. In Silverlight 3, we now support “named pipes”-style messaging across not just objects on the same page, but even multiple Silverlight instances across multiple browsers.
  • Out of Browser. A user can start a Silverlight out-of-browser “application” either by right-clicking on the Silverlight content, or by clicking on a custom button within the application itself. So now we can have Silverlight applications running on the Mac that can run offline.
  • Tooling. The Silverlight 3 tools will introduce a new compression algorithm that will reduce the size of XAP files by 10-30%. So that's great news because Silverlight xap file tend to grow large very quick as they use extra dll files.
  • eclipse4SL: the Mac version of eclipse4SL is available for download, so now you can develop Silverlight applications on the Mac.

UPDATE: Read more about these features in detail in Tim Heuer's blog post: A guide to Silverlight 3 new features.

It's a nice feature list, but most of this stuff can also be achieved using the Adobe Flash Platform. But given the fact that the .NET core runtime is a powerfull development platform and the vast amount of developers, we should see some cool stuff coming in the future. The only feature that I haven't read anything about is Silverlight for Mobile. Maybe I missed it, or maybe it is something for later on.

Comments (4) Trackbacks (0)
  1. Actually, they’re just nearing in on the Flash Platform, and in some ways exactly copying it.

    “… to enable final surface draw GPU acceleration. This could be something that can out performe the Flash player.”
    That is actually exactly what FP10 does with its new gpu flag, just the final blit to the screen (tho it seems Adobe is still considering extending the possibilities).

    The cool part is using HLSL for Effects, which is solid and accepted by developers, and has a very decent IDE. Since Pixel Bender is the new kid on the block, the roles in that (small) field seem reversed ;)

  2. I agree that most of it can be done already on the Flash Platform and that for Flash developers it’s not all that new. But for a .NET developer not knowing any Actionscript or Flash this is some pretty cool stuff.

    Thanx for the FP10 clarification. I though that that was not yet possible, but you are the expert ;)

  3. Is SL not more comparable to Adobe Flex rather than flash (from a developer point of view). I’m not a Flash programmer (tried it, hated it) so am keen to find a “Flash type” product that is developer orientated, be it Adobe or Microsoft.

    Thanks for the article :)

  4. Hi Mark,

    Before comparing Silverlight with Flash/Flex we need to define what we talk about. Yes, you are right that Silverlight is more comparable to Flex from a development point of view. Flex uses MXML and Silverlight uses XAML for the presentation of the UI. But Flex is a framework on top of the Flash Platform, so that means that in the end it’s just an swf file playing in the Flash Player.

    Then you also have the tools. If you are a Flash Developer you would probably work with Flex Builder or FDT. If you are a Flash Designer you would probably work with Flash Professional CS4 and spend most of your time creating time-line animations. When you do Silverlight development you will also need someone who does the design and animations and there you have Expression Blend as a tool. It is not exactly the same as Flash Professional CS4. If you are a developer working in C# or VB.NET, you would use Visual Studio.

    I hope that this helps you make a decision. It all depends what you are comparing: browser plug-ins, tools or programming languages.


Leave a comment


No trackbacks yet.