Programmation .NET/Applet Silverlight
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.
Différence
Nersion | Namespace |
1.1 | xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
2.0 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
Défaut | <UserControl x:Class="SilverlightApplication1.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> |
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é.