Silverlight 2 - Feature Overview

Last week in Las Vegas the upcoming version Silverlight 2 was presented.

Right now the Beta 1 is available for download.

As you probably already know, Silverlight is a browser plugin, which needs to be installed once by the end users.

If users get along Silverlight content embedded in a webpage, the app is downloaded and executed locally be the plugin (but displayed in the webpage).

Let me give you an overview of the functionality of the current beta:

.NET Support:

Silverlight 2 has a built in mini-version of the .NET Common Language Runtime. You can therefore build Silverlight 2 applications using C# or VB.NET (and even more..) without having .NET installed on the client before. That's why Silverlight .NET applications also work on the Mac.

Controls:

.NET support enabled a series of controls within Silverlight. Most important, focus handling is now supported - meaning you can control the currently active controls with the TAB key and input text or send other keys to controls.

The collection of built-in controls includes Textbox, Button, ItemsControl, FileOpenDialog as well as layout controls like Grid or StackPanel. The SDK includes other controls (which are not included in the core runtime and need to  be shipped with your app), they contain Checkbox, RadioButton, DataGrid, Calendar and more.

Styles & Templates:

Like with WPF you can now style your controls with a collection of property values for colors and other things. Moreover you can change the appearance of controls completely by specifying a control template for it. Data templates for visualization of custom objects are also available.

Databinding:

To bind specific properties to others you can now use databinding.

image

The sample shows how to bind a property (in contrary to WPF, the Path=.. syntax doesn't work right now). Set the data source with a DataContext property of the control or it's parents.

Networking:

You can either add a web reference to a HTTP or JSON web service or you can download data from any same-domain (or even cross domain) site URL. Client sockets are also supported.

LINQ:

With the help of LINQ to XML (in the SDK) you can query XML data source with the well known LINQ paradigm.

HTML Integration:

As Silverlight is always embedded within HTML it is crucial to provide a good interop story between HTML and Silverlight. You can access HTML objects out of Silverlight as well as access Silverlight methods out of JavaScript.

Local Storage:

Silverlight apps can store information in a local folder (which is somewhere in the user profile). Only the same app can read and write to and from this location. The size is limited, but increase can be requested. This is equal to Isolated Storage on the full .NET FX.

OpenFileDialog:

Local file system access is not permitted except Isolated Storage. With the help of the OpenFileDialog users can grant access to a specific file to the application (e.g. to use it for upload).

DeepZoom:

This technology, formerly known as "Seadragon" allows seamless zooming into high resolution images. Only the necessary parts of the images are transferred to the client to reduce network traffic.

 

If you want to play around with the current version, these links are essential:

By the way: In Q2 2008 a second Beta will be released, which will allow you to get online with your commercial projects - so start looking into Silverlight now!