Ce training kit permet de bien démarrer sur la plate forme Windows Azure.
Il est disponible ici
Il contient Labs, Samples et l’ensemble des ressources à télécharger pour démarrer.
Extrait du contenue du training kit:
Les labs sur Windows Azure :
Les labs sur SQL service :
Les labs sur .NET service :
Et les labs sur Live Service :
Et un jolie exemple qui regroupe tout ça:
Et le plus indispensable, un point central qui référence l’ensemble des pointeurs vers tous les SDK nécessaire ! Très très utile.
Bref l’outil indispensable pour bien démarrer avec Windows Azure et Azure Services Platform
Voila c’est fait http://silverlight.live.com est compatible Silverlight 2 RTW
Silverlight Streaming permet d’héberger vos applications et vos vidéos compatible Silverlight gratuitement sur internet et un utilisant une architecture de CDN
Silverlight Streaming peut aussi convertir vos vidéos pour les rendre compatible Silverlight.
Silverlight Streaming permet aussi un accès Url statique de vos vidéos ex: http://silverlight.services.live.com/[Acount ID]/[Application ID]/video.wmv
Silverlight Extensions (SLExtensions) est un projet Français autour de la technologie Silverlight 2. Cette bibliothèque est issu des différents développement Silverlight 2 déjà en production:
http://www.nouvelle-megane.com/ et http://info.francetv.fr/player-video/index-fr.php
Cette bibliothèque est développé par Thierry Bouquain d’UCAYA, Simon Ferquel de Winwise, Romuald Boulanger d’UCAYA et moi même.
Cette bibliothèque est développé pour accélérer vos développements Silverlight 2. Tout le code source est disponible gratuitement et peut être utilisé dans vos projets en production.
Pour cela SLExtensions est découpé en 3 catégories de ressources :
- Des Controles :
- Treeview
- Captcha
- Virtualized stack panel
- Dockpanel
- Flow layout
- Viewbox
- GoogleMap
- Virtual earth
- Change tracker
- Binding comparer
- Bootstrap
- HTML Editor
- Une library riche de class ou d’helper
- CommandService
- Deepzoom helpers
- Mouse wheel listener
- Various comparers
- Google analytics
- Browser history
- 3 Players skinable générique
Le Showcase d’une bonne parties des contrôles est ici : http://www.slextensions.net/
En téléchargement ici : http://www.codeplex.com/SLExtensions
Si vous aussi vous avez développé des contrôles et que vous souhaitez contribuer à ce projet n’hésitez pas a me contacter.
L’équipe des AjaxControlToolkit dirigé par Shawn vient de sortir sur le même model (disponible avec les sources sur Codeplex) des contrôles Silverlight 2.
Ils sont téléchargeable ici : http://www.codeplex.com/Silverlight

Quand une application commence à grossir en Silverlight c’est un seul et même fichier qui grossi. L’idée de ce billet est de montrer comment on peut découper l’application Silverlight en plusieurs XAP et de permettre un chargement différé des assembly contenant, ou des DLL, ou des ressources.
Il faut dans un premier temps découper l’application en Library:
Ici on a une class “ClassExternal” avec une methode “Somme”
namespace SilverlightLibraryExternal
{
public class ClassExternal
{
public int Somme(int i, int j)
{
return i + j;
}
}
}
Puis, de l’application Silverlight il faut référencer la library “SilverlightClassLibrary” mais avec l'option “Copy local” à False
Ce qui permet d’avoir accès a l’espace de nom pour la compilation mais de pas intégrer la Dll dans le XAP de l’application finale.
Il faut donc charger la Dll au moment de l’exécution. Mais le mieux, c’est d’encapsuler cette Dll dans un zip (un fichier XAP) pour respecter le packaging de Silverlight 2.
Pour ce faire on peut utiliser plusieurs utilitaire j’ai pris “Chiron.exe” qui est dans le SDK de la DLR ici : http://www.codeplex.com/sdlsdk
J’ai donc rajouter 2 directives de post-compilation du projet “SilverlightLibraryExtenal”
"C:\Program Files\Microsoft SDKs\Silverlight\sdlsdk\bin\Chiron.exe" /x:$(TargetName).xap
copy "$(TargetName).xap" "$(SolutionDir)SilverlightApplicationLoadExternalAssembly.Web\ClientBin\"
Ce qui donne après compilation dans le répertoire ClientBin deux fichiers XAP
Passons au chargement dynamique de cette library:
La class StreamRessourceInfo permet de lire le contenu du XAP et la class AssemblyPart permet de charger un library dynamiquement.
L’option “NoInlining” de l’attribut “MethodImpl” spécifie que la méthode ne peut pas être “inlined” dans cette méthode il ne faut pas faire référence au Type externe, d’où l’utilisation de la méthode UseLibraryExternal qui fait simplement un Cast.
Une fois que tout ceci est fait on peut activer le bouton qui fait simplement un appel à la methode “Somme” l’avantage c’est que le développeur a l’aide à la saisie au moment du développement et aussi la vérification de type au moment de la compilation. On a simplement différé le chargement de l’assembly.
public partial class Page : UserControl
{
ClassExternal ext;
public Page()
{
InitializeComponent();
//Chargement du XAP
WebClient wc = new WebClient();
wc.OpenReadCompleted +=
new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri("SilverlightLibraryExternal.xap",
UriKind.Relative));
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(ext.Somme(2, 2).ToString());
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
StreamResourceInfo zip = new StreamResourceInfo(e.Result, null);
//Extration de la DLL du ZIP
StreamResourceInfo manifestInfo =
Application.GetResourceStream(zip,
new Uri("SilverlightLibraryExternal.dll", UriKind.Relative));
AssemblyPart part = new AssemblyPart();
//Chargement de l’assembly
Assembly a = part.Load(manifestInfo.Stream);
object o = CreateSLClassLibraryExternal();
UseLibraryExternal(o);
//Activation du bouton
bt1.IsEnabled = true;
}
//Methode non linker statiquement
[System.Runtime.CompilerServices.MethodImpl
(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private object CreateSLClassLibraryExternal()
{
return new SilverlightLibraryExternal.ClassExternal();
}
private void UseLibraryExternal(Object o)
{
ext = (ClassExternal)o;
}
}
Ce qui donne bien deux chargement de XAP :
Et le résultat attendu
Source du projet
Source : Cool Silverlight Trick #3, Downloading Zipped files with the WebClient, MSDN MethodImplAttributes Enumeration
Une nouvelle version du logiciel LifeCam est disponible.
Au registre des nouveautés de la réalité augmenté et de la déformation vidéo temps réel
Je vous le recommande c’est très très drôle ;)
Téléchargeable ici : http://www.microsoft.com/hardware/download/download.aspx?category=ICE

Le coach en français sur Silverlight 2 en 7 ateliers viennent d’être mise à jour pour la version finale de Silverlight 2.
http://msdn.microsoft.com/fr-fr/silverlight/mdsn.coachsilverlight.laboratoire2.aspx
Ces ateliers vous permettent de façon très didactique de découvrir Silverlight 2 au travers d’un développement d’un “Reader Digg”
Ces 7 ateliers abornent les thèmes suivant:
- Le XAML
- Les contrôles de données
- Le Binding
- Les appels de services externe (ici le service Digg)
- Les templates et les styles XAML
- Le design via Blend
- Les fenêtres modales
Source : Ces labs sont la traduction de Christophe Lauer des labs de Scott que j’ai mis à jour pour la version RTW de Silverlight 2
J’ai trouvé un super article d’un développeur qui a écrit un template VS2008 pour développer des Gadget Vista en Silverlight 2.
C’est ici : http://www.lazarciuc.ro/ioan/2008/08/02/creating-a-vista-sidebar-gadget-using-microsoft-silverlight
J’ai simplement mis à jour le template pour qu’il soit compatible Silverlight 2 RTW
Téléchargable ici :
Installation
Création

Solution
La chose la plus importante c’est le référencement de XAP dans le Html : x-gadget:///Fichier.xap
<object data="data:application/x-silverlight," type="application/x-silverlight-2"
width="100%" height="100%" id="silgd">
<param name="source" value="x-gadget:///ClientBin/SilverlightGadgetDocked.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="transparent" />
<param name="windowless" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="images/InstallSilverlight.png" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
Ne pas oublier de référencer les applications Silverlight dans l’application Web (Propriété du projet)
Il ne reste plus qu’a Zipper le répertoire et installer la Gadget
Le résultat dans les différents modes de vision

Si vous utilisez TeamFoundationServer avec des projets Silverlight complex (Des Librairies + une application Silverlight) et que vous utilisez TeamBuild pour faire de l’intégration continue par défaut vous risquez d’avoir ce message d’erreur dans TeamBuild :
error CS0006: Metadata file ‘[filename].dll’ could not be found
En fait les librairies Silverlight dépendantes de l’application Web Silverlight ne sont pas compilé.
Pour résoudre ce problème c’est relativement simple, il faut paramétrer dans l’application Web que le projet Web est dépendant de tous les projets Silverlight (Projet et Librairies) ainsi TeamBuild pourra créer le XAP :)
| Project Web Silverlight Dependencies Avant |
 |
error CS0006: Metadata file ‘[filename].dll’ could not be found |
| Project Web Silverlight Dependencies Après |
 |
|
Recompilation pour un passage en version VSTO 3 SP1 qui permet de logger les erreurs.
http://code.msdn.microsoft.com/OfficePriseEnMain
Pour voir les erreurs de VSTO c’est ici :
To read the event log in Windows Server 2003 and Windows XP
-
In Control Panel, open Administrative Tools.
-
Start Event Viewer.
-
In the list of event logs, select Application.
-
On the View menu, click Filter.
-
In the Event source list, select VSTO 3.0.
-
For installation events, in the Event ID box, type 4096.
-
Click OK to see the filtered view.
To read the event log in Windows Vista and Windows Server 2008
-
In Control Panel, open Administrative Tools.
-
Start Event Viewer.
-
Expand Windows Logs.
-
In the list of event logs, select Application.
-
On the Action menu, click Filter Current Log.
-
In the Event source list, select VSTO 3.0.
-
For installation events, in the Event ID box, type 4096.
-
Click OK to see the filtered view.
Source : http://msdn.microsoft.com/en-us/library/cc442816.aspx
Le tour de France a bien démarré avec la semaine dernière la première ville Toulouse et bien sûre Paris avec l’événement de lancement de SQL2008 par Steve Balmer en personne.
Il reste encore 5 villes Strasbourg, Nantes, Lyon, Toulouse et Marseille pour vous inscrire c’est gratuit et c’est ici : http://msdn.microsoft.com/fr-fr/cc184917.aspx
Pour ma part j’anime avec toute l’équipe de (les Erics, Mitsu, Pascal, Pierre Cauchois et David Rousset) la session plénière développeur le premier jour en début d’après midi. Et aussi deux sessions : Une sur le développement Silverlight et une sur IE8.
Ma session sur le développement Silverlight 2 est le fruit de bonnes pratiques issues des différents développements qui ont été réalisé pendant la phase de beta de Silverlight. Ces bonnes pratiques ont déjà été consolidées dans un projet CodePlex http://www.codeplex.com/SLExtensions et elles seront bientôt accessibles sous forme de WebCast sur le site MSDN France de Silverlight
Voila le résultat de l’application exemple détaillé dans ma session, où tout est réalisé par Binding, par converter et VisualStateManager…
France Télévisions vient de mettre à disposition un player Silverlight pour ne rien rater des JO 2008.
http://sport.francetv.fr/jeux-olympiques-2008/
Grâce au player Silverlight de France Télévisions vous pourrez suivre sur les 17 jours de compétitions les 34 disciplines soit 2200 heures de vidéo de sport en Direct.
Pour ne rien rater vous pouvez vous abonner au programme, suivre les flux d’infos ou le flux de votre sport préféré. Tout ça en simple RSS ou sur Facebook ou sur Twitter ou par MSN Alert…
Ce player à été réalisé par l'agence intéractive Tequila Rapido en partenaria avec Microsoft France (DPE). Je suis donc super fière d’avoir pu contribuer un peut à ce super player full Silverlight qui permettra de suivre les JO en Direct avec vraiment une toute nouvelle expérience.
Pour parler un peut technique l’ensemble des composants génériques qui ont été utilisés pour ce player ont été regroupés sur le projet Codeplex “Silverlight Extensions” Ce projet continuera d’évoluer au fil des prochains projets et bien sûre grâce au différents contributeurs. Si vous souhaiter y contribuer n’hésitez pas a me contacter ou bien Thierry Bouquain (MVP) d’UCAYA le papa du projet.
Un aperçu du contenu de cette librairie est disponible ici : http://labs.ucaya.com/slextensions/
Bon JO et “Allez la France”

PS : Il reste quelques bugs notamment sur l’activité Messenger mais ils seront corrigés très vite.
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}"/>