Les liens de la semaine – Édition #35

Développement

.NET

Technologie

Web

Science et autres

Astuce IIS du jour : Comment identifier facilement l’application pool de son processus w3wp.exe

L’une des difficultés associées au développement d’applications ASP.NET est lorsqu’il est temps d’héberger plusieurs applications sur le même serveur. En fait, dans le meilleur des mondes, ce n’est pas si compliqué que cela à mettre en place. Le serveur web IIS offre les outils nécessaires afin de faire efficacement la gestion de plusieurs sites sur le même serveur.

À vrai dire, il est conçu autour de ce principe. Vous pouvez héberger le nombre de sites que vous désirez. Votre seule limite est votre capacité en mémoire, puissance processeur et espace disque.

Toutefois, cette difficulté n’est pas au niveau de la capacité d’hébergement. Là où je veux en venir, est relié à cette capture d’écran :

w3wp_pool
Votre gestionnaire de tâche habituel

Ce que vous voyez là, c’est ce que le développeur ASP.NET ou l’administrateur de serveurs tente de consulter lorsqu’il essaie de savoir pourquoi son serveur est sous une charge inhabituelle. À première vue, ces processus w3wp.exe sont presque presque anonymes.

À partir de là, pour déterminer l’identité de votre processus w3wp.exe, vous devez vous fier aux techniques suivantes :

  1. Tuer le processus fautif en espérant que, lorsqu’il reviendra en vie, les choses seront réglées. Cette technique est aussi appelée la Pensée magique.
  2. Noter le PID (le Process Identifier) du processus en question et aller consulter, dans la console IIS, les détails pour ce processus.

En ajout au point #2, une fois que vous avez votre PID en main, vous devez compléter ces étapes:

  1. Ouvrir la console IIS et sélectionner votre serveur dans le panneau « Connections » situé à gauche.
  2. Visiter le module de gestion « Worker Processes ».
  3. Retrouver, dans la liste, le processus en question et passer aux actes.

Le gros bon sens

Je tiens à vous rassurer. Vous n’avez pas lu ce billet en vain. Il y a une technique beaucoup plus simple pour arriver à vos fins.

Elle est tellement simple que vous allez vous dire : pourquoi je ne l’ai pas su avant?! Moi, c’est-ce que je me suis dit.

Alors, vous allez  faire les clics suivants, en même temps que vous allez lire ceci. Commençons :

  1. Ouvrez le gestionnaire de tâche, comme à l’image affichée plus haut dans ce billet.
  2. Clic droit sur l’en-tête de la liste des processus et sélectionnez l’option Select Columns.
  3. Activez l’option Command line et cliquez sur OK.
  4. Allez à l’extrême droite de la liste de processus et faites en sorte que la colonne Command Line soit ouverte à son maximum.

Gestionnaire de tâches avec l'option Command Line activé

Ce que vous avez devant vos yeux est la ligne de commande utilisée par le système d’exploitation pour démarrer votre tâche. Dans ce cas-ci, il s’agit d’une commande qui ressemble à celle-ci : C:\Windows\System32\inetsrv\w3wp.exe. Ce qui vous intéresse est le paramètre de commande nommé ap. AP est l’acronyme pour, vous me voyez venir, Application Pool.

Votre tête en ce moment.

Voilà! Tout a été dit, inutile de me remercier.

Mes premières expériences de développement avec WinRT et Windows 8

Pour un développeur, le principal attrait de Windows 8 est la possibilité de développer des applications de type WinRT. Ces applications sont celles qui utilisent la nouvelle approche visuelle des « Apps » que l’on peut voir sur le Windows Store.

Cette approche est à source même de la nouvelle identité que Microsoft veut donner à Windows. L’homogénéisation du visuel des applications permet de donner ce même ton uni à travers les différentes plateformes que supporte Windows. Les plateformes supportées passent de l’ordinateur de bureau, à la tablette en passant par le téléphone intelligent.

Du côté développement, WinRT prend en charge le développement avec un éventail large de langages de programmation. Il est possible de développer sur cette plateforme avec C++, VB.NET, C#, JavaScript et même TypeScript.

Là où l’aventure débute est au moment que j’ai su qu’il était possible de développer des applications WinRT en HTML5/JavaScript. Il est vrai que je proviens d’un monde C#. Toutefois, le web reste mon principal univers. L’idée est donc d’évaluer ce que représentent l’effort et la facilité de développement d’applications Windows Store en utilisant cette combinaison.

À première vue, l’idée de concevoir une application Windows 8 en écrivant du HTML 5 et du JavaScript m’a paru saugrenue. Toutefois, après quelques minutes de lecture, on peut apprendre que les engins qui propulsent ces applications sont ceux qui alimentent la plus récente version d’Internet Explorer. Ce qui est à comprendre de cela est que l’application Windows RT va se comporter dans le même cadre que celle qui s’exécute sur une page web.

Mon initiation au monde du développement Windows RT s’est accomplie grâce à ces guides, disponibles sur le site MSDN. Vous passerez à travers toutes les étapes vous permettant de configurer votre environnement de travail et de développer vos premières lignes de code. D’ailleurs, vous pouvez suivre où j’en suis rendu à travers mon repository Github.

Définitions

Windows RT : Le nom de code donné à la version de Windows pouvant s’exécuter sur la plateforme ARM.

WinRT : Aussi appelé Windows Runtime. Est le nom de code donné aux applications nouveau genre pour Windows 8. Elles sont aussi associées au terme « Windows Store apps ».

Impressions

Dans le passé, j’ai contribué à des projets d’applications s’exécutant sur Windows avec .NET. Pour être honnête, l’expérience a été assez linéaire et beaucoup trop drabe à mon goût.

À ma grande surprise, l’expérience de développement fut très agréable. Voire même très rafraîchissante.

Ayant décidé de prendre le penchant HTML5/JavaScript des applications Windows 8, j’avais quelques réserves quant à la qualité de l’intégration de l’API WinRT. Cette impression se base sur le fait que, habituellement, cette combinaison est typiquement réservée au développement web et non au développement d’applications bureau ou mobile.

Il faut savoir que cela aussi concorde avec les avancées qui ont été mises de l’avant  dans Visual Studio 2012. L’outillage entourant le développement JavaScript a été beaucoup amélioré. Il est même possible d’avoir un Intellisense décent et même de pouvoir utiliser des breakpoint à travers son JavaScript.

L’autre facteur que j’ai apprécié en étant néophyte, les guides d’introduction et les bonnes pratiques au développement Windows 8 sur MSDN sont assez bien conçus. Toutefois, la documentation de l’API fait un peu d’anémie côté exemples d’utilisation et souvent une priorité est donnée au C# sur les bouts de codes.

Conclusion

Mes premiers pas avec le développement d’application Windows m’ont assez emballé pour me convaincre de pousser un peu plus loin mon petit projet d’application. Ce qui m’intéresse le plus est l’accessibilité de la plateforme de développement.

Après tout, j’ai déjà ma licence de Windows 8 et Visual Studio est à portée de main. Il ne faut pas oublier le 49$ de frais pour avoir accès au Windows Store en tant que développeur.

Ne vous en faites pas, je vous tiendrai au courant des avancements de ce projet prochainement à cette même antenne!

Windows 8 – Mes premières impressions sur la nouvelle interface utilisateur

Windows 8 est sur les tablettes depuis octobre passé. Il s’agit de la plus récente mise à jour majeure du système d’exploitation depuis Windows 7.

Les changements importants sont au niveau de l’interface utilisateur. Microsoft a introduit le concept « Metro » en revampant complètement le visuel du menu démarrer. Le concept est basé sur une grille dans la quelle vos applications vont s’insérer sous une forme de tuile.

En plus de ces changements, il y a un paquet de nouveautés et de support pour le matériel informatique nouvelle génération. Vous conviendrez avec moi que je ne suis pas pour énumérer chacune d’entre elles.

Comme beaucoup de gens dans la période des fêtes, je peux profiter de quelques jours de vacances. Avec un peu de temps libre devant moi, j’ai décidé d’entamer une tâche que je repoussais depuis déjà un moment : Réinstaller mon système d’exploitation.

S’il y a une chose que je n’aime pas faire, c’est d’avoir à refaire la configuration de mon ordinateur principal. Avec la venue d’un processus d’installation simplifié, la tâche est moins ardue avec Windows 7. Toutefois, il y a un ou deux imprévus qui vont vous gâcher la journée. Cela est sans compter le simple fait d’avoir à prendre le temps de tout réinstaller vos logiciels préférés.

Pour ma part, je devais passer à l’action car la date de ma dernière réinstallation de Windows datait déjà d’un bon moment. Cela faisait en sorte qu’il était rendu excessivement lent!

Processus d’achat

La façon, au goût du jour, de faire l’achat de Windows 8 est de le faire par un téléchargement à partir d’une application fournie par Microsoft. Le processus entier se fait par cette application.

Cette application va déterminer si votre configuration matérielle et logicielle est compatible avec Windows 8 et vous suggérer des solutions possible. Dans mon cas, il y avait quelques applications de second plan qui avaient besoin d’être mis à jour. Sans conséquence.

Une fois la compatibilité validée et Windows acheté par carte de crédit, vous pouvez décider comment vous allez passer à l’installation. Trois options s’offrent à vous :

  • Installation directe : L’application va se configurer et redémarrer pour installer Windows 8.
  • Configuration d’une clé USB : Une clé USB sera configurée pour que vous puissiez démarrer et installer Windows à partir de celle-ci.
  • Création d’une image disque ISO : Une ISO sera créée pour vos besoins ultérieurs. Vous vous ferez aussi offrir de graver celle-ci à ce moment-là.

À partir de là, l’installation se produit pratiquement comme ce quoi vous avez été habitués avec Windows 7. L’installation prend entre 15 et 30 minutes environs, selon la capacité de votre ordinateur.

Windows 8 – L’interface utilisateur

Une fois que vous avez complété l’installation, vous serez accueilli par le fameux nouveau menu démarrer de Windows 8. Selon votre niveau de confort avec la technologie, il peut vous prendre quelques minutes ou voir même quelques heures à vous habituer à ce nouveau concept.

Le concept d’utilisation de ce nouveau menu démarrer est le suivant. Comme avec les versions de Windows précédentes, lorsque vous appuyez sur la touche Windows, on vous présentera le menu démarrer.

Une fois dans le menu démarrer, si vous désirez retourner au mode « Bureau », vous aurez qu’à appuyer sur la même touche à nouveau. Aussi simple que cela.

Positif

Ce que j’ai aimé de cette nouvelle interface utilisateur, c’est que le concept de recherche a été conservé et même amélioré. En tout temps, il est possible de faire une recherche dans vos applications en tapant votre requête directement. Les résultats correspondants vous seront affichés. Avec cette fonctionnalité, vous pouvez complètement ignorer le concept de tuiles et continuer votre petit bout de chemin.

Négatif

Cela me permet d’introduire ce que j’ai moins apprécié de cet ajout. Le menu avec les tuiles devient facilement un fouillis total qui demande une certaine attention afin qu’il soit gardé en ordre.

L’orientation donnée à cette fonctionnalité ressemble beaucoup au concept des icônes sur un iOS. Alignées en grille, déplaçable et pouvant être regroupées selon son désir. Il faut aussi remarquer que la même fonctionnalité est offerte pour les tablettes où elle prend plus son sens à mon avis.

Une image vaut mille mots. J’avais cela devant moi, dans mon menu démarrer.

Menu Démarrer
Le fouillis du menu démarrer

Remarques diverses

Futilité de certaines applications

Windows 8 est un système d’exploitation qui joue sur deux registres en même temps. Dans toute la séquence, on remarque que certaines fonctionnalités ont été pensées pour les tablettes. De plus petits appareils où les ressources sont comptées.

D’un autre côté, on voit que le mode « Bureau » est le compromis permettant de conserver le mode de fonctionnement des applications du passé.

Or, je conçois difficilement comment, sur mon ordinateur de bureau, comment l’application Wikipédia va être un atout dans mon quotidien. Elle est très jolie, visuellement. En quoi elle va remplacer mon navigateur web?

Utilisation de mémoire

Actuellement, j’ai une utilisation de mémoire qui se situe à quatre gigaoctets sur une possibilité de huit. Mon poste de travail est relativement vieux. Il s’agit d’une consommation de mémoire relativement plus élevée de ce que j’ai pu remarquer dans le passé avec Windows 7.

Un signe que les temps changent Sachez que vous pouvez facilement vous faire une configuration à 16 gigaoctets pour moins de 100$ avec de la DDR3, selon les aubaines. Windows 8 est conçu pour être utilisé avec du matériel à jour.

Truc de pro : Vous pouvez fermer les applications Windows 8 nouveau genre en pointant votre souris dans le coin haut gauche de votre écran. Un clic droit sur les aperçus va vous permettre de les fermer.

Windows Store, expérience à l’utilisation déficiente

Mon premier contact avec la plateforme de gestion des applications Windows nouvelle génération m’a déçu. La recherche ne fonctionne simplement pas et la qualité des applications n’est pas au rendez-vous. Microsoft peut significativement faire mieux à ce sujet.

Apparemment, je ne suis pas le seul à penser cela.

Conclusion

Selon moi, le facteur prix est à l’avantage de Windows 8. Profitez s’en, le téléchargement est à 40$ jusqu’à la fin janvier. Cependant, ne vous pressez pas à l’installer et soyez encore moins pressés si vous avez Windows 7.

La mise à jour est intéressante si vous avez un ordinateur de nouvelle génération ou du moins avec certaines composantes qui le sont. Par exemple, si vous avez un disque dur SSD, vous pourriez bénéficier de certaines améliorations.

ASP.NET 4.5 – Présentation de certaines nouveautés

ASP.NET est sur le marché depuis le début de l’année 2002. Depuis toutes ces années, il est au centre de la stratégie web de Microsoft.

L’aventure a débuté en étant le digne successeur à ASP classique. À travers le temps, cette technologie a évolué en un Framework web solide basé sur .NET.

Depuis, mi 2012, la version 4.5 d’ASP.NET est accessible aux développeurs. Tel que le veut la tradition des numéros de version de .NET, celle-ci est basée sur .NET 4.5.

Il y a beaucoup de nouvelles fonctionnalités qui ont été ajoutées ou améliorées dans cette version. Notamment avec la venue du typage dynamique dans .NET et des appels de fonction asynchrone.

Sans tourner autour du sujet trop longtemps, en voici quelques-unes qui ont retenu mon attention. Il est aussi à mentionner que le sujet est beaucoup plus large que ce qui va être énuméré. ASP.NET 4.5 est une mise à jour importante du Framework.

ASP.NET Core

Modules et Handlers Async

Avec la venue de l’amélioration de la prise en charge de l’asynchronicité dans le langage C#, les API des Modules et des Handlers HTTP a été mis au goût du jour. Il est maintenant possible d’écrire ceux-ci afin que le Thread d’exécution ne soit pas dépendant de leur résultat d’exécution pour faire autre chose.

Par exemple, un HttpHandler async doit hériter de la classe HttpTaskAsyncHandler et dériver la méthode ProcessRequestAsync pour que la magie s’opère.

Inclusion de la librairie AntiXSS

AntiXSS est une librairie, développée par Microsoft, d’utilitaires permettant l’encodage d’entrée utilisateur à partir du web. Elle fait partie d’un grand ensemble appelé Microsoft Web Protection Library.

Il est possible d’utiliser directement les fonctionnalités publiques exposées par AntiXSS. Toutefois, la façon de faire la plus préconisée est de l’utiliser comme encodeur par défaut par ASP.NET. Cette technique permet, de façon transparente, à travers les différents API d’encodage d’ASP.NET. Dans ces API, il y a les fonctions HtmlFormUrlEncode et HtmlEncode, par exemple.

Support natif pour WebSocket

WebSocket est un protocole de communication web permettant un échange bidirectionnel de données sur une seule et même connexion TCP. Le protocole est maintenant largement supporté et implémenté par les principaux navigateurs. De plus, il est reconnu par l’IETF sous le joli nom de RFC 6455.

Le support pour WebSocket a maintenant été ajouté à .NET grâce à System.Net.WebSockets.WebSocket. De plus, il possède tout l’attirail d’outils vous permettant d’invoquer ses fonctions de façon asynchrone.

Bundling et minification

L’une des premières optimisations qui est à faire à votre site web est de réduire la quantité et le volume en kilooctets de fichiers JavaScript et CSS à télécharger. Pour faire cette compression et cette minification, il faut utiliser un outil automatisé pour y arriver. Pour les projets pré-.NET4.5, il fallait requérir à une librairie comme Cassette, par exemple.

Dans cette nouvelle version d’ASP.NET intègre le bundling et la minification sans librairie externe. Un guide d’utilisation détaillé se trouve sur le site asp.net. Cette technique fait même partie des projets par défaut ASP.NET MVC. Utilisez-la!

Hébergement

Prefetch

Prefetcher est un composant initialement destiné aux applications de type bureau. Il permet l’accélération du démarrage d’une application en analysant les tendances d’utilisation du disque dur. La principale technique utilisée est de regrouper les fichiers activement utilisés dans un seul répertoire pour accélérer leur accès.

Avec .NET 4.5 et Windows 8 / Windows Server 2012, prefetcher a été intégré et peut être activé pour vos application web ASP.NET. Cette fonctionnalité s’active en activant l’attribut enablePrefetchOptimization.

Forms

Model Binding

Le pendant Forms d’ASP.NET n’a pas été négligé. Il est possible d’associer un contrôle associé à une collection d’éléments (Ex : Gridview, Repeater, etc.) et de pouvoir accéder directement aux propriétés du type associé. Une image vaut mille mots :

typed_repeater

Encodage automatique de vos expressions en HTML

Vous pouvez maintenant faire en sorte que vos données texte soient automatiquement encodées en HTML en utilisant le deux-points dans vos expressions de databinding. Par exemple, <%#: Item.Name %>

Conclusion

Il a été mentionné, plus haut dans cet article, qu’il y a beaucoup plus que ce que j’ai énuméré dans ce billet. Par exemple, il a des changements au support HTML5 de l’éditeur de contenu qui n’ont pas été couvert dans cet article et qui vont probablement vous émerveiller.

Émerveiller, dans le sens que vous allez probablement vous demande pourquoi cela n’était pas là avant? À ce point-là, je vous le dis.

Les prochaines semaines et mois vont nous permettre d’explorer les nouvelles fonctionnalités offertes par cette mise à jour. Soyez vigilants!