Improvements have been made to the XAP compression within the Silverlight tools. Controls
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.
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.
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.
Represents a content control that supports navigation.
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.
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
UI Framework Enhancements
- 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
A 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
- 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.
Local Connection API
- 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.
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.
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.