Dot.Blog

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

Astuce du jour : chercher des ebook avec google

Légal / pas légal, that is the question... Sur le Web on trouve de tout, à vous de savoir ce que vous téléchargez.

Je ne suis pas là pour vous faire la morale mais plutôt pour vous donner une astuce sur la syntaxe de google qui permet de retrouver facilement des ebook.

Pour chercher des ebook ajouter tout simplement la ligne qui suit à votre recherche :

-inurl:htm -inurl:html intitle:"index of" +("/ebooks""/book") +(chm pdf zip)

La syntaxe peut être facilement adaptée. On voit que l'astuce consiste à cherche dans les URL la présence de certains mots comme ebook ou book et plus spécifiquement des répertoires de sites Web s'appelant comme ça. On remarquera aussi la fin de la recherche permettant de chercher chm pdf et zip. On peut supprimer zip ou chm si on ne veut que des pdf ou ajouter d'autres extensions qu'on recherche.

Bonne lecture !

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

 

10 bonnes raisons de choisir WPF (nouvel article à télécharger)

WPF cet inconnu... Alors que cette technologie est disponible depuis deux ans elle semble peiner à s'imposer parmi les développeurs. Je me suis demandé pourquoi et je crois que WPF paye un peu son image du "tout graphique hyper looké de la mort", des démos où l'on voit des vidéos danser en l'air sous forme de carrousel, de pages qui se plient comme un livre pour passer d'une fiche à l'autre et autres débauches d'effets spéciaux.

En réalité le développeur "moyen" ne s'y retrouve pas. L'image renvoyée ressemble plus à celle du jeu vidéo qu'à de l'informatique de gestion qui fait le gros des applications "de tous les jours".

Je ne blâme pas ceux qui, par trop enthousiastes, ont pêché par excès en créant et en montrant de telles démonstrations. Après tout lorsqu'une nouvelle technologie vient de sortir on a par force envie de faire voir ce qu'elle sait faire de mieux, c'est naturel. Non, je pense plutôt que c'est sur le plan psychologique que l'erreur a été commise, la même que pour Vista d'ailleurs. Un décalage trop fort, trop rapide, avec une devanture trop graphique qui a fait oublier que derrière tout cela il y a une vraie révolution technique, de vraies avancées.

J'ai donc eu envie d'écrire un article qui montre les grands points forts de WPF et surtout pourquoi cette technologie est de loin supérieure à toutes les autres, dont les Windows Forms encore trop utilisées alors qu'elles se fondent sur des mécanismes interactifs dépassés déjà en place du temps de Delphi 1 Win32 ! Il y a presque 15 ans...

Choisir 10 bonnes raisons d'utiliser WPF a quelque chose d'arbitaire. Mais ce n'est pas grave, cet article se destine à tous ceux qui ne savent pas encore que WPF est parfaitement taillé pour faire des applications "normales", à tous ceux qui pensent que ce n'est "pas fait pour eux" ou pour le style de programme qu'ils écrivent. Il s'adresse aussi à tous ceux qui ont envie de savoir quels sont les points forts de WPF, les nouveaux mécanismes et la nouvelle façon de penser les interfaces.

En un peu plus de 40 pages, ce qui est beaucoup pour un simple article, inutile d'attendre un tour d'horizon complet et ultra technique de WPF, le moindre livre sur la question compte 20 fois plus de pages... Mais si vous voulez rapidement faire un point sérieux sur WPF qui ne soit pas qu'un simple survol, si vous voulez voir du code mais trop, alors cet article est fait pour vous.

Pour le téléchargement (PDF + code source), suivez le lien : 10 bonnes raisons de choisir WPF.

A lire aussi un billet plus récent "9 raisons de plus de choisir WPF"

A voir : Une application exemple sous Silverlight 2.0 

Bonne lecture

Et Stay Tuned !

Patterns & Practices : les guides de bonnes pratiques à connaître par coeur !

Dans la jungle du Framework et de tous ses projets satellites qui sortent au rythme d'une rafale d'AK47 comment un pauvre développeur isolé peut-il intégrer et digérer en quelques heures (en plus de son travail quotidien) des centaines, voire des milliers d'années-homme de librairies, technologies, outils et langages produits par Microsoft ?

C'est une véritable question. Dans mon propre travail de conseil je m'oblige à une réserve de 30% de mon temps uniquement dédié à la veille technologique, c'est à dire qu'un tiers de mon temps n'est jamais vendu, je me le réserve pour apprendre, un luxe indispensable mais coûteux en chiffre d'affaire potentiel perdu. De plus c'est un mode de fonctionnement que seul un dirigeant d'entreprise ou un indépendant peut s'offrir. Et malgré ce privilège tous les jours je mesure l'étendue de mon ignorance sur certains aspects du Framework avec la désagréable impression que plus je rame plus la côte s'éloigne ... Je suis certain de n'être pas le seul à ressentir cette sensation !

Il y a ceux qui ont d'emblée choisi de se spécialiser. Ils connaissent tout ou presque de Windows Forms, de WPF, ou de Silverlight mais ignore tout des dizaines d'autres éléments du Framework. Impasse sur ASP.NET, Ajax, MVC, Entity Framework, etc, etc. Chacun fait alors son petit marché n'ayant au final qu'une vue très restreinte sur le Framework, et, de fait, loupant souvent d'excellentes choses. Hélas une journée n'a que 24h, et pour avoir essayer par tous les moyens de contourner sans succès cette terrible réalité, je peux affirmer que travailler, même beaucoup, même trop, n'est pas forcément la solution. Seule Zenon d'Elée arrivait dans son paradoxe à faire gagner une tortue face à Achille ! Quand l'adversaire est en supériorité, la force brute est inutile, il faut ruser...

Microsoft a conscience de ce problème. Qu'il s'agisse des petites vidéo "how do I", des multiples conférences qui se tiennent régulièrement, de la documentation très fournie de MSDN, de l'excellent magazine MSDN toujours riche d'articles de haute tenue technique, et de bien d'autres actions en faveur de la diffusion de la connaissance sur ses produits, Microsoft fait beaucoup pour nous aider à appréhender l'étendue de sa gamme.

Si cet effort louable est important, on peut toujours en réclamer plus. Par exemple une certaine décentralisation de toutes ces informations fait que peu de gens connaissent tous les "points d'entrée" utiles de ces informations. Gageons que Microsoft en a aussi conscience et que des efforts supplémentaires seront réalisés pour aider le développeur "à s'y retrouver dans les informations qui permettent de s'y retrouver" dans les produits...

Patterns & Practices

Tout cela pour vous parler aujourd'hui des Patterns & Practices. Il s'agit d'un ensemble de recommandations et de code mis à disposition gratuitement sur CodePlex. Bien connaître ces "patrons et pratiques" peut vous aider à mieux tirer partie du Framework sans pour autant y consacrer vos nuits.

Pour obtenir la liste de tous les projets gravitant autour de ce concept de "patterns & practices" allez sur CodePlex et chercher cette expression. Vous pouvez aussi directement accéder à tous les projets pertinents par le tag du même nom (colonne de droite sur CodePlex).

Les projets clé

Il est bien entendu très difficile de créer un ordre de priorité dans tous les projets "patterns & practices", selon ce que vous développez, l'urgence de regarder tel ou tel projet sera plus ou moins grande. Mais je vais tenter une petite sélection de ceux qui, à mon sens, sont à connaître absolument.

App Arch Guide 2.0 Knowledge base

http://www.codeplex.com/AppArch 

Ce projet initié par JD Meier, Jason Taylor et Prashant Bansode regroupe de nombreux documents et vidéos dont le but est d'expliquer "How to put the legos together", ce dont je parlais plus haut : savoir comment utiliser correctement toutes les briques de constructions du Framework pour en faire quelque chose.

The purpose of the Application Architecture Guide 2.0 is to improve your effectiveness building applications on the Microsoft platform. The primary audience is solution architects and developer leads. The guide will provide design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.

Ce projet est certainement le premier point d'entrée que vous devez connaître. Sa vision globale de l'architecture des applications vous aidera à prendre de meilleures décisions.

Application Architecture Guide 2.0 (le livre)

http://www.codeplex.com/AppArchGuide

Ce guide fournit des guides architecturaux pour la création d'applications .NET. Les principaux types d'applications sont étudiés et de nombreuses solutions sont proposées.

Le livre complète la "App Arch Guide 2.0 Knowledge base" décrite ci-dessus.

Enterprise Library

http://www.codeplex.com/entlib

http://msdn.microsoft.com/fr-fr/library/cc467894(en-us).aspx

L'Enterprise Library est une collection de blocs applicatifs qui ont été conçus pour assister le développeur dans son travail. Il s'agit de code mais d'une certaine façon ce code constitue un guide des bonnes pratiques.

Le code source est fourni avec une documentation. EL peut être utilisé tel quel ou bien modifié ou étendu.

Constitué de plusieurs "blocs", EL est une vraie mine d'or. Gestion du caching, cryptographie, accès aux données, gestion des exceptions, logging, sécurité, des solutions pratiques, génériques et éprouvées sont apportées à chacun de ses sujets.

Un "must have" donc. (et surtout un "must understand" !).

Web Client Software Factory

http://www.codeplex.com/websf

le WCSF fournit un ensemble de directives pour les architectes et les développeurs d'applications Web. La factory inclue des exemples, du code réutilisable et un ensemble de guidlines pour automatiser les tâches clé du développement sous Visual Studio. Pour ceux qui connaissaient, WCSF remplace UIP (User Interface Process Application Block). WCSF supporte bien entendu les nouveautés du Framework comme ASP.NET, Ajax ou Workflow Foundation.

A connaître dès lors qu'on veut développer des applications Web...

Composite WPF and Silverlight

http://www.codeplex.com/CompositeWPF

Ce bloc des patterns & practices fait partie du top 5 à connaître et maîtriser. Il intègre code et guidelines nécessaires à la mise en place d'architectures suivant les best practices pour les projets de type WPF et Silverlight. Tout est bon, il faut absolument le connaître !

A noter: ce projet est aussi connu sous le nom de "Prism" (info primordiale surtout pour faire le cador à la machine à café :-) ).

Smart Client Guidance

http://www.codeplex.com/smartclient

http://msdn.microsoft.com/en-us/library/aa480482.aspx

Le Smart Client Software Factory (SCSF) est une autre guide essentiel. Guidelines et code forment un ensemble de composants réutilisables sous Windows Forms autant que WPF ou ASP.NET pour mettre en place une architecture de client intelligents composites.

Je n'ai pas eu encore le temps de plonger dans ce guide, mais du survol que j'en ai fait, il faut très certainement le regarder de plus près, les solutions proposées semblent tout aussi indispensables à connaître que les autres guides de la série "patterns & practices".

Unity

http://www.codeplex.com/unity

Encore un guide que je n'ai pas eu le temps de lire... Les longues soirées d'hiver sont un mythe : il fait nuit plus tôt mais les journées ne comptent toujours pas plus de 24h, cette expression est donc une escroquerie ! :-)

The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.

Dit comme ça, c'est un peu confus... pour tout savoir le mieux c'est de lire (le conseil vaut pour moi aussi) !

WCF Security Guidance

http://www.codeplex.com/WCFSecurity

La mise en place de services via WCF peut se faire de façon très naïve... ou de façon professionnelle, c'est à dire en gérant correctement la sécurité ! Ce guide fait le tour de la question et propose des guidelines autant que du code pour mieux sécuriser les applications communiquantes et gérer correctement les authentifications, les autorisations et toutes ces choses indispensables pour des applications mises en production.

Web Service Software Factory

http://www.codeplex.com/servicefactory

Il s'agit d'une collection d'outils, de patterns, de code source et de guidelines destinés à vous aider à construire des Web services WCF et ASMX rapidement mais en garantissant la meilleure fiabilité possible.

Indispensable comme le reste...

Guidance Explorer

http://www.codeplex.com/guidanceExplorer

Voici peut être un moyen de s'y retrouver un peu mieux parmi toutes les guidelines ! le Guidance Explorer, comme son nom l'indique, est un outil d'exploration des guidelines. Une fois installé il se met à jour via le Web.

Centralisant bon nombre de guides et simplifiant l'accès à l'information, Guidance Explorer est l'une des premières choses à installer à côté de Visual Studio !

MS Health Common User Interface

http://www.codeplex.com/mscui

C'est un peu l'ovni de cette liste et même un vrai ovni à part entière dans tout le Framework et les guidelines. On se demande pourquoi Microsoft a investi dans cette branche très spécialisée plutôt qu'une autre. Le MSCUI est en effet un ensemble de guidelines, de code et de composants permettant de réaliser des application orientées médical. Composants WCF, Silverlight ou autres, c'est un ensemble incroyable quantitativement et qualitativement. Ayant été l'un des pioniers de l'informatique médicale en France avec la gamme de logiciel Hippocrate je connais particulièrement bien la question et j'ai été bluffé par ce que propose MS avec MSCUI. Avec cet outil un bon développeur peut assez rapidement mettre en place des solutions tout à fait honorables capables de concurrencer les principaux logiciels médicaux du marché...

Si le médical n'est pas votre branche, MSCUI ne vous intéressera que peu dans la pratique, mais regardez tout de même comment cela est fait et comment les composants se présentent, ergonomiquement et fonctionnellement c'est un beau travail.

Conclusion

Si ce tour d'horizon n'est pas exhaustif il contient malgré tout le top des guidelines et outils à connaître pour développer sereinement des solutions basées sur des patterns éprouvées. Ne pas réinventer la roue, mettre rapidement en place la bonne architecture d'un projet c'est déjà s'assurer à 50% de sa réussite.

Si les soirées d'hiver ne comportent pas plus d'heures que celles d'été, la froidure incite moins à sortir et à flâner qu'en août, profitez-en pour rester au chaud en vous plongeant dans les Patterns & Practices !

N'oubliez pas ce vieux proverbe qui nous vient du fond des âges :

"L'hiver, qui bouquine Patterns & Practice,
 l'été, produit du code qui glisse !"

Et Stay Tuned !