Features of SilverLight 3


Improvements have been made to the XAP compression within the Silverlight tools.


A great number of components are added. Those include:

  • Dock Panel
    • Defines an area where you can arrange child elements either horizontally or vertically, relative to each other.
  • Wrap Panel
    • Positions child elements in sequential position from left to right, breaking content to the next line at the edge of the containing box.
  • Label
    • Represents the text label for a control.
  • View Box
    • Defines a content decorator that can stretch and scale a single child to fill the available space.
  • Auto Complete box
    • Represents a control that provides a text box for user input and a drop-down that contains possible matches based on the input in the text box. 
  • Data Grid
    • Represents a container to display data in row and column manner.
  • Tree View
    • Represents a control that displays hierarchical data in a tree structure that has items that can expand and collapse.
  • Expander
    • Represents a control that displays a header and has a collapsible content window.
  • HeaderedItem Control
    • Represents a control that contains multiple items and has a header.
  • HeaderedContent Control
    • The base class for all controls that contain single content and have a header.
  • Data Form
    • The DataForm serves as a flexible control for displaying data representing a single entity definition.  This control enables various methods for display, edit/update and navigation through data.  When combined with other controls, DataForm provides a simple method for attaching to data contexts and having a quick or highly customized UI for displaying entity data.
  • Data Pager
    • The DataPager serves as a simple control to provide next/previous and numeric paging capabilities for data sets which implement the IPagedViewCollection interface.  When combined with .NET RIA Services (which ObjectDataSource automatically implements this collection), DataPager provides a quick and efficient mechanism for paging data without having to bring entire data sets to the client and page though them there.
  • Navigation Framework
    • A new navigation framework is introduced and implements two controls: Frame and Page.  Using this framework you can partition your views into separate XAML files and navigate to each view as simple as you would previously a web page.  This framework also integrates with the browser’s history journal to provide back/forward capabilities. 
  • Frame
    • Represents a content control that supports navigation.
  • Page
    • Encapsulates content that can be navigated to by a web browser or Frame.
  • Domain Up Down
    • Represents a control that enables single value selection from a domain of values through a Spinner and TextBox. 
  • Time Picker
    • TimePicker represents a control that allows the user to select a time. 
  • Accordion
    • Represents a collection of collapsed and expanded AccordionItem controls. 
  • Child Window
    • Provides a window that can be displayed over a parent window and blocks interaction with the parent window.
  • Charting Improvements


  • Perspective 3D in Silverlight
    • Perspective 3D transform support was added to enable 3D scenarios and putting objects on a plane for various user experience scenarios.  It’s fairly simple and no different than how you already interact with transforms (and of course, Expression Blend makes this easier), by manipulating the PlaneProjection.
    • This will enable various 3D scenarios (like CoverFlow type user interfaces, for example) and make for some type of transitions a lot easier (like front/back ‘flipping’ animations).
  • Pixel Shader API
    • Pixel Shader APIs were added to allow developers to create effects like blur and drop shadow effects (included) but also enable developers to create their own effects.  As an example of using the included Blur effect you could implement the effect on any UIElement (pictures and any UI XAML element).
  • Animation Easing Effects
    • Animation Easing effects are now a part of Silverlight providing you with a set of easing animations such as bounce, elastic effects, etc.  These interpolators will help with smoother animation transitions and other visual effects you are trying to accomplish.
  • Cached Composition (GPU Support)
    • Cached Composition (GPU support) support enables leveraging the GPU for rendering which then frees up normal CPU processing for other things.  This will be a helpful API for having the ability to cache a visual tree for using for simple transforms or for offloading certain scenarios (media) to hardware versus having the software handle those tasks.
  • Bitmap API
    • new Bitmap API will enable developers to build applications that do more granular manipulation like a red-eye correction editor for photos being able to correct specific pixels writing them back to the bitmap.
  • Text Improvements
    • Clear Type Support for Text Rendering
    • Text improvements including more efficient rendering and animation of text within an application.  Additionally, making use of the JavaScript API for local font support would accelerate application load time when local fonts can be used.
  • Image Improvements
    • Image Improvements including the decoding of image data before it is added to the visual tree and enabling control over the image cache.
  • Enhanced Control Skinning
    • Simplified skinning capabilities by keeping a common set of controls external from an application. This allows the sharing of styles and control skins between different applications.

UI Framework Enhancements

  • Element to Element Binding
    • Enables property binding to CLR objects and other UI Components via XAML.
  • Dynamic Change
    • This enables us to change a style at runtime. This is helpful for dynamic control scenarios.
  • Based On Styling
    • A Control’s style can be based on existing style definition.
  • Caret Brush for Input Controls
    • This is helpful for high-contrast situations so that the Caret (cursor marker) is visible in contrast situations or however else you want to present the caret to the user.
  • Binding Validation (UI templates for validation)
    • Your application in XAML will now honor your data source’s exception layer for data binding.

Local Connection API

The LocalConnection API enables the scenarios for Silverlight applications to communicate with each other through an asynchronous messaging system.  This is helpful in advertising scenarios as well as when you have islands of Silverlight functionality mixed with standard HTML content as well. 

The LocalConnection APIs have a LocalMessageSender and LocalMessageReceiver that operate as sort of a pub-sub model.  Silverlight applications across domains can also communicate with each other given the sender/receivers enable that via the code (default is not global communication).

Application Model Enhancements

  • Save File Dialog
    • It gives users the opportunity to save files to their computers.
  • Multi Selection in List Box
    • This allows the user to make multiple selections.
  • Merged Resource Dictionary
    • This feature allows you to use externally defined resources. A widely used scenario here is to share same resources between different applications.
  • Assembly Caching
    • Microsoft now cache locally (on user’s machine) framework assemblies on first use.
  • Cached Composition
    • It renders a visual tree of a set of elements to a bitmap and then uses the bitmap to render. This can greatly improve the graphics performance because in this way the element tree is rendered only once.
  • Networking Monitoring API
    • There is a handy event and a property to understand that and to detect a change in the connection.
  • No Additional download of plug-in
  • Out Of Browser Support
    • The new out of browser feature in Silverlight 3 allows you to break free of the browser and run the application out of the browser. Your Silverlight Out of Browser (SLOOB) will have a link on the desktop or the start menu.
    • This works for both Macs and PCs. This will cache the XAP locally, enabling you to launch the SLOOB even if you are offline. Of course this requires that the Silverlight developer code the application to detect offline status and work with data in isolated storage.
    • Luckily Silverlight provides APIs that make this easy for the developer to be offline aware. The SLOOB applications will run with the same security sandbox as the browser and will auto-update when a new version is detected.

Application Framework

Alongside Silverlight 3, the team is releasing .NET RIA Services.  .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms.

The RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.

Connected Systems Enhancements

Binary XML support is introduced which enables Silverlight to communicate with Windows Communication (WCF) services using the Binary XML data format in addition to regular text XML. 

The use of the Binary XML format results in smaller message sizes and better performance in the messaging with the service.

A command-line utility (slsvcutil.exe) is a part of the SDK tools to enable proxy code generation via command-line instead of just the Add Service Reference feature in the Visual Studio tools.

Additional Improvements

  • Better support for high contrast screen situations for colors/text by recognizing all the system colors.
  • Deep zoom additional APIs and improvements on the use of multiple MultiScaleImages.