Archive

Archive for the ‘WPF (Windows Presentation Foundation)’ Category

Le service pack 1 de WPF 3.5 disponible en béta

Microsoft vient de mettre en téléchargement la béta du service pack 1 de WPF 3.5.  La version finale sortira normalement cet été.
Ce SP apporte des corrections de bugs, des améliorations de performances et quelques petites nouveautés. Entre autre :
  • Déploiement :
    • .NET FX : plutot que de déployer la totalité du framework sur les poste, une version ‘poste client’ permettra de ne déployer que les modules utiles sur un poste client type (sans les modules serveur : ASP.NET, …). Le déploiement en sera d’autant alléger. VS2008 SP1 permettra de sélectionner le type de framework pour garantir  les dépendances de vos application. Par la suite, l’installer de ce package client sera personnalisable.
    • Il sera possibile d’executer des applications .NET en Full trust à partir d’un partage réseau !
    • support natif de ClickOnce avec Firefox en plus du support XBap
  • Graphisme :
    • support de l’interaction des elements 2D posé sur une surface 3D,
    • support des shaders HLSL (ShaderEffect) : utilisation du CPU de la carte  graphique pour une accélération maximale.
    • meilleure intégration avec DirectX : utilisation d’une surface Direct3D comme brush par exemple
    • WriteableBitmap : permet de manipuler bit/octet par bit/octer une image (les données bitmaps sont mappé directement en mémoire et accessible au développeur), mais surtout les modifications sont directement visualisé (youpi pour mon application webcam !!!!).
  • amélioration des performances de démarrage (cold startup) des application, ecran de chargement XBAP géré en HTML donc directement visible, support des splash screen directement dans Visual Studio 2008 SP1
  • Recyclage optionnel des controles (notamment pour le VirtualizingStackPanel)
  • virtualisation dans le Treeview
  • des nouveaux controles :
    • une Datagrid (ENFIN !!!)
    • Un ribbon à la Office 2007 100% implémenté en WPF
    • post SP1, un webbroser evolué sera disponible (support de l’intégration WPF/contenu Web … contenu web pouvant etre HTML, Silverlight, XBap, …)
  • D’autres évolutions/corrections :
    • un converter StringFormatter pour gérer la mise en forme directement via un converter natif
    • améliorations du designer WPF de VS2008 (ouf …).
 
Les liens de téléchargement:
 
Comme il se convient, à ne pas utiliser en production c’est une version en cours de développement !

WCF, WPF, Duplex Channel & Threading !

Si votre application WPF doit appeler un service WCF via un duplex channel (tcpBinding par exemple), il est possible que les callbacks générés par le service reste bloqué.
Le callback ne sera traité par le client WPF qu’une fois le timeout de l’appel initial survenu.
 
Ce comportement (normal par défaut) est lié au modèle de threading (mono thread) utilisé. Le thread appelant est bloqué car il vient d’émettre un appel … et le service appelé vient d’émettre un callback vers le client … qui ne peut pas répondre car son thread est bloqué par l’appel qu’il a émis 🙂 (vous me suivez encore là ?   )
Seule la libératon du thread appelant (par le timeout dans le cas par défaut) permet de traiter le message de callback reçu.
 
Pour ne pas se retrouver dans cette situation de verrou mortel, il convient de faire extremement attention aux threads appelant.
Une solution simple (mais à utiliser avec précaution  ) est d’utiliser l’attribut CallBackBehavior en positionnant UseSynchronisationContext à false sur l’objet implémentant l’interface de CallBack.

[

CallbackBehavior(UseSynchronizationContext = false)]
class ObjetImplémentantLesCallbacks : MesContracts.IManagementCallback
{
     // votre code
}

Le successeur de Microsoft Interactive Designer : Microsoft Expression Blend

Ca y est … la nouvelle n’est plus sous NDA (cela fait un moment que je voulais blogguer … mais NDA Regional Director oblige , j’étais tenu au secret).
 
Donc le nouveau nom de Microsoft Interactive Designer est " Microsoft Expression Blend".
Le changement n’est pas que purement nominatif. Le produit a été complètement refondu pour faciliter la création de XAML.
Il est capable d’ouvir vos projet Visual Studio 2005 , mais aussi les solutions.
N’hésitez pas télécharger la béta 1.
 
 

Les valeurs possibles de la propriété Visibility

Pour gérer la visibilité d’un controle, avec les winfows form , on était habitué a 2 valeurs : True(visible) et False(caché).
Ces 2 valeurs se retrouve en WPF pour l’attribut Visibility :
    Visible : idem qu’en anglais 🙂
    Hidden : le controle est caché … mais occupe toujours son espace visuel !!! On se retrouve avec un "trou" dans l’affichage.
 
Une 3e valeur est donc possible qui permet de cacher un control et de libérer l’espace visuel qu’il occupait :
    Collapsed
Cette valeur permet de réorganiser automatiquement le layout des controles (par exemple avec un StackPanel ) 
 
Vous aurez compris qu’un booléen n’est plus acceptable car il y a 3 valeur possible, la propriété Visibility est donc devenu une enumération.