[Teched 2007] Windows Vista for Managed Developers: Besides .NET Framework 3.x
Daniel Moth - Developer and Platform Group, Microsoft
Une session au titre alléchant sur le papier car traitant des API .NET habituellement peu utilisées car spécifiques à Windows Vista.
Daniel a directement annoncé la couleur: cela ne sera pas une session sur le Framework 3.0 mais vraiment sur le développement Managed pour Windows Vista.
Windows Error Reporting
Nouvelle expérience utilisateur: après un crash, vista collecte des informations puis il est possible d'envoyer l'erreur mais aussi maintenant de demander à l'application de chercher automatiquement une solution.
Pour voir apparaitre la liste des problèmes, il est possible d'utiliser dans Vista l'application "Problem Reports et Solutions" pour afficher la liste de l'historique des problèmes et éventuellement des solutions lorsqu'elles sont présentes. Depuis cette application, tous les crashs sont répertoriés par application et il est possible de:
- Consulter le détail du rapport de problème
- Envoyer le rapport
- Consulter la solution
- Essayer de fixer automatiquement le problème
Une nouvelle API publique permet d’ajouter des fichiers sélectionnés (tel que le log de l'application) dans le rapport d'erreur et d'en créé un beaucoup plus personnalisé: utilisation de la librairie "wer.dll".
Restarts & Recovery APIs
Après un crash, il est possible de configurer l'application pour qu'elle redémarre automatiquement avec un argument spécifique pour notifier que l'exécution de celle-ci est due à un problème et éventuellement envoyer des informations sur la cause du crash au travers de cet argument.
L'appel Recover de l'API permet quand à lui de déclencher un bout de code spécifié permettant de tenter de réparer l'application en cas de crash.
Restart Manager
Il s'agit d'une API permettant d'arrêter de et redémarrer automatiquement une application en la remettant dans le même étant qu'avant son arrêt. Ceci permet par exemple d'avoir des programmes d'installation qui nécessitent l'arrêt d'une application pour fonctionner: celui-ci peut se faire automatiquement sans impact pour l'utilisateur grâce au restart manager qui permet de piloter le redémarrage d'autres applications (si celles-ci l'autorisent au travers de la restart API vu juste avant).
Preview Handlers
Alors la, une découverte de fonctionnalité pour moi: Windows Vista propose dans son explorateur un "Preview Pane", accessible via l'option layout / preview Pane. Celui-ci permet d'avoir un aperçut de l'élément (fichier, video, email...) sélectionné directement dans un panel de l'explorateur.
Il est possible de créer vos propres "Preview Handler" en utilisant une API spécifique (exemples d'implémentation disponibles dans MSDN magazine: le contenu d'un fichier CSV, un public token key, un pdf, le contenu d'un zip...). Une fois développé, pour l'activer dans Vista, il suffit ensuite de mettre sa DLL dans le GAC et de faire un Regasm.
User Account Control
Il est possible par programmation de faire une demande d'élévation de droits (et donc faire apparaitre la fenêtre de l'UAC) lorsqu'une application a besoin de droits administrateur (exemple pour tester: modifier l'event log): dans ce cas celle-ci s'arrête et redémarre avec un "runas".
Plus d'informations sur l'UAC: http://blogs.developpeur.org/tom/archive/2007/02/21/net-la-v2-du-document-vista-application-development-requirements-for-uac-est-disponible.aspx
En complément, Vista propose aussi des API pour ajouter des fenêtres de dialogues spécifiques, manipuler la SideBar, gérer la batterie, manipuler la recherche et mettre en place un SideShow.
En opposition à celle sur le développement pour Windows 2008, cette session fut plutôt une très bonne surprise de mon coté, car illustrée par un ensemble de démonstrations simples et efficaces.
Lien sur le blog de Daniel pour explications et démonstration de l'ensemble de la présentation: "Vista only features for the managed developer" http://www.danielmoth.com/Blog/2006/11/vista-only-features-for-managed.html