Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

J'ai testé pour vous Windows 7 !

Testez la bêta de la nouvelle version du système d’exploitation : Windows 7 !

l'Annonce Microsoft

"Annoncé par Steve Balmer lors du keynote du CES 2009 de Las Vegas, la bêta de Windows 7 est maintenant disponible sur le site Windows. Cette bêta vous permettra de vous faire une idée concrète de ce que sera  le prochain système d’exploitation de Microsoft: de meilleures performances, encore plus de simplicité, tout en permettant à l’utilisateur professionnel et particulier de vivre de nouvelles expériences numériques ! Découvrez la nouvelle interface, le nouveau centre de gestion des périphériques, la « recherche unifiée » ou encore la fonction « homegroup » pour créer un réseau chez soi ou pour sa TPE en quelques clics . Dépêchez vous seuls 2,5 millions de bêta sont disponibles pour le grand public au niveau mondial ! " (source Microsoft)

Mon avis

Installation sous Virtual PC (ou Hyper V si vous l'avez) 

N'ayant pas de machine libre pour "jouer" avec une bêta j'ai choisi l'option Virtual PC 2007 (que Microsoft diffuse gratuitement, n'oubliez pas le SP1 non plus). Comme W7 n'est pas encore reconnu il suffit lors de la création d'une nouvelle machine virtuelle de choisir Vista. Choisissez un emplacement, une taille raisonnable pour la RAM et le disque (j'ai testé avec 1 Go dédié à W7 et un fichier de 20 Go). Au premier boot la machine virtuelle vous dira comme n'importe quelle PC qu'elle ne trouve pas le boot (ou bien stoppez la recherche de boot réseau si jamais ça cherche trop longtemps). Allez dans les options de VPC et montez le fichier ISO comme un CD. Et là ça boote et ça installe W7 sans l'ombre d'un souci. Une fois l'OS installé complètement, installez aussi (par les menus de VPC) les extensions de la machine virtuelle. Cela permet entre autre une utilisation plus fluide de la souris. Une fois l'OS arrêté, vous pouvez aussi regardez les réglages de la machine virtuelle dans VPC, par exemple la connexion réseau si la votre n'est pas reconnue d'emblée. Pour moi il n'y a eu aucun problème mon réseau a été reconnu tout de suite sans avoir à toucher aux réglages.

Ce que j'en pense

Ceux qui ont refusé d'installer Vista seront soit très contents, soit très déçus. Déçus s'ils s'attendent à "autre chose" que Vista, car W7, comme je l'ai dit maintes fois, c'est avant tout un Vista. Contents, ils le seront si ce qui les gênait dans Vista c'était une certaine lourdeur, car si W7 c'est un Vista, c'est un Vista revu et corrigé, amélioré et surtout plus rapide.

Sous Virtual PC la carte graphique détectée est une S3 Trio, un truc très vieux, vraiment minimaliste, donc pas d'effets 3D ni de jolies transparences. Si vous voulez voir W7 dans toute sa splendeur il faudra l'installer sur une vraie machine et pas en virtuel.

En dehors de l'absence des effets cosmétiques, le test sous Virtual PC a un grand mérite : faire fonctionner l'OS avec peu de RAM, une simulation de disque dur plus lente qu'un vrai disque, une carte graphique pourrie, osons le dire, et assez peu de puissance processeur, le tout pendant que XP ou Vista (selon votre config) tourne en dessous... Pire comme conditions de test c'est dur à faire, même un portable grand public à 400 euros fait mieux aujourd'hui...

Et bien j'ai été très surpris du peu de mémoire consommé (384 Mo) ainsi que de la vitesse d'exécution ! Windows 7 c'est un Vista qui ne passerait pas les contrôles anti-dopage (sauf sur le Tour de France, mais là c'est normal) !

Rapide, peu gourmant, et beaucoup de petites modifications ergonomiques très agréables et intelligentes. C'est un Vista en mieux donc. Tout ce qu'on pouvait reprocher à Vista est parti, et tout ce qui faisait de Vista un très bon OS est resté ou a été amélioré.

Internet Explorer 8 fait partie de la livraison et je n'avais pas eu le temps de le tester jusqu'à là, l'occasion a donc été idéale. Conclusion pour IE8, la même que pour Windows 7 vis à vis de Vista : c'est de l'IE7 en mieux, en plus rapide, et avec des améliorations ergonomiques vraiment bien. On trouve enfin une barre de recherche pour Ctrl-F, seul truc dinosauresque qui m'agaçait vraiment sous IE7.

Côté réseau, mon réseau local a été vu tout de suite sans problème, même entre l'hôte XP et la machine virtuelle Windows 7, ainsi qu'avec toutes les autres machines du réseau. Les petits problèmes rencontrés avec Vista à ce sujet sont donc oubliés.

En terme de vitesse, l'accès et l'affichage des pages Web complexes sous IE8/Windows 7 en machine virtuelle était 2 à 3 fois plus rapide que sous l'OS natif avec IE7 ! Quelle est la part de IE8 et celle de W7 dans ces performances je n'en sais rien, mais tout cela est vraiment rassurant.

Conclusion

Sous ma machine dual boot XP/Vista je suis maintenant très impatient de pouvoir effacer et reformater sous Windows 7 ma partition Vista ! Windows 7 s'avère rapide, peu gourmand, agréable à utiliser. Je conserverais certainement encore ma partition XP pour toutes les vieilleries (et pour certains dossiers clients), mais il est clair que dès la mise sur la marché de la finale de Windows 7 il deviendra mon OS par défaut.

Les liens de téléchargement

http://www.microsoft.com/france/windows/products/windowsvista/enterprise/default.mspx

http://technet.microsoft.com/fr-fr/evalcenter/dd353205.aspx

Visual NDepend un outil d'analyse de code original et puissant

A partir d'une certaine taille le code d'une application devient difficile à maintenir même s'il est bien conçu. De même, la maintenance évolutive oblige souvent à mettre les mains dans un code écrit par d'autres (si ce code est assez ancien, on peut s'y perdre même en en étant l'auteur d'ailleurs !). Auditer un code est ainsi un besoin fréquent dans le travail de tous les jours d'un développeur. Si on effectue des missions d'audit ce besoin devient alors impérieux car il est nécessaire d'entrer rapidement dans un code "étranger" et toujours complexe (je n'ai jamais été appelé en audit pour des logiciels de 20 lignes...).

Les outils d'analyse de code sont ainsi des compagnons indispensables. Hélas ils ne sont pas si nombreux que ça et comme tout ce qui touche la qualité, ils sont un peu "oubliés".

Je voulais ainsi vous présenter un excellent outil : Visual NDepend.

NDepend est puissant, il permet de construire et visualiser des comparaisons, d'auditer la qualité du code, et surtout de mieux visualiser la structure d'une application. Le tout quantitavement (métriques), qualitativement (l'information est pertinente) et graphiquement (le logiciel propose de nombreux diagrammes et schémas permettant de visualiser ce qui est invisible en lisant le code source : structures, dépendances, ...).

NDepend ne se limite pas seulement à l'audit de code, c'est aussi un excellent outil de refactoring.

On notera aussi, côté puissance, l'intégration d'un langage d'interrogation, le CQL (Code Query Language), permettant à la façon de SQL de "questionner" un projet et son code comme s'il s'agissait d'une base de données. La comparaison s'arrête là avec SQL car CQL "comprend" le code alors que SQL ne comprend pas le sens des données qu'il manipule. Cette grande différence confère à NDepend une très grande souplesse et beaucoup d'intelligence.

Par exemple il est très simple de faire des requêtes du type "montre moi toutes les méthodes privées dont le nombre de lignes de code est supérieur à 20", très utile pour repérer rapidement dans un projet les lourdeurs ou la nécessité de refactoring. Une telle interrogation se formule en la requête CQL suivante "SELECT METHODS WHERE NbLinesOfCode > 20 AND IsPrivate".
On peut bien entendu créer des requêtes plus sophistiquées comme rechercher toutes les types qui sont une définition de classe et qui implémentent telle ou telle autre interface !

NDepend est ainsi un outil de grande qualité dont on ne peut que conseiller l'utilisation. Réalisé par Patrick Smacchia, un acteur connu de la scène .NET et Microsoft MVP C#, NDepend est vendu 299 euros en licence 1 utilisateur, c'est à dire pas grand chose au regard des immenses services qu'il peut rendre.

Il y a beaucoup de choses à dire sur cet outil et surtout à voir. Le mieux si vous êtes intéressés est de vous rendre sur le site du logiciel www.ndepend.com où vous pourrez visionner de nombreuses petites vidéos qui vaudront mieux que de longs discours.

Bon refactoring !

 

Un exemple d'application Silverlight "bien de chez nous" !

Le nombre des applications Silverlight augmente de jour en jour mais il est vrai que les exemples de réalisation en français ne sont pas encore légion. J'ai donc décidé de mettre en ligne une petite application de démonstration !

Comme c'est avec les vieux pots, parait-il, qu'on fait les meilleurs soupes, je pense que celle-ci va être délicieuse ! En effet, je suis reparti de l'idée d'un ancien exemple réalisé à cette époque lointaine sous Delphi Win32, un Web Service des codes postaux français qui avait eu un très grand succès (Microsoft l'avait d'ailleurs utilisé pour des Techdays afin de montrer la compatibilité entre un Web Service Delphi et le framework .NET qui venait tout juste d'émerger...).

Il était donc finalement naturel de reprendre cette bonne idée mais en la modernisant radicalement. C'est ainsi que j'ai le plaisir de vous annoncer que la démonstration "Les Codes Postaux Français" est ligne aujourd'hui. Bien entendu il ne s'agit plus seulement d'un Web Service (aujourd'hui réalisé avec WCF), mais aussi d'un frontal réalisé avec Silverlight 2.

Pour jouer avec l'application suivant ce lien : les Codes Postaux Français sous Silverlight.

Vous pouvez aussi consulter ce petit PDF de présentation (dont le texte se retrouve dans la about box de l'application): Codes Postaux Français.pdf (482,07 kb)

Amusez-vous bien !

[EDIT] Le titre de ce billet doit s'entendre dans le sens "enfin une démo en français sur un thème français" ce qui était rarissime au moment de l'écriture de celui-ci, et certainement pas comme une quelconque exaltation de sentiments nationalistes ou franchouillards. Personne ne me l'a dit, mais c'est moi qui, en ce jour de janvier 2010, en relisant le post hors de son contexte me fait la réflexion à moi-même... Citoyen du monde plus que français, ayant en horreur le nationalisme et les débats sur l'identité nationale, qui ne signifie rien en tant que terrien, je tenais à apporter cette petite précision pour lever toute forme d'ambiguité ! [/EDIT]

9 raisons de plus d'utiliser WPF !

Dans mon dernier article paru en décembre, 10 bonnes raisons de choisir WPF (téléchargement ici), je vous proposais sous la forme d'une introduction à WPF ce qui me semblait de bonnes raisons de choisir cet environnement pour vos nouvelles applications. Dario Airoldi de Microsoft Italie nous propose aujourd'hui ses 9 raisons de préférer WPF et ce ne sont pas forcément les mêmes que les miennes, ce qui allonge significativement la liste et vaut un petit détour.

Je ne vais ni traduire cet article (suivez le lien juste au-dessus) ni réviser le mien en ajoutant ces nouvelles raisons, mais voici un résumé des raisons de Dario, elles sont intéressantes :

Raison 1

L'analyste fonctionnel et le graphiste peuvent définir l'interface d'un logiciel par le biais d'un langage commun, XAML, et non plus par des bitmaps et des documents écrits que le développeur devait traduire en code. Avec WPF, développeur et designer peuvent travailler sur une base commune et des documents directement utilisables par les uns et les autres sans "traduction", ce qui diminue grandement les risques de confusion.
[OD]WPF n'impose pas systématiquement le travail d'un graphiste, mais pour obtenir une interface de grande qualité graphique une telle présence s'avère indispensable. Il ne s'agit donc pas d'une obligation de WPF mais bien d'une exigence de qualité de l'expérience utilisateur. Vous avez le droit de faire des choses très laides de type Win32 en WPF si cela vous chante ou vous passer d'un infographiste si vous êtes aussi doué au pinceau qu'en C# ![/OD]

Raison 2

La quantité de code C# ou VB est grandement réduite grâce à WPF. Toute l'interface est gérée soit par du XAML soit par du Data Binding.

Raison 3

La séparation entre l'interface utilisateur et la logique métier est nette et franche.

Raison 4

Le système de routage des commandes de WPF permet de découpler l'implémentation d'une action de l'objet émettant la commande.
[OD] Je n'ai pas développé cet aspect de WPF dans mon article, c'est un tort ! [OD]

Raison 5

Le chargement dynamique de code XAML rend possible l'adaptation à la volée de l'interface utilisateur, par exemple selon le rôle de l'utilisateur, son groupe de travail, son profil...

Raison 6

Les validations côté client et côté serveur sont largement simplifiées par l'architecture de validation du Data Binding et par le système de routage des événements.

Raison 7

Les applications WPF sont plus faciles à maintenir et plus flexibles.
[OD] Cela découle en partie des raisons précédentes et de la nature même de WPF et des outils qui gravitent autour comme Expression Blend par exemple.[/OD]

Raison 8

Le templating des contrôles et les styles permettent de créer des interfaces sophistiquées tout en restant humainement maintenables.
[OD] WPF a été créé en intégrant le graphisme, le multimédia, les animations, la 3D, etc... Avec WPF on personnalise l'interface à l'extrême si besoin tout en utilisant des composants standard et sans nécessité d'acquérir des bibliothèques tierces, impossibles à maintenir, chères et incompatibles entres elles. [/OD]

Raison 9

WPF fonctionne sur la base d'un système de coordonnées déconnecté de la résolution des écrans ce qui rend l'adaptation au matériel bien plus simple.
[OD] Il fut un temps où tout le monde fonctionnait avec "la" norme de l'instant, comme VGA par exemple. Aujourd'hui l'utilisateur a un choix énorme d'écrans aux proportions, tailles et résolutions différentes, sans parler des unités mobiles et autres smartphones ! WPF apporte une solution simple à ce problème. [/OD]

Conclusion

WPF facilite le développement d'applications plus sophistiquées et plus ergonomiques en écrivant moins de code.
[OD] Tout cela est vrai. Mais n'oublions pas que WPF impose aussi une solide formation car la façon de travailler sous cet environnement est très différente de ce qu'on connaissait. Nier cet aspect des choses ne serait pas honnête et c'est ce qui explique que beaucoup de développeurs n'ont pas encore sauté le pas. [/OD]

Pour les détails de l'exposé (sans mes commentaires) je vous conseille la lecture du billet original.

Encore une fois bonne année à tous... et Stay Tuned !

Nomination Microsoft Most Valuable Professional (MVP) 2009 !

L'année commence bien ! J'ai le plaisir de vous annoncer qu'en ce premier janvier 2009 je viens de recevoir ma nomination MVP C#.

Je mesure l'honneur qui m'est fait au travers de cette nomination et je vais continuer à oeuvrer, au travers de ce blog, des articles que je publie et des livres en cours de rédaction, pour mériter ce titre en partageant toujours plus d'information technique mais aussi ma passion en mon métier et ma conviction que les outils Microsoft depuis la naissance de .NET marquent un tournant décisif autant qu'un bond qualitatif jamais réalisé en matière d'environnement de développement et d'experience utilisateur.

Je vous souhaite à tous une année 2009 exaltante, tant sur le plan professionnel que personnel !

Le site MVP où vous pouvez consulter ma nomination