Explorer de nouveaux diagnostics et mesures

OK, développeurs MAUI, ICYMI, voici les mises à jour de suivi des diagnostics et des métriques de .NET MAUI publiées avec .NET 10 que vous devez connaître !
L’outil le plus important pour prendre des décisions sont les données : des mesures, des statistiques et des chiffres réels qui vous indiquent ce que vous faites bien et ce que vous devez améliorer. Sans eux, vous devinez littéralement.
Imaginez que vous allez chez le médecin pour un examen de la vue et, à son arrivée, il décide de vous poser un diagnostic sans vous évaluer, sans tests, sans rien.
Feriez-vous confiance à ce résultat ? Bien sûr que non. 🙆♀️
Mais si ce même médecin vous envoie faire des tests, évalue, compare et explique exactement ce qui se passe ? Vous vous sentirez alors plus en confiance, car vous savez que le diagnostic repose sur des données réelles.
La même chose se produit avec nos applications : vous ne pouvez pas optimiser, améliorer ou réparer ce que vous ne pouvez pas observer. Si vous ne disposez pas de mesures vous indiquant la fréquence de défaillance d’un écran, le temps nécessaire à l’affichage de ses éléments ou la perte de temps au cours du cycle de mise en page, vous travaillez à l’aveugle.
Disposer de mesures claires vous aide non seulement en tant que développeur à détecter les problèmes plus rapidement, mais vous permet également de fournir un meilleur service à vos utilisateurs, car vous pouvez anticiper les problèmes avant même que votre utilisateur ou client ne remarque que quelque chose ne va pas.
Dans cet article, nous parlerons du nouveau suivi complet des diagnostics et des métriques pour .NET MAUI– incroyablement utile pour identifier les problèmes de performances et comprendre ce qui se passe réellement dans le cycle de mise en page.
Tout d’abord, un examen rapide de .NET Aspire
Avant de plonger dans les diagnostics, il est important de comprendre, à un niveau élevé, ce que propose .NET Aspire, car c’est l’environnement dans lequel vous pourrez voir vos données de diagnostic enregistrées.
Il s’agit d’un nouveau modèle d’application dans l’écosystème .NET, et .NET MAUI pour .NET 10 inclut désormais un modèle de projet qui crée un projet par défaut du service .NET Aspire.
Ce projet introduit des méthodes d’extension qui connectent automatiquement la télémétrie et la découverte de services dans votre application. En pratique, cela signifie :
- Télémétrie permet à votre application de collecter, mesurer et émettre des données d’exécution à des fins de surveillance et d’analyse.
- Découverte de services permet à votre application de localiser et de communiquer avec d’autres services sans recourir à des URL codées en dur. Au lieu de pointer vers des points de terminaison fixes, votre application se connecte à l’aide d’un nom de service.
Diagnostic
Microsoft a ajouté un système complet de diagnostics et de métriques pour les applications .NET MAUI. Son objectif principal est de surveiller les performances de la mise en page (la manière dont les vues sont mesurées et disposées à l’écran) et il repose sur une architecture extensible qui peut facilement prendre en charge les futures fonctionnalités d’observabilité.
Fondamentalement, l’infrastructure de diagnostic de base comprend ces trois points principaux :
Source d’activité : « Microsoft.Maui »
Celui-ci est responsable de l’émission d’activités (traces) lorsque .NET MAUI effectue des opérations de mise en page. Grâce à cela, nous pouvons savoir des choses comme :
- Quand un
Measure()ouArrange()l’opération commence et se termine - Combien de temps prend chaque opération
- Quelle vue l’a déclenché
En résumé, ActivitySource enregistre chaque étape du processus de mise en page avec des informations de synchronisation détaillées.
⚠️ Comme contexte important :
- Mesure est le processus par lequel .NET MAUI calcule et détermine la quantité d’espace dont une vue a besoin.
- Organiserqui se produit après Mesure, est l’endroit où .NET MAUI positionne la vue sur l’écran avec sa taille et son emplacement finaux.
Métriques : « Microsoft.Maui »
Grâce à un mètre (un composant du système de métriques .NET), cela expose les métriques dans différents formats, tels que :
- Compteurs : Pour identifier combien de fois un événement se produit
- Histogrammes : Pour mesurer la durée d’une opération ou la façon dont ses valeurs sont distribuées
Essentiellement, les métriques sont chargées de fournir les chiffres bruts nécessaires à l’analyse des performances.
Commutateur de fonctionnalité : Meter.IsSupported
Cela permet d’activer ou de désactiver les métriques au moment de l’exécution pour l’AOT/le découpage. En d’autres termes, il fonctionne comme un interrupteur qui vous permet d’activer ou de désactiver votre système de collecte de métriques en fonction de vos besoins.
Suivi des performances de mise en page
Fondamentalement, c’est là que les opérations d’interface utilisateur les plus importantes…Measure() et Arrange()– sont instrumentés. En termes simples, il s’occupe de :
Instrumentation de IView.Measure() et IView.Arrange()
Cela signifie que .NET MAUI injecte désormais des mesures internes dans ces méthodes, comme expliqué précédemment.
Lorsque nous parlons d’« instrumentation », nous entendons l’ajout de métriques, de journaux ou de traces à l’intérieur du code afin que nous puissions mesurer, surveiller, diagnostiquer ou analyser le comportement de ces opérations.
Suit le timing, les décomptes et le contexte détaillé
Il enregistre la durée de chaque Measure() et Arrange() l’opération prend et combien de fois elle a été exécutée et, plus important encore, ajoute des balises riches et un contexte tel que l’écran sur lequel elle s’est produite, quelle mise en page l’a déclenchée et quelle vue était impliquée. Cela vous donne beaucoup plus de précision lors du diagnostic et de la résolution des problèmes.
Instrumentation à allocation nulle pour des performances optimales
Cela signifie que toute l’instrumentation ajoutée à la piste Measure() et Arrange() est implémenté à l’aide de structures et d’un modèle using, il ne génère donc aucune allocation de tas. En termes simples, le système de diagnostic ne crée pas de déchets supplémentaires ni ne ralentit votre application lors de la mesure des performances. Il enregistre tout efficacement sans affecter la réactivité de l’interface utilisateur.
📊 Métriques collectées
Tous les concepts expliqués ci-dessus sont finalement exposés à travers un ensemble de métriques spécifiques :

Données de la documentation officielle.
Balises de diagnostic sont des étiquettes automatiquement ajoutées par .NET MAUI aux métriques et aux traces. Leur objectif est de fournir un contexte supplémentaire sur la vue responsable de l’exécution d’un Measure() ou Arrange() opération.
En termes simples, ces balises vous indiquent quel contrôle a déclenché l’opération, où il se trouvait et sa taille.
Les balises disponibles sont :
Toutes les vues
Celles-ci s’appliquent à n’importe quelle vue dans .NET MAUI.
Étiquette : element.type — Nom complet du type
Représente le nom de type complet de l’élément visuel qui a déclenché l’opération.
Par exemple:
- Microsoft.Maui.Controls.Button
- Microsoft.Maui.Controls.Label
Cette balise vous aide à identifier si un contrôle spécifique provoque plusieurs Measure() ou Arrange() appels.
Contrôles (Élément / VisualElement)
Ces balises sont ajoutées à tous les contrôles qui héritent de Element ou VisualElement. Ils comprennent :
- élément.id: ID interne attribué par MAUI
- element.automation_id : Un identifiant personnalisé défini par vous (facultatif), couramment utilisé pour les tests et l’accessibilité
- element.class_id : Le ClassId du contrôle
- élément.style_id : ID interne associé aux styles appliqués
- élément.classe : Décrit les caractéristiques visuelles du contrôle ; vous aide à comprendre quel style, modèle ou catégorie visuelle il avait à l’époque
- élément.frame : Représente la position finale et la taille du contrôle sur l’écran (par exemple : x=0, y=34, width=260, height=55)
Où pouvez-vous trouver ces mesures ?
Rappelez-vous au début de l’article quand nous parlions de .NET aspire ?
Eh bien, c’est exactement là que vous pouvez consulter toutes ces mesures.
Ci-dessous, j’ai inclus des images de la documentation officielle afin que vous puissiez visualiser à quoi cela ressemble dans la pratique.


✍️ Si vous souhaitez approfondir le sujet, je vous recommande de consulter la pull request pour « [v3] Ajouter le suivi des métriques de diagnostic aux applications MAUI ».
Conclusion
Et c’est tout ! 🎉 Dans cet article, vous avez découvert comment le nouveau système de diagnostic de .NET 10 améliore l’observabilité dans les applications .NET MAUI. Vous avez appris ce que fait chaque composant, comment les opérations de mise en page sont instrumentées et comment les métriques sont exposées afin que vous puissiez mieux comprendre les performances de votre application.
Vous disposez désormais des outils nécessaires pour faire du diagnostic votre allié : vous aider à détecter les problèmes plus rapidement, à optimiser votre interface utilisateur avec plus de confiance et à créer des applications à la fois plus fluides et plus faciles à maintenir.
Si vous avez des questions ou souhaitez que j’aborde des sujets plus connexes, n’hésitez pas à laisser un commentaire, je serai ravi de vous aider ! 💚
Rendez-vous dans le prochain article ! 🙋♀️✨
Références
L’explication était basée sur la documentation officielle :
Source link
