Archive pour la catégorie ‘Non classé’
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…
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 !
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…
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.
Comparaison des meilleurs outils d’intégration du marché (Jenkins, Quickbuild, UrbanBuild/AnthillPro, Bamboo, Apache Continuum, TeamCity, Go/Cruise Control) – Décembre 2011
Depuis quelques années, avec la montée de l’agilité dans la gestion des projets informatiques, l’intégration continue devient de plus en plus une problématique très importante dans les entreprises. Elle induit l’automatisation du cycle de vie des applications informatiques. Les processus de compilation, l’exécution des tests et même le déploiement soit sur des serveurs de développements ou de production sont alors exécutés de manière la plus atuomatique possible à des fréquences variables.
Les moyens de cette automatisation sont, entre autres:
- la mise en place d’outils comme Maven ou Ant,
- l’écriture de tests unitaires à l’aide de frameworks de tests comme JUnit/JMock pour le language Java,
- la réalisation de tests fonctionnels ou d’intégration avec des outils comme Selenium ou SOAP UI.
Ces différents outils et frameworks mis en place au sein des projets sont les fondements de ce qu’on appelle aujourd’hui les usines logicielles. Basées sur les moyens ci-dessus, elles nécessitent le déploiement d’un outil orchestrateur que l’on appelle le serveur d’intégration. Celui-ci permet de lancer de manière automatique ou manuelle à fréquence variable différentes tâches.
Dans ce cadre, j’ai réalisé une étude comparative des outils d’intégration actuels du marché dont j’ai souhaité partager les résultats aujourd’hui. En effet, il n’existe aucune étude sur internet actuellement qui compare les principaux outils d’intégration du marché. Ces informations sont donc intéressantes pour n’importe quel architecte, chef de projet ou développeur qui souhaite mettre en place ce type d’outil dans son entreprise. Cette étude est basée seulement sur les documentations et informations officielles (forums, blogs des éditeurs) et pas sur des tests réels sur des machines.
Voici les résultats basés sur des besoins identifiés comme important pour un outil d’intégration:
Légende du tableau

Tableau comparatif complet






Avantages / Inconvénients


L’ensemble des informations de cette étude comparatives des outils d’intégration actuels du marché au dernier trimestre 2011 se trouve sur les tableaux ci-dessus. Les informations sont plutôt denses et complètes d’où la taille assez petite des tableaux. Ces informations pourront, cependant, certainement vous servir si vous devez faire un choix d’outil d’intégration le plus adapté à votre contexte d’entreprise. Sinon, vous pouvez toujours me laisser un commentaire si vous souhaitez plus d’informations…







