Les contrôles, le mode déclaratif du comportement JavaScript en XML, le Binding, les contrôles de données tout ça est maintenant disponible sur codeplex avec les sources ici: http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=15511
Les features essentielles pour cette Preview 1:
- Client-side template rendering
- Declarative instantiation of behaviors and controls
- DataView control
- Markup extensions
- Bindings
Le tout dans un fichier de 79ko en mode debug.js (bravo Bertrand LeRoy)
Extrait du Readme:
Compatible browsers
-------------------
This release has been tested on the following browsers (but may work on other browsers such as Internet Explorer 8):
* Internet Explorer 7.0.5730
* Firefox 2.0.0.16 and 3.0
* Safari 3.1.2
* Opera 9.51
Client-side template rendering
------------------------------
<div id="myTemplate" class="sys-template">
<h3>{{ Title }}</h3>
Name: <input type="text" value="{{ FirstName + ' ' + LastName}}" />
Date: <input type="text" value="{{ HireDate.format('MM/dd/yyyy') }}"/>
<!--* if (BirthDate) { *-->
BirthDate: <input type="text" value="{{ BirthDate.format('MM/dd/yyyy') }}"/>
<!--* } *-->
</div>
DataView control
----------------
<body xmlns:sys="javascript:Sys" xmlns:dataview="javascript:Sys.Preview.UI.DataView">
...
<div sys:attach="dataview" dataview:data="{{ someArray }}">
<h1>{{ name }}</h1>
<p>{{ description }}</p>
</div>
Bindings
--------
<input id="name" value="{binding name, mode=twoWay}"/>
Silverlight 2 beta 1 permet d'appliquer un Style à un contrôle. Corrinab nous en donne plusieurs exemples. Mais a chaque fois le style doit être soit dans les ressources du XAML du contrôle, soit en ressource du XAML de l'application. Donc pour modifier le style, il faut re-déployer l'ensemble de l'application. L'idée de ce billet et de montrer comment on peut charger dynamiquement ces ressources et les appliquer dynamiquement au chargement de l'application. Silverlight 2 beta 1 ne support pas le changement dynamique de style pendant l'exécution. Il ne peut être fait qu'une seule fois au chargement de l'application.
- Etape 1 : Création d'un fichier de ressource
Le fichier de ressource ici permet de styler un bouton (Texte du bouton en Rouge)
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Eyedea.Controls;assembly=Eyedea.Controls">
<Style TargetType="Button" x:Key="ExtStyle">
<!-- Common properties -->
<Setter Property="Foreground" Value="#FFFF0000" />
</Style>
</ResourceDictionary>
- Etape 2 : Création d'une interface utilisant ce style. (C'est ce style qui sera remplacé après chargement dynamique)
App.xaml (Style pour un boutton (Texte du bouton en Bleu)
<Application.Resources>
<Style TargetType="Button" x:Key="ExtStyle">
<!-- Common properties -->
<Setter Property="Foreground" Value="#FF0000FF" />
</Style>
</Application.Resources>Page.xaml
<UserControl x:Class="SampleDR.Page"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<Button Width="150" FontSize="30" Height="80" Content="Test" Style="{StaticResource ExtStyle}" />
</Grid>
</UserControl>Le bouton apparaît avec le texte en bleu (style de l'application)
L'idée maintenant est de remplacer ce style dans les ressources de l'application.
- Etape 3 : Chargement du XAML contenant les ressources de style. Il faut faire ceci dans Application_Startup
private void Application_Startup(object sender, StartupEventArgs e)
{
WebClient data = new WebClient();
data.DownloadStringCompleted += new DownloadStringCompletedEventHandler(data_DownloadStringCompleted);
data.DownloadStringAsync(new Uri("ExternalRessources.xaml", UriKind.Relative));
}
void data_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
ResourceDictionary rds = (ResourceDictionary)XamlReader.Load(e.Result);
this.Resources.Remove("ExtStyle");
foreach (Object o in rds)
{
this.Resources.Add("ExtStyle", o);
break;
}
// Load the main control
this.RootVisual = new Page();
}
Au chargement on supprime la ressource "ExtStyle" des ressources de l'application pour la remplacer par la ressource qui vient d'être chargée.
On obtient bien un bouton avec le texte en rouge. C'est à dire avec un style provenant d'un fichier XAML externe au XAP et chargé dynamiquement.

Depuis la mise a disponibilité de Silverlight 2 au Mix08 il y a eu beaucoup d'articles, de blogs sur des fonctionnalités de Silverlight 2. L'idée de ce post et de regrouper ces liens pour avoir une base d'exemples et bien débuter sur Silverlight 2.
Les incontournables:
Le Contrôles:
- Plusieurs nouveautés dans Silverlight 2 mais l'une des principales c'est l'apparitions des contrôles. Le modèle de développement des contrôles est bien sûre extensible et pour ce faire Microsoft fournis l'intégralité des sources des contrôles avec leur test unitaires.
- On peut appliquer un template et un style a ces contrôles. Corrina la designeuse en charge du style de base de Silverlight a mis en ligne 3 autres styles:
- Un contrôle particulièrement innovant c'est bien sûre le MultiScaleImage il permet de faire ça : Démo Hard Rock pour ce faire il vous faut l'outils de composition et un exemple de code source pour les manipulation de base du contrôle MultiScaleImage
Une version online pour partager vos photos : PhotoZoom
- Bien sûre le fameux Datagrid (Attention vous ne l'avez pas par défaut dans un projet Silverlight il faut ajouter une référence a : "System.Windows.Controls.Data").
Le DataBinding, Linq et XLinq
Réseau
- Support des sockets
- Support des appels Cross-Domain
Integration Html
- Capacité de Silverlight 2 d'appeler du code JavaScript et inversement, du code JavaScript d'appeler le code .NET. (Un exemple d'intégration avec une HtmlTextBlock en Silverlight)
Les deux dernières qui étaient présentent déjà dans la version 1.1
- OpenFileDialog
- LocalStorage
Sans oublier les labs de ScottGu sur Silverlight 2 bientôt en VF (merci
Christophe Lauer)
Plein d'autres ressources vont arrivées sur Silverlight 2. Je vais essayer de faire le tri et de continuer à vous faire une petit synthèse de temps en temps.
PS : Attention on dit bien "Silverlight 2" et non SL 2 et encore moins SL 2.0 :)
Un ruban personnalisé pour Word, Excel et Powerpoint avec des liens pour vous faciliter l'utilisation d'office 2007 et rien manquer de l'actualité française autour de ces produits.
Notament un lien direct vers Forgs et vers la Xamala
Téléchargement ici:
https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=OfficePriseEnMain&ReleaseId=217
Le tout avec le code source :
http://code.msdn.microsoft.com/OfficePriseEnMain Word
Excel
PowerPoint
