Title: Dbogage ASP'NET niveau 300
1Débogage ASP.NET (niveau 300)
2Débogage ASP.NET (niveau 300)
- Présentation de loutillage standard dASP.NET
2.0 et de Visual Studio Team System - Health Monitoring
- Profiling
- Tests de charge
- Gestion des anomalies dans TFS
- Pause
- Débogage dapplications ASP.NET en production
- Préambule
- Outils pour la capture et lanalyse
- Présentation de WinDbg et SOS
- IIS et CLR
- Commande SOS
- Exemple de problématiques
3Débogage ASP.NET (niveau 300)Présentation de
loutillage standard dASP.NET 2.0 et de Visual
Studio Team System
- Daniel TIZON
- Resp. du pôle Génie Logiciel /Team System -
Winwise - daniel.tizon_at_winwise.fr - http//blogs.developpeur
.org/daniel
4Introduction
- Avec les outils inclus dans ASP.NET et Team
System - Vous disposez doutils utiles pour éviter de
traiter les problèmes en production - Ils sont à votre disposition mais souvent
méconnus des développeurs
5Agenda
- Health Monitoring
- Profiling
- Tests de charge
- Gestion des anomalies dans TFS
6Health Monitoring
- DASP.NET 2.0
- Comment surveiller les signes vitaux des
applications en production
7Health Monitoring
- Un mécanisme standard dASP.NET2.0
- Gère les événements importants dans la vie de
lapplication - Lapplication démarre ou sarrête
- Compilations
- Etat du processus
- Evénements derreur
- Erreurs de requêtes exception non gérées, etc
- Erreurs de configuration compilation, parser,
- Extensible
8Health Monitoring Hiérarchie des types
dévénements
9Health Monitoring WebBaseEvent
- Contient des informations communes
- Des types plus spécialisés
- Pile des appels, adresse du client, informations
de thread/process, information de requête
public class WebBaseEvent //
properties public DateTime EventTime public
string Message public object EventSource publi
c long EventSequence public int
EventCode public int EventDetailCode //
methods static public void Raise(WebBaseEvent
eventRaised)
10Health Monitoring Configuration
- Dans le Web.config du serveur
- Dans le Web.config de lapplication
- Section lthealthMonitoringgt
- lteventMappingsgt ? événements gérés
- ltprovidersgt ? destinataires enregistrés
- ltrulesgt ? mappage événements/destinataires
- ltprofilesgt ? paramètres des événements
- ltbufferModesgt ? paramètres des destinataires
11Health Monitoring Destinataires dévénements
- Sappuie sur le modèles de providers
- Providers disponibles
- EventLogWebEventProvider
- BufferedWebEventProvider
- MailWebEventProvider
- SimpleMailWebEventProvider
- SqlWebEventProvider
- TemplatedMailWebEventProvder
- TraceWebEventProvider
- WMIWebEventProvider
- Extensible
12Health Monitoring Filtrage des événements
- Filtrage par hiérarchie de type
- Exemple capturer toutes les erreurs ou
uniquement les erreurs de configuration - Les types peuvent être mappés à plusieurs
fournisseurs - Exemple
- Toutes les erreurs ? Event Log
- Erreurs de configuration ? Email
13Health Monitoring Contraintes sur les événements
- Par palier
- Ex 1 par minute
- Par seuils
- Minima/Maxima
- Ex seulement 10 premières occurrences
- Ex seulement à partir de la 10ième occurrence
14Demo
15Le Profiling
- Dans Visual Studio 2005for Team Developers
- Identification des portions de codes à
optimiser (mémore/perf)
16Le Profiling
- Intégré à Visual Studio 2005 for Team Developers
- Rassemble les informations sur les temps
dexécution et performances - Méthodes qui prennent le plus de temps
- Consomment le plus de mémoire
- Les plus appelées
- Deux méthodes de mesure
- Sampling ponctionne des informations à
intervalles réguliers sur ce qui est exécuté - Instrumentation enregistre tous les appels
17Le Profiling
- Code managé v2.0
- Tout type de cible
- Exécutables
- Bibliothèques de classes
- Applications Web ASP.NET
- Services Windows
- VS na pas besoin dêtre lancé
- Permet de rapidement maximiser les gains de
performance - Profiling sur les tests Unitaires également
18Profiling Sampling ou Instrumentation
- Le Sampling a moins dimpact sur lexécution
- Analyse de la pile
- Non intrusive
- Des méthodes peuvent être manquées
- Linstrumentation insère du code entre les
méthodes - Résultats précis
- Coûteux sur lexécution
19Profiling Sampling
- Analyse sans modification de lapplication
main 3
AMethod 6
BMethod 9
2
20Profiling Intrumentation
main 001 AMethod 0023 BMethod 0098
21Profiling depuis Visual Studio 2005
- Via le menu Tools/Performances Tools
- Performance Wizard
- Choix de lapplication à profiler
- Projet de la soluton courante
- Exécutable (.exe),
- Librairie (.dll),
- Application ASP.NET.
- Choix de la méthode
- Sampling,
- Instrumentation
- Performance Explorer
- Configuration, exécution
- Analyse et stockage des résultats
- Résumé
- Fonctions et Appelant/Appelés
- Pile des appels
- Exportation XML
22Profiling à la ligne de commande
- En mode instrumentation
- VSPerfCLREnv /traceon
- VSInstr ltbinairegt
- VSPerfCmd /starttrace /outputltfichier de
sortiegt.VSP - Exécuter lapplication
- VSPerfCmd /shutdown
- En mode Sampling
- VSPerfCLREnv /sampleon
- VSPerfCmd /startsample / outputltfichier de
sortiegt.VSP - VSPerfCmd /launchltbinairegt /argsltargumentsgt
- Intéragir avec lapplication et sortir
- VSPerfCmd /shutdown
- En sattachant à un processus en mode Sampling
- VSPerfCLREnv /sampleon
- Démarrer lapplication
- VSPerfCmd /startsample / outputltfichier de
sortiegt.VSP - VSPerfCmd /attachltPIDgt
- Intéragir avec lapplication et sortir
- VSPerfCmd /detachltPIDgt
23Demo
24Les Tests de charge
- Dans Visual Studio 2005for Team Testers
- un moyen de détecter des problèmes
habituellement remontés quen production
25Tests de Charge
- Intégré à Visual Studio 2005 for Team Testers
- Charge constante ou progressive
- Applications Web ou tests unitaires
- Récolte des données sur les performances
- De lapplication
- Des serveurs concernés
- Génère des rapports
- Possibilité dajouter un contrôleur et agents
externes
26Tests de Charge Types de charge supportés
- Charge fixe
- Nombre fixe dutilisateurs,
- Permet de vérifier que lapplication tient
- Charge progressive
- Le nombre dutilisateurs varie,
- À partir dune valeur minimale,
- Par paliers,
- Jusquà une valeur limite
- Permet de déterminer les limites de lapplication
27Tests de Charge Sur des Tests Web
- Créer des test web
- Enregistrer le scénario de navigation dans IE
- Scripter/modifier lenregistrement
- Possibilités de databinding
- Définir la répartition
- selon les types de navigateurs
- Le(s) type(s) de connexion utilisé(s)
- Les tests sélectionnés (scénarios différents)
- Exemple
- 10 de Firefox, 5 de smartphone, 85 IE6.0
- 90 ADSL, 10 de modem 56k
- 90 daffichage de la page daccueil, 10
création commande
28Tests de Charge Procédure pas à pas
- Créer un projet de type Tests
- Créer des tests Web et/ou Unitaires
- Créer un test Load Test
- Sélectionner les tests Web/Unitaires
- Distribution des dexécution de chacun
- Choisir le type de charge
- Sélectionner les compteurs de performance
29Tests de Charge Agents de test
- VS2005 Team Edition for Software Testers Load
Agent - Produit séparé de Team Suite
- Permet de simuler plus de charge
- Env 1000 par processeur
- Composé de
- Team Test Load Agent simule les tests
- Team Test Load Controller pilote les agents
30Demo
31Gestion des anomalies
- avec
- Team Foundation Server (TFS)
- Remontée des anomalies depuis des applications
Web en production aux équipes de développement
dans TFS
32Team Foundation ServerUne extension de VS
Team Edition for Testers
Team Edition for Developers
Team ExplorerMicrosoft Project Microsoft Excel
Team Editionfor Architects
Team Foundation Server
Navigateur Web
33Team Foundation ServerArchitecture
- Architecture multi-couche
- Couche données
- SQL Server 2005
- Couche applicative
- WebServices
- Windows Sharepoint Services
- Reporting Services
- Couche cliente
- Visual Studio 2005
- MS Office Excel / Project
- Internet Explorer (via WSS)
- Team Explorer
34Team Foundation Server Architecture logique
Office
Visual Studio
Lignes de commande
Plug-in Excel
Plug-in MS Project
IE
Packages
Modèle objet de Team Foundation (API managée)
SOAP/HTTP(S)
WSS (portail projet)
Team Foundation services dintégration
Service denregistrement
Evénements et notifications
Web Parts
Service de liaison
Team Foundation services de données
SQL Reporting services
Gestion des Work Items
Services de compilation
Gestion de sources
Rapports
MSSQL/TCP
Team Foundation couche données
WI (Product Studio)
Données de compilation
Warehouse
SCC
Méthodologies
35Les Work ItemsDe quoi sagit-il ?
- Un concept générique pour
- Créer de linformation
- La faire évoluer
- La partager
- La suivre
- Basés sur des modèles
- Données, comportement
- Définis au niveau Team Project
- Extensibles
36Les Work ItemsConcrètement
- Un Work Item possède
- Un type
- Bogue, Tâche, Demande dévolution,
- Des états
- Actif, Résolu, Fermé,
- Motif de passage dun Etat à lautre
- Nouveau, Fixé, Obsolète, Non reproduit
- Des champs
- Titre, Description, Date, Assigné à , Area,
Itération, - Un historique
- Des pièces jointes
- Peuvent être liés à
- Du code, un test, résultat dune compilation, un
autre Work Item, Un fichier, un lien hypertexte
37Modèle ObjetTeam Foundation Server
C\Program Files\Microsoft Visual Studio
8\Common7\IDE\PrivateAssemblies
38Modèle ObjetWork Items
39Demo
- Gestion des anomalies dans Team Foundation Server
40Ressources
- De manière générale
- Les starters kits http//www.asp.net/downloads/s
tarterkits/default.aspx?tabid62 - Télécharger Visual Web Developer 2005 Express
Edition http//www.microsoft.com/france/msdn/vst
udio/express/vwd/default.mspx - Le centre de développement ASP .NET sur MSDN
http//www.microsoft.com/france/msdn/aspnet/defaul
t.mspx
41Ressources
- A propos de lhealth monitoring
- ASP.NET Health Monitoring http//msdn2.microsoft
.com/en-gb/library/ms178701.aspx - Vue d'ensemble du contrôle d'état ASP.NET
http//msdn2.microsoft.com/fr-fr/library/ms178703.
aspx - Procédure pas à pas écoute des événements WMI
lors du contrôle d'état ASP.NET
http//msdn2.microsoft.com/fr-fr/library/ms178713.
aspx - A propos du Profiling
- Visual Studio Team System 2005 Performance Tool
FAQ http//forums.microsoft.com/MSDN/ShowPost.as
px?PostID339481SiteID1 - A propos des Tests de Charge
- Test de charge avec Team System quoi, quand,
comment ? http//blogs.microsoft.fr/antoined/arc
hive/2005/12/20/16639.aspx