Microsoft Chart Controls - Nouvelle année, nouveau projet !

by Fabien Lavocat 28. janvier 2009 13:58

Microsoft Charting ControlConnaissez-vous les contrôles ASP.NET (ou Winform) qui permettent de faire des graphiques ?

Il s’agit d’une bibliothèque de composant qui vous permettra d’agrémenter vos sites Web de magnifiques graphiques comme celui de l’image ci-contre. Partant d’une news de Scott Guthrie sur son blog, j’ai immédiatement pensé à une idée de projet de développement qui me permettra d’afficher les statistiques de ma Dedibox.

Le projet n’est pas très compliqué et se compose en 2 parties :

Récupération des logs.

Je commence par récupérer tous les logs brut de IIS en format W3C qui ressemblent à çà :

#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2009-01-02 10:16:35 W3SVC2 SD-16429 88.191.97.30 GET /category/Jeux.aspx - 80 - 66.249.71.75 HTTP/1.1 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - - www.blog-microsoft.fr 200 0 0 9795 303 296

Des tas et des tas de lignes impossibles à analyser à la main. Il existe bien un outil qui le permet : LogParser mais il n’est pas adapté à ce que je souhaite faire. En effet, ce logiciel permet de faire des requêtes type SQL dans des fichiers de log, du coup il se poserai un énorme problème de performances.
Pour en revenir à ce point, j’ai créé un petit logiciel tout simple Log2MsSQL qui va chercher tous les nouveaux fichiers de log générés la veille et les enregistre dans une base de données.
Du point de vue technique, IIS7 (sous Windows Server 2008) est configuré pour enregistrer les logs de tous les sites Web du serveur dans un seul et même fichier par jour. Ensuite l’application Log2MsSQL utilise un fichier XML qui est créé pour stocker la liste des fichiers analysés afin d’éviter de les analyser plusieurs fois. Une fois que le fichier est analysé, les requêtes sont envoyés sur une base de données SQL Server 2008 locale.

Affichage des statistiques.

La seconde partie de ce projet est bien sûr l’affichage des résultats dans un site Web dédié en ASP.NET. Voilà à quoi ressemble pour le moment l’application Web :

StatsViewer

Pour le moment la chose la plus complexe à réalisée est au niveau de la base de données, car pour 2 mois de logs, il y a environ 1.000.000 lignes ! Il faut donc bien réfléchir à la modélisation de la base de données ainsi qu’à l’utilisation des procédures stockées ainsi que de LINQ. Tout cela afin d’éviter d’avoir une page qui se charge en 5 minutes.

Peut être que je publierai le code source de cette application, soit sur CodePlex soit ailleurs. Mais quoi qu’il en soit je vais publier des morceaux de code sur mon blog pour vous montrer à quel point il est simple de faire de belles applications Web.

Tags: ,

A propos de l'auteur

Fabien Lavocat

Lavocat Fabien
Ingénieur Multimédia - TMM Communication



"Blog-Microsoft.fr is an independent blog and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation."

Contactez-moi Send mail

MVP
Microsoft Most Valuable Professional
Client Application Development