Programmation .NET/Applet Silverlight

Un livre de Wikilivres.

Les chapitres suivant reprennent le plan utilisé pour les applets Java.

Structure d'une page HTML

Une applet Silverlight est indépendante du serveur et contient du code XML (XAML) et un script écrit dans un langage compatible avec l'implémentation Microsoft de la Common Language Infrastructure.

Silverlight statique

<html xmlns="http://www.w3.org/1999/xhtml">
  <body BgColor="Aquamarine">
    <script type="text/xaml" id="xamlContent">
      <Canvas xmlns="http://schemas.microsoft.com/client/2007">
        <TextBlock  Text="Hello, Silverlight!" />
      </Canvas>
    </script>
    <object id="silverlightObj" type="application/x-silverlight" width="200" height="200">
      <param name="source" value="#xamlContent" />
    </object>
  </body>
</html>

Silverlight dynamique (control)

Une applet Silverlight est un fichier d'extension xap. xap est un fichier zip contenant des fichiers (XAML et DLL). XAML est l'interface vectorielle et dll est le fichier compilé provenant du code source provenant d'un fichier texte dont l'extension est liée au langage utilisé : py (ironpython), vb (Visualbasic), cs (C sharp). Le rendu visuel de SilverlightApplication.xap situé dans le même répertoire que la page HTML peut se faire par plusieurs méthodes :

  • directe dans la balise object ;
  • indirecte dans la balise div associé a plusieurs balises script (2 fichiers .js et une zone de code qui affiche xaml dans la balise div).
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <title>Silverlight Application Framework</title>
        <script type="text/javascript" src="Silverlight.js"/>
        <script type="text/javascript" src="createSilverlight.js"/>
    </head>
    <body BgColor="Aquamarine">
        <div id="silverlightControlHost"/>
        <script type="text/javascript">
            // Find the div by id
            var hostElement = document.getElementById("silverlightControlHost");
            // Create the Silverlight control
            createSilverlight(hostElement);
        </script>
        <object width="300" height="300"
            data="data:application/x-silverlight-2," 
            type="application/x-silverlight-2" >
            <param name="source" value="SilverlightApplication.xap"/>
        </object>
    </body>
</html>

Structure d'une applet Silverlight

Tous les fichiers de l'environnement Microsoft .NET est toujours associé d'un fichier xaml (*.xaml) contenant des identifiants utilisés dans un fichier associé d'extension spécifique au langage utilisé (*.xaml.cs pour un projet C#).

Écriture du code source

Le fichier xaml contenant l'interface wpf est compressé et compilé en un fichier Binary Application Markup Language (BAML) qui est incorporé dans l'assembly. Les fichiers xaml peuvent être édité en utilisant l'éditeur XamlPadXet kaxaml

Écriture du fichier xaml

Le fichier xaml subit de nombreuses modifications entre la version 1.1 et 2.0 concernant le nom de l'espace de nom et les tag racines.

  • La balise racine a pour nom UserControl et pas Window (application wpf).
  • le namespace change selon les versions.

Compilation

La compilation utilise un compilateur et un fichier de compilation et des librairies spécifiques à la plateforme utilisé

  • Novell Suse Monlight

Le projet mono utilise IKVM qui est une machine virtuelle implémenté en .NET fonctionnant sur les implémentation de la Common Language Infrastructure (.NET et Mono). IKVM possède un compilateur java vers bytecode et .NET IL compatible CLI[1]. L'installation semble nécessiter des connaissances en compilation make .


  • Microsoft Windows Framework.Net :

Microsoft utilise actuellement msbuild fournit dans chaque version du framework et utilisé par Visual Studio (projet *.csproj

 C:\WINDOWS\Microsoft.NET\Framework\v2.0.x\MSBuild.exe

Configuration serveur

Il faut configurer les types mime associé aux extensions de fichier sur le serveur (web.config)

extension MIME type
.xaml application/xaml+xml
.xap application/x-silverlight-app
.xbap    application/x-ms-xbap

Succès d'une applet Silverlight

La technologie est très récente, évolue (1.0 et 2.0) et est encore peu connue du grand public. D'un point de vue de l'animation, la solution est plus mature que java qui ne possède pas d'équivalent à la suite Microsoft Expression Studio. D'un point de vue de programmation,la solution est plus mature que l'environnement de développement Flash MX de Macromédia. Face à la puissance d'un Visual Studio ; l'environnement de développement java Eclipse semble faire front avec des versions spécifique pour Flash (Lazlo), Java (Tomcat) et XML.

Vérification de la présence de la machine virtuelle

Le lecteur est téléchargeable à http://go.microsoft.com/fwlink/?LinkID=124807 Le fichier Silverlight.js se charge automatiquement de rafraîchir la page si nécessaire pour que l’utilisateur voie le site une fois le plugin installé.

Références