Réduire la taille des fichiers .xap

Silverlight 3, Réduire les fichiers .xap

Silverlight 3 est sortie ce matin alors je ne résiste pas à vous écrire un petit post pour vous présenter une fonctionnalité assez sympathique. Cette nouvelle mouture apporte la possibilité de mettre en cache certains assemblys.

Pour commencer, je crée un projet Silverlight sous Visual Studio 2008 :

Silverlight 3, Création du projet

Je rajoute une DataGrid, hop la boum ! Je compile …. Mon fichier .xap pèse 205kb.

J’active l’option de mise en cache des librairies dans les propriétés du projet en faisant Project -> Project Properties.

Silverlight 3, Option de mise en cache

Je recompile, hop la boum ! Mon fichier .xap pèse 3.73kb soit 54 fois moins !

Allons jetez un coup d’œil dans le fichier avant et après réduction.

Silverlight 3, Avant réduction

Après :

Silverlight 3, Après réduction

Après réduction, il reste que notre assembly qui garde la même taille et le fichier AppManifest.xaml qui lui n’a pas la mêmes taille dans les deux .xap. Allez hop, on les compares :

1
2
3
4
5
6
7
8
9
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="CacheSilverlight3" EntryPointType="CacheSilverlight3.App" RuntimeVersion="3.0.40624.0">
  <Deployment.Parts>
    <AssemblyPart x:Name="CacheSilverlight3" Source="CacheSilverlight3.dll" />
    <AssemblyPart x:Name="System.ComponentModel.DataAnnotations" Source="System.ComponentModel.DataAnnotations.dll" />
    <AssemblyPart x:Name="System.Windows.Controls.Data" Source="System.Windows.Controls.Data.dll" />
    <AssemblyPart x:Name="System.Windows.Controls.Data.Input" Source="System.Windows.Controls.Data.Input.dll" />
    <AssemblyPart x:Name="System.Windows.Data" Source="System.Windows.Data.dll" />
  </Deployment.Parts>
</Deployment>

Après :

1
2
3
4
5
6
7
8
9
10
11
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="CacheSilverlight3" EntryPointType="CacheSilverlight3.App" RuntimeVersion="3.0.40624.0">
  <Deployment.Parts>
    <AssemblyPart x:Name="CacheSilverlight3" Source="CacheSilverlight3.dll" />
  </Deployment.Parts>
  <Deployment.ExternalParts>
    <ExtensionPart Source="System.ComponentModel.DataAnnotations.zip" />
    <ExtensionPart Source="System.Windows.Controls.Data.zip" />
    <ExtensionPart Source="System.Windows.Controls.Data.Input.zip" />
    <ExtensionPart Source="System.Windows.Data.zip" />
  </Deployment.ExternalParts>
</Deployment>

On remarque qu’une section est rajouté pour les fichiers externes a notre projet qui seront ensuite chargé au démarrage du fichier .xap ce qui évite de les inclure dans notre fichier .xap et donc de le réduire.

J’espère que cette petite nouveauté vous plaira.

À bientôt !

Publié dans .NET, Développement, Silverlight.

Classé dans , , .


0 réponses

Suivez la conversation, abonnez-vous au flux RSS des commentaires..



Un peu de HTML est permis

ou héberger un rétrolien.