Tonight I’m doing a talk at “Silverlight developers in Denmark” (SLDEV). The talk will focus on the new features in Silverlight 5 and I promise I will bring lots of demos.
You can download the slides here.
A long requested feature coming with Silverlight 5 is the opportunity to set the default file name in the SaveFileDialog. In previous versions of Silverlight this missing feature have resulted in some bad user experiences, but finally it is here and it is easy to use.
To demonstrate it I have create a demo writing a text file to the computer allowing the user to set the default file name from the very beginning.
When the user clicks the Save-button the SaveFileDialog is shown and the user can save the file locally on the computer. The text from the TextBox is parsed to the SaveFileDialog as the default file name.
In the code I have set the Filter, the DefaultExt and the DefaultFileName on my SaveFileDialog instance. This provide an optimal experience for my user when saving files.
You can download the demo here.
One of the cool new tool features in Silverlight 5 is the XAML debugging features. It is limited to debugging bindings in XAML but that is an extremely useful feature.
I have created a demo showing the few steps needed to debug bindings in XAML. The demo consist of a TextBox containing a number a Button to refresh the number. The number is a random number.
The Text property of the TextBox binds to a property called “Number”. It is a Dependency Property defined in my code-behind. To make the binding work I have set the DataContext of the page to its self.
Whenever the Number property is updated it will automatically update the Text value on the TextBox.
As simple as it is I can spend hours looking for errors if I e.g. misspell the property that we use to bind to. Before Silverlight 5 I would get a hint in the Output window if I had a BindingExpression exception. In Silverlight 5 I can add a breakpoint to the binding directly in the XAML.
Debugging the XAML above I get an exception with a BindingExpression path error and enables me to easily identify the error.
You can download the sample here.