insideIT.fr : le blog des architectes IT de SFEIR

Aller au contenu | Aller au menu | Aller à la recherche

Tag - Silverlight 2

Fil des billets - Fil des commentaires

vendredi 27 juin 2008

Isolated Storage..Merci mais c'est quoi?!

Pour des raisons de sécurité, l’exécution des applications Silverlight se fait dans un environnement très restreint (impossible d'accéder à la base de registre, au système de fichiers, etc.), on parle alors d’une "sandbox" (bac à sable).
Et comment faire pour gérer un cache?
Silverlight nous offre un emplacement d’1Mo(extensible) pour stocker des informations sous forme de textes ou de fichiers (ex : les paramètres de login, les préférences utilisateurs…), on parle de "Isolated Storage" ou stockage isolé.
C’est comme des cookies d’un navigateur web finalement ?! Oui et non: le principe est le même, mais les caractéristiques pas vraiment ! à titre d’exemple :
Un cookie est lié forcément à un navigateur,l’Isolated Storage est lié à l’environnement, pas au navigateur (il ne faut pas oublier que Silverlight est multi-navigateur).
Un cookie ne peut pas dépasser 4ko, l’Isolated Storage propose 1Mo par défaut (extensible).
Un cookie contient des caractères alphanumériques, l’Isolated Storage peut contenir des fichiers(textes, images…)
Maintenant, mettre un peu la main à la pâte ça vous dit?
Tout d'abord, les gens qui ont déjà testé le fonctionnement d’Isolated Storage avec la beta 1, je tiens à leur dire qu’il ya eu quelques relooking avec la beta 2. Exemple:

  • System.IO.IsolatedStorage.IsolatedStorageFile.TryIncreaseQuotaTo(Int64) renomée: System.IO.IsolatedStorage.IsolatedStorageFile.IncreaseQuotaTo(Int64).
  • System.ApplicationException supprimée.
  • IsolatedStorage.ApplicationSettings renomée: IsolatedStorage.IsolatedStorageSettings.

La liste complètes des changements (Silverlight 2 Bêta 1 vers Silverlight 2 Bêta 2).

L’Isolated Storage est implémenté dans la mscorlib.dll (le namespace est System.IO.IsolatedStorage).

Un exemple concret vaut mieux qu’un long discours:
L’objectif et de savoir stocker des informations dans un IsolatedStorage et de les affichées à la demande.
Le formulaire en Xaml :
<Grid Background="Azure" Height="444" HorizontalAlignment="Stretch" Margin="82.9160003662109,8,4,0" VerticalAlignment="Top" Grid.Column="1" Width="415.584">
<TextBlock HorizontalAlignment="Left" Margin="34.0839996337891,12,0,0" VerticalAlignment="Top" Width="57" Text="Entrez text:" TextWrapping="Wrap" Foreground="#FF3A392F" Height="22"/>
<TextBox HorizontalAlignment="Stretch" Margin="111,8,8,0" VerticalAlignment="Top" TextWrapping="Wrap" x:Name="text" Height="26"/>
<Button Height="19.333" HorizontalAlignment="Stretch" Margin="8,84.6669998168945,147.167999267578,0" Click="Affiche_String" VerticalAlignment="Top" Content="Afficher IsolatedStorage" x:Name="affiche" d:LayoutOverrides="Height"/>

La classe à utiliser est IsolatedStorageSetting (les informations à manipuler ici sont de type : string et bool) :
IsolatedStorageSettings test = IsolatedStorageSettings.ApplicationSettings;
test.Add("test", text.Text);
test.Save();
text_result.Text = (string)test["test"];
test.Clear();
Comme vous pouvez le constater le principe est très simple : une hash-table (association clé-valeur).

L’objectif de cet exemple est de stocker des données dans un fichier dans l'IsolatedStorage et de les afficher à la demande. Pour cela on utilise entre outre la classe IsolatedStorageFile (pour plus de détails, voyez le code source).
Donc et comme vous avez constaté, l’utilisation de l'IsolatedStorage est relativement simple…bonne pratique ;).

Le code source(ExempleIsolatedStorage.zip)

Silverlight 2
Silverlight 2 msdn
IsolatedStorage

 

vendredi 20 juin 2008

Conférence Technique Silverlight 2

touareg_logoDans la lignée des "Mercredis du développement" sponsorisés par l'université Microsoft s'est tenue ce jeudi (sic) une conférence technique sur Silverlight 2, dans les locaux de l'EPITECH. Le niveau un peu léger au début s'est vite intensifié. De nombreuses notions ont été abordées dont certaines assez pointues et j'y ai eu la réponse à quelques questions pour lesquelles internet ni la MSDN ne m'avait été d'aucun secours. Merci donc à Christophe Lauer et Pierre Lagarde. Bravo aussi au petit collectif de l'école EPITECH et du projet Touareg qui ont fait une démonstration très convaincante. Mais entrons sans plus attendre dans le vif du sujet.

1ère partie : Généralités et nouveautés de la version 2 Beta 2 de silverlight.

Présentation générale de Silverlight

Silverlight 2 s'affirme plus que jamais comme la plateforme RIA par excellence. C'est une plateforme .Net dont le but est de permettre à tout développeur .Net de devenir un développeur RIA efficace, sans effort.

Bénéfices de Silverlight

Nouveautés de la Beta 2

  • UI Framework
  • Rich Controls
  • Networking Support
  • Rich Base Class Library
  • Deep Zoom

DeepZoom

Une idée assez excellente a été abordée lors de la présentation: celle de pouvoir considérer Deep Zoom comme fondement applicatif. Une application peut être portée par Deep Zoom et construite autour de lui. Un exemple existe déjà : le site du ReMix Corée.

Par ailleurs Deep Zoom a été utilisé de façon massive sur le site de lancement de la nouvelle Laguna (site réalisé intégralement en silverlight).

SandBox

Silverlight est "SandBoxé". Petit rappel sur les implications :

  • Safe isolated storage
  • Control: File Upload client.
  • Support des requêtes cross domain

Isolated Storage

Ce nouveau concept est assez pratique et permet pas mal de choses. On peut gérer des données en local, sans accéder aux ressources de la machine, donc pas de danger de ce côté là. Le storage est persistant hors session, comme les cookies. L'application peut être très autonome. Mais cela permet aussi l'upload de fichiers très volumineux en toute sérénité puisque celui-ci peut-être interrompu et repris de façon transparente.

Un exemple a été donné d'un magasin de photos en ligne dont l'application profite de l'isolated storage. L'application permet de préparer son album photo en local avant envoi de fichier. Les photos ajoutées à l'album sont d'abord recopiées dans l'isolated storage afin de ne pas toucher aux originaux et le traitement est fait à partir de là. Cela diminue le volume à transférer au serveur et on profite de la puissance de la machine client. Les variantes ne vont sûrement pas tarder à pleuvoir.

Notions de programmation

  • Petit rappel de la notion de classes partielles utilisées particulièrement dans Silverlight. En effet, le fichier XAML et le fichier de code behind sont basés sur ce principe. Le fichier XAML faisant office de déclaration des éléments de design. C'est le compilateur qui recole les morceaux. Donc pas de troisième fichier ni de gros pâté de déclarations en en-tête de fichier.
  • Ne pas oublier que les appels au serveur sont obligatoirement asynchrone, ce qui est une bonne chose.

Notions de design

On a bien distingué la différence entre "Styling" et "Skinning".

  • Le style s'applique a un élément à partir de propriétés d'affichages.
  • Le skin lui permet de modifier l'arbre visuel d'un élément. On peut par exemple modifier complètement l'apparence d'une liste box, en allant chercher ses différents sous-élément, comme l'ascenceur pour le déplacer ou le transformer intégralement. C'est assez impressionnant.

A ne surtout pas manquer :

Le blog de la designeuse officielle : UX Musing de Corrina B, qui présente tout ça avec des exemples de skin excellents.

2nde partie : Présentation du projet Touareg

Un seul mot : enthousiasmant !
Le site du projet est à voir absolument. Il s'agit d'un projet de plateforme applicative ou autrement appelé bureau nomade comprenant pas moins de 8 modules. Un projet titanesque, réalisé par des étudiants. Chapeau bas messieurs !

Après-midi Labs :

2 labs étaient proposés pour faire le tour de la programmation en silverlight. Cela valait largement une journée de formation.

Les slides des présentations :

http://blogs.msdn.com/clauer/archive/2008/06/19/les-slides-de-la-journee-d-ateliers-silverlight-2-a-l-epitech.aspx

vendredi 25 avril 2008

DeepZoom, Silverlight 2

DeepZoom est la nouvelle technologie intégrée dans Silverlight 2, grâce à cette technologie on peut piloter, naviguer et zoomer nos images d’une façon très fluide sans perdre la qualité de l’image …L’implémentation de DeepZoom est très facile (une ligne de code, <MultiScaleImage> comme élément dans le fichier XAML )…
Dans ce billet je vous liste les démos les plus impressionnantes…
Analyser une image aérienne

Gestion photos 1
Gestion photos 2
PicturePuzzle

une liste sur le site officiel
Cool…Et techniquement ?
En C#, c’est possible et c’est facile
Introduction DeepZoom Silverlight en vidéo

vendredi 4 avril 2008

Altaide Dev Drink III, Silverlight 2

Il s’agit d’une occasion de réunir des développeurs, décideurs et curieux autour d’un sujet portant sur le développement.
Après les deux premières sessions qui avaient évoqué les technologies PHP SOA et Flex, c’était donc au tour de Silverlight 2.
SFEIR était présente et dans ce billet je vous en livre ici les grandes lignes.

Cette présentation était assurée par Pierre Lagarde et Christophe Lauer, en charge des Relations Techniques avec les Développeurs chez Microsoft France.

La conférence a durée 2 heures, les points essentiels abordés ont été:
- Les nouveautés de Silverlight 2 par rapport au Silverlight 1.0
- Les possibilités offertes par Silverlight 2
- Les contraintes techniques (portabilité, espace mémoire… )
- Quelques démonstrations pour montrer la puissance de Silverlight 2
- Quelques scoops sur la version Beta 2

Support de la présentation: http://cid19b56d5eabe30104.skydrive.live.com/self.aspx/PresentationsPubliques/Altaide%20Dev%20Drink%20III.zip

En moyenne c’était une bonne présentation de Silverlight 2 (la première du genre en français !)…Une remarque pour l’organisateur : attention au climatiseur, il fait pas mal de bruit ;-).

Quelques liens sur la conférence:

http://blogs.msdn.com/clauer/archive/2008/03/28/support-de-la-pr-sentation-silverlight-2-l-altaide-dev-drink-de-hier-soir.aspx

http://blogs.msdn.com/pierlag/

http://blogs.msdn.com/clauer/

http://www.flickr.com/photos/altaide/sets/72157603865307468/

http://blogs.msdn.com/clauer/archive/2008/03/18/alta-de-dev-drink-iii-silverlight-2-en-exclusivit-paris-le-27-mars-en-soir-e.aspx