Eric Fauquembergue

A propos de: Eric Fauquembergue

Chef de projet technique Microsoft .NET, Consultant Manager et Leader de la communauté .NET Novedia.

Eric Fauquembergue a écrit 1 article sur ce blog

 

Articles de l´auteur

Eric Fauquembergue

Profilage d’applications .NET : echo, echo…

En cette veille de long week-end, vous cherchez sûrement des idées pour combler tout ce temps libre…

Je souhaite signaler à la Terrre entière (enfin disons plus modestement aux visiteurs du blog technologique Novedia) quelques informations intéressantes en écho à mon article d’octobre 2011, où je vous conseillais plus qu’ardemment le livre de Jean Philippe GOUIGOUX à propos du profilage d’applications .NET.

Echo, dis-je, car ce livre vient d’être sélectionné par Red Gate Software (célèbre éditeur de produits de qualité) pour être offert en téléchargement gratuit dans sa version anglaise. Pour la version française, c’est toujours dispo chez Amazon ou directement aux éditions ENI.

Cerise sur le gâteau, l’auteur du livre a animé un WebCast librement accessible sur le sujet (toujours dans la langue de la perfide Albion).

Si avec tout cela vous vous ennuyez ce week-end…

 
Eric Fauquembergue

ProcDump et Visual Studio sont vos amis pour la vie.

Ce billet traitera moins de prospective ou de réactions à l’actualité pour rejoindre les soucis du quotidien de développeur…

Et quel pire souci peut il y avoir qu’un client qui vous appelle en vous disant « le logiciel que vous m’avez livré plante régulièrement, mais de manière complètement silencieuse »…

Vous voilà donc dans de beaux draps. Qu’un logiciel plante, d’accord, mais si je n’ai pas d’informations complémentaires, la situation est fort délicate.

Là, votre meilleur ami s’appelle … ProcDump. Le papa de votre meilleur ami n’est autre que Marc Russinovich, le pape des outils systèmes pour Windows (ex Sysinternals).
ProcDump est un outil en ligne de commande qui va se « brancher » sur un processus qui s’exécute et dumper le contenu de la mémoire et de la pile d’appel selon une ou plusieurs conditions :

  • arrêt du programme, que ce soit proprement ou pour cause d’exception non gérée
  • dépassement d’un seuil de consommation de ressources(CPU, mémoire) pendant plus que n secondes
  • le programme ne répond plus à l’OS

Bref, les conditions annonciatrices d’un problème dans l’exécution d’un code déployé.

A partir de là, on se retrouve fièrement en possession d’un fichier .DMP qui contient donc le contenu de la mémoire, l’état des threads et de la pile d’appels. Et que fait on me direz vous ?

Et bien on appelle notre autre meilleur ami, j’ai nommé Visual Studio 2010.
En effet, VS 2010 est l’outil d’analyse des fichiers DMP (minidumps).

A partir d’un fichier DMP et des fichiers PDB de l’application, il est alors possible de restaurer le processus au moment du dysfonctionnement, et de voir la source du problème (boucle infinie, détail de la pile et de l’exception non gérée).

Petit truc : si vous analysez un fichier de dump produit par une autre machine que la votre, il vous faut suivre le mode opératoire décrit dans cet article, et notamment bien valider l’option qui dit à Visual Studio d’aller chercher ses fichiers de symboles (les fameux PDB) sur un serveur de fichiers (mis à disposition par Microsoft sur un site web).

Plus d’excuses pour des plantages inexpliqués !

 
Eric Fauquembergue

Retour sur le DevCamp Microsoft Windows 8

Novedia était présent lors du DevCamp Microsoft Windows 8 le 29 Mars dernier.

Ce DevCamp marque le lancement d’une longue série d’événements orchestrés par Microsoft autour de Windows 8, dont aucune date de sortie n’est encore officielle, mais dont on voit bien arriver une beta sous peu et une RTM à l’automne. Il ne faudrait pas que le Père Noël soit privé de Windows 8 et de l’avalanche de produits associés (soyons sûr que les constructeurs de PC & tablettes attendent cela avec impatience pour secouer leurs ventes) !

Ce DevCamp s’est déroulé en 4 temps : une keynote, suivi d’un atelier de développement, de sessions focalisées sur certains aspects de la plateforme, puis un final sous forme de retours d’expérience (l’occasion de revoir Mitsu).

Windows 8 ?

Windows 8 représente LE pari de Microsoft pour l’unification des OS dédiés aux postes clients, qu’ils soient « traditionnels » (les bon vieux desktop et laptop), dans l’air du temps (les tablettes) ou plus novateurs (laptops combinant interface clavier et écran tactile, comme l’a déjà essayé HP avec certaines modèles sous Windows 7). A terme, il est fort probable que les téléphones mobiles verront leur OS socle migrer vers un OS dérivé lui aussi de Windows 8 (Windows Phone 8 ?).

Prenons le Metro

La principale caractéristique de Windows 8 est d’avoir 2 shells : un classic shell (une sorte de Windows 7 raffiné), et un modern shell appelé plus communément Metro.

Le développement d’applications pour Windows 8 prend particulièrement sens pour son interface Metro.

Cette interface change radicalement l’expérience utilisateur pour les OS Microsoft. Elle est pensée pour le tactile, pour la fluidité et la rapidité. Elle offre une cohérence d’utilisation entre PC/tablette tactile, téléphone mobile et console de jeux (les sempiternels 3 écrans cités lors des TechDays des 3 dernières années).

Metro, oui, mais pas sans son Store

Windows 8 sera doté un Windows Store pour les applications Metro.
Ces applications natives permettront de tirer partie des riches fonctionnalités offertes par l’OS.

Il est à noter que Microsoft vise à ne pas reproduire les points négatifs des stores concurrents : le modèle économique sera flexible, les revenus des développeurs sera maximisé, et le processus de validation de l’application le plus transparent possible.

Ce Windows Store sera d’ailleurs à terme la market place avec le plus de potentiel de diffusion : à titre d’exemple, il y a actuellement 500 millions de PC sous la seule version 7 de Windows. Avec le renouvellement naturel du parc, on peut espérer le même nombre de clients potentiels pour ce store ! A titre de comparaison, les AndroPhones représentent de l’ordre de 250 millions d’unités.

Et le dév ?

Et quid du développement d’applications me direz vous ?

Vous décrire en détail comment développer une application Windows 8 n’est pas l’objectif de ce billet.
Retenez simplement que toute application Windows 8 repose sur le socle commun WinRT, et qu’on peut développer des applications faisant appel à WinRT dans énormément de langages : en C#/VB.NET + XAML, en HTML5 + JS, voire même en C++ (faut de tout pour faire un monde).

Les applications présentes actuellement sur la Consumer Preview utilisent XAML/C# ou HTML5/JS.
Le développement Windows 8 offre donc une grande liberté de choix, et devrait amener de nouveaux publics vers l’écosystème Microsoft.

Alors trop facile les applications Windows 8 ?

Sous des apparences de simplicité (l’interface utilisateur étant volontairement dans le style le plus dépouillé possible), le développement d’applications Windows 8 cache un bon nombre de subtilités techniques qu’il faut maîtriser :

  • asynchronisme à tous les étages (ce qui donne le ressenti globale d’extrême fluidité)
  • permissions limitées (exécution dans une sandbox),
  • gestion du cycle de vie des applications qui sont mises en hibernation (familier pour les développeurs Windows Phone 7.5, mais pas forcément pour les autres),
  • utilisation intelligente des fonctionnalités de l’OS (contrats, tuiles live),
  • recours au cloud Azure pour le stockage persistent

Au delà de ces aspects strictement techniques, Metro est un nouveau paradigme d’interface qu’il faut appréhender avec soin pour le comprendre et en tirer sa substantifique moelle.

C’est donc plus que jamais le temps de faire travailler main dans la main développeurs et designers !

Des opportunités en veux tu en voilà …

Avec le lancement de Windows 8, le moment est adéquat pour les marques souhaitant profiter d’un buzz marketing pour apparaitre sur le Store et mettre en évidence des cas d’usages novateurs. En tant qu’acteur spécialisés sur les canaux digitaux, Novedia est là pour vous aider à imaginer, formaliser et mettre en place ces projets…

 
Eric Fauquembergue

Retour sur les TechDays 2012, annonciateurs d’une année riche pour les développeurs

Je souhaite ici partager avec vous mon sentiment sur la dernière édition des TechDays, qui s’est déroulée au début de ce beau (mais froid) mois de février.  Fermons la parenthèse météorologique.

Pas de gros scoops, d’annonce tonitruantes de nouveaux produits disponible de suite. Il va falloir patienter jusqu’au 2ème semestre. Mais cela ne signifie pas que cette édition fut insipide… 

Voyons donc…

Oh, une projection de Visual Studio !
Année après année se confirme mon sentiment d’ouverture de plus en plus forte de Microsoft vis à vis des technologies exogènes (ok, disons non Microsoft pour ne froisser personne).

On est passé de certaines éditions de l’évènement où hors de Microsoft, point de salut, à des éditions intermédiaires où l’on commence évoquer par périphrase des marques fruitères, des robot verts. 

Maintenant, on assiste à des sessions où l’on cite explicitement les concurrents, et on trouve même certaines sessions ouvertement destinée à un public qui n’est pas naturellement client des solutions de la maison (je pense à la session Azure sans .Net, à laquelle j’ai assisté avec un collègue Novedien Javaiste).

Cela fait du bien, on est plus proche de la réalité, d’un monde où les technologies se mélangent. De notre monde, en fait.
Autre tendance marquée, l’ouverture à l’Open Source (je pense à l’implémentation d’Apache Hadoop sur la plateforme Azure), à l’interopérabilité (je pense aux démos expliquant comment faire tourner du PHP, du Java, du Node.js sur Azure) et au respect des standards (HTML5, IE 10 …).

D’un point de vue plus technique, j’y ai retenu quelques technologies très prometteuses : Roslyn (on va pouvoir customiser notre expérience de développeur dans notre IDE préféré), Hadoop en mode SaaS. 
2012 s’annonce comme une année charnière pour Microsoft : offensive pour rattraper son retard sur les tablettes (Windows 8), proposer une expérience nouvelle sur les desktops (Windows 8 again), et poursuivre l’effort sur les téléphones mobiles (Windows Phone … 8). 

Le tout en unifiant l’expérience utilisateur via le style d’interface Metro, et faisant dialoguer le tout via le cloud. Le message des TechDays précédents (1 cloud, 3 écrans) se concrétise bien ici.
Il va y avoir du travail pour nous, acteurs du développement logiciel. 

Certaines technologies sont en ruptures : WinRT et HTML5 sur Windows 8, HTML5 dans les navigateurs, JavaScript sur le serveur (!?!). Pour celles qui ne sont pas à proprement parler en rupture, elles sont très séduisantes (C# 4.5, l’asynchronisme à tous les étages).
Microsoft n’est jamais meilleur que quand la concurrence est féroce. Et elle l’est.
Pour finir, mon sentiment général a été d’une réorientation des TechDays vers les développeurs. Entre le lancement du mouvement « Fier d’être développeur », la mention de la citation de Steve Ballmer (le fantasque « Developers, Developers, Developers ») lors de la première pleinière, Microsoft bichonne son public de … développeurs.

Et on ne va pas s’en plaindre.

 
Eric Fauquembergue

Windows Phone 7 : plus de sécurité pour l’entreprise

Tout le monde aime la sécurité. Surtout les professionnels.

Dans le nouvel article de cette série consacrée à Windows Phone 7, j’aborde un autre aspect des bénéfices qu’apporte cet OS pour les utilisateurs professionnels et les DSI : la sécurité.

Sécurité dans la conception de l’OS

L’OS a été construit à partir d’une page blanche, selon la méthodologie Microsoft SDL (Security Development Lifecyle). Cette méthodologie a fait ses preuves sur Windows 7, où le nombre de failles de sécurité a été largement mitigé par rapport à ses prédécesseurs. Le principe de cette méthodologie repose sur l’analyse des menaces, les tests de pénétration et les pratiques de développement sécurisé.

Au delà de cette méthodologie, les approches suivantes ont été mises en place :

  • modèle de sécurité basé sur l’isolation et sur l’utilisation de privilèges les plus bas possibles pour faire tourner les applications
  • protection des données pour s’assurer que les données en transit ou stockées sur le téléphone sont protégées
  • minimisation de la surface d’attaque

Ainsi, une application ne peut voir les données d’une autre application, que ce soir au niveau de la mémoire ou du stockage (isolated storage).

De plus, les applications doivent être écrite dans un langage de programmation managé (Microsoft .NET), ce qui permet de contrôler les APIs utilisées, et empêche la présence de failles comme l’exécution de code arbitraire par dépassement de buffer.

Le navigateur Web est traditionnellement source de failles de sécurité dans les OS modernes.
Ici, la version d’Internet Explorer 9 qui est installée est sécurisée au maximum :

  • tourne en mode sandbox avec les privilèges les plus bas possibles
  • impossible aux applications web d’accèder aux ressources des applications du téléphone
  • impossible d’installer des applications depuis le navigateur
  • pas de mécanisme de plug in (il est donc par exemple ironiquement impossible de voir une application Silverlight à l’intérieur du navigateur !)

Enfin, Microsoft a la capacité technique de pousser sur les téléphones une mise à jour critique si une faille de sécurité critique venait à être découverte.

Sécurité dans le contrôle des application installées

Le seul moyen de déployer des applications est de passer par la Windows Phone MarketPlace; le chargement d’applications par le navigateur web mobile ou le desktop n’est pas autorisé.

Toutes les applications de la MarketPlace sont certifiées et validées avant qu’elle ne soient disponibles au public. Ce processus de validation permet de filtrer les malwares.

Distribution d’applications d’entreprise via la Market Place

Une entreprise a la possibilité de distribuer via la MarketPlace  publique Microsoft des applications réalisées spécifiquement pour un usage interne. Bien entendu, seuls les utilisateurs internes auront accès à cette application sur la MarketPlace.

Pour faire cela, les administrateurs de l’entreprise peuvent créer un espace dédié dans la Market Place et restreindre l’accès aux applications qui s’y trouvent à un public donné.

La mise à jour de ces applications métier se fait de la même manière que pour les applications publiques, ce qui ne perturbe pas les utilisateurs !

Pas besoin, comme sur d’autres plateformes mobiles, de serveurs d’infrastructure supplémentaires pour gérer un canal de distribution “privé”.

Sécurité de l’accès au téléphone

Si le mécanisme de déverrouillage du téléphone n’a rien de révolutionnaire de par le recours à un mot de passe, on échappe au moins aux failles des systèmes révolutionnaires (la reconnaissance faciale d’Android déjouée via présentation d’une photo, pas sûr que cela plaise au DSI).

Il est néanmoins appréciable pour les entreprises de pouvoir aller au delà des sempiternels codes à 4 chiffres, pour autoriser ou imposer des mots de passes plus complexes (plus long, à base de chiffres ET de lettres, avec expiration, avec gestion de l’historique des mots de passe déjà utilisés…). On peut également définir un plafond d’échecs d’authentification au delà duquel le téléphone va se reformater et se réinitialiser.

On notera la possibilité de localiser, faire sonner, verrouiller ou supprimer le contenu du téléphone à distance, via le portail www.windowsphone.com. Pratique et sécurisant en cas de perte ou de vol.

L’écran de verrouillage lui même est également intéressant en terme de sécurité, et de manière assez subtile…
En effet, on y trouve une synthèse des événements qui se sont passés pendant la période de verrouillage (nombre d’appels ratés, nombre de SMS reçus, nombre de mails non lus, prochain rendez vous). Cela évite d’avoir à déverrouiller constamment son téléphone pour vérifier ces informations … ainsi l’utilisateur sera moins tenté de désactiver cet écran de verrouillage !

Pour en finir avec cette partie, je tiens à citer une limitation de l’OS qui se révèle pleinement justifiée pour des raisons de sécurité : impossible de loger une carte SD amovible dans un combiné Windows Phone, donc impossible de se la faire voler ou copier ! Certains téléphones contiennent une carte SD interne inamovible (cachée dans le chassis); si une personne mal intentionnée venait à dessosser le téléphone pour y accéder, cela n’exposerait pas pour autant les données car celles-ci sont chiffrées avec des clés de cryptographie liées au téléphone lui même !

Gestion des droits pour la messagerie et les documents Office

Dans le monde de l’entreprise, il est nécessaire de pouvoir contrôler finement les droits de chacun à transmettre l’information. Il est courant de rendre impossible à un utilisateur de messagerie de copier le contenu d’un email ou de le faire suivre à l’extérieur de l’entreprise .

Par exemple il est en général peu apprécié que les résultats financiers d’une entreprise cotée se retrouve divulguée avant la date officielle. Si ces mécanismes ne sont pas suffisants en soi, ils constituent une barrière qui contribue au contrôle de la sécurité des données de l’entreprise.

Windows Phone respecte le mécanisme de gestion de droits d’Exchange (IRM, Information Rights Management), qui permet de contrôler la distribution du message une fois qu’il a été délivré à son destinataire.

Windows Phone 7 Mango est (selon Microsoft) le seul OS mobile capable de gérer ce type de règles de droits, que ce soit dans la messagerie (son client Exchange) ou plus globalement dans les documents Office.

On emballe ?

De la même manière que nous l’avons vu sur l’aspect productivité, la plateforme Windows Phone 7 est parée pour l’entrerprise de par les nombreux dispositifs de sécurisation du terminal et de ses données.

Pour plus d’informations, vous pouvez vous référer aux différents guides Windows Phone publiés à destination du public IT.

Information de dernière minute !

Un bug a été identifié à la mi décembre sur le traitement des SMS dans le Hub des messages Windows Phone.
Celui ci se matérialise par un Denial Of Service : le téléphone se bloque si on essaye d’afficher un SMS « piégé ».
Y aurait il une malédiction du SMS ? IOS et Android avaient eu un problème similaire, si ce n’est qu’ici, les informations du terminal sont protégées (contrairement au bug IOS où l’envoi du SMS permettait la prise de contrôle à distance).
C’est un excellent test pour les mécanismes que je viens de décrire : nous allons voir comment Microsoft, les constructeurs et les opérateurs vont mettre à disposition le correctif… peut être le premier déploiement « forcé » en urgence  par Microsoft  ?

En tout cas, certains acteurs interprète l’identification et la publication de failles comme le signe d’un gain de popularité de la plateforme… à toute chose malheur est bon !