Live WebCast: Discovering Silverlight 2.0 – Developing RIA Solutions – Advanced Topics (Part 2 of 5)
As I wrote in the previous post this post will be part of a Portuguese WebCasts Cycle and in this case the topic is:
“Developing RIA Solutions – Advanced Topics”
This session had the goal to provide a deep dive on the Silverlight Controls, Browser Integration, Isolated Storage and Adaptive Streaming
1. Controls
This is one of the most talked issued about Silverlight version 1.0 since in this version there were lacking several important controls and that in this version 2.0 are placed by default also with the source code made available. They allow 2 ways to change their looks and they are:
- Styling
- Changing the looks by using only the available properties
- Skinning
- Changing all the elements that represent the control appearance giving a complete creative freedom by change also the elements that are part of the internal of the control.
These controls are made by two parts, that are:
- Logic
- User Controls: public partial class MyUserControl : User Control
- Custom Controls: public class MyCustomControl : Control
- Visual
- User Controls: <User Control> (Ficheiro XAML)
- Custom Controls: <ControlTemplate> (Don’t have any associated XAML and for that reason the layout will be place whenever the control is used by specifying the ControlTemplate.
The controls are also composed by Parts, States and Transitions and their purposes are:
- Create the structure of the control
- Make a clear separation between the Logic and Visual parts of the control
- Parts
- Elements that are part of the Template
- States
- Different ways the controls can look
- Uses VisualState and VisualStateGroup classes from VisualStateManager
- Transitions
- The way that this change is made is by changing from one State to another
- Uses the VisualTransition class from VisualStateManager
2. Browser Integration
The purpose is to allow a perfect interaction between the Silverlight application and the Browser, by considering it as being a first class citizen, with the capabilities to:
- Provide .NET code to be accessed by the Browser by using JavaScript.
- Provide the necessary access, in order that call can be made to the HTML or JavaScript code from Silverlight.
The namespace were all the integration related elements can be found is System.Windows.Browser that contains elements like:
- HtmlPage – allows access to the page in where the Silverlight solution is placed
- System.Windows.Browser.HtmlPage.RegisterScriptableObject(identifier, baseVisualElement)
- ScriptableMemberAttribute – This attribute allow you to mark the methods that can be accessed from the Browser
- [ScriptableMember]
3. Isolated Storage
O Isolated Storage, as it occurs in other types of .NET solutions, it’s a sage place where there can be made IO several changes, like the following:
- Files
- Open, Create, Delete, Exists
- Directory
- Create, Delete, Exists, List contents
- Site
- Remove, Verify existing directories
- Quota
- Check actual, Raise, Check available space
The Isolated Store exists in two levels:
- Site
- there will be only one unique store for all the applications that are part of that site. ex: www.microsoft.com
- Application
- Each application has it’s own unique store. ex: www.microsoft.com/architecture – www.microsoft.com/partners
- Access is restricted to only the application that the store is related
4. Adaptive Streaming
Adaptive Streaming allows developers to encode all media elements in several bit rates, allowing it to depend on the network and CPU capabilities of the client machine.
One of the big advantages is the possibility of using any other Adaptive Streaming mechanisms other them the provided by Silverlight.
To finalize I would only place the resources presented:
- Links
- Hard Rock Memorabilia: http://memorabilia.hardrock.com
- Health Care Solution: http://www.mscui.net/PatientJourneyDemonstrator/
- Community Site: http://Silverlight.net
- Main Product Site: http://www.microsoft.com/Silverlight
- MSDN Center: http://msdn.microsoft.com/Silverlight
- Online Forums: http://Silverlight.net/forums
- Online SDK: http://msdn.microsoft.com/bb188266.aspx
- Top Silverlight Blogs
- Tim Sneath: http://blogs.msdn.com/tims
- Mike Harsh: http://blogs.msdn.com/mharsh
- Joe Stegman: http://blogs.msdn.com/jstegman
- Laurence Moroney: http://blogs.msdn.com/webnext
Here is also available my presentation and the samples made.