Installation et configuration du MiniProfiler pour une application asp.net MVC

dotnet_logo

Dans cet article, je vais vous expliquer comment installer et intégrer MiniProfiler dans une application Asp.net MVC. Nous allons voir l’ensemble des configurations à faire pour la mise en place du MiniProfiler et comment l’activer pour les requêtes Entity FrameWork.

Qu’est-ce qu’un MiniProfiler ? 

MiniProfiler est une  librairie .net développée par les membres de l’équipe StackExchange. Elle vous permet de surveiller les performances de votre application et de vous aider à optimiser vos requêtes BDD.

Installation et configuration du MiniProfiler avec Nuget Package

Pour l’installation du MiniProfiler :

Lancez Visual Studio, faites un clic droit sur les références de votre projet et choisissez (Manage Nuget Packages..).
Choisissez MiniProfiler dans les résultats de recherche et cliquez sur installer.

On peut aussi l’installer en utilisant la console Visual Studio avec la commande :

PM> Install-Package MiniProfiler

Ajoutez le HtmlHelper

MiniProfiler ajoute une div sur le coin supérieur gauche de votre page qui contient le détail de vos requêtes et les appels serveur.

La première étape consiste à ajouter un Helper HTML qui permet d’insérer la div dans votre page. Pour le faire, ajoutez la référence StackExchange.Profiling au top de la page.

@using StackExchange.Profiling; 

Ensuite insérer le code qui affiche le MiniProfiler :

@MiniProfiler.RenderIncludes()

Activez le Profiler

Dans le Global.asax, il faut ajouter les gestionnaires d'événements suivants pour démarrer et arrêter le profiler :

Le Request.IsLocal permet d’activer le Profiler lorsque vous accédez à l’application en développement ou sur le serveur de déploiement.

protected void Application_BeginRequest()
{
            if (Request.IsLocal)
            {
                MiniProfiler.Start();
            }
}

protected void Application_EndRequest(object sender, EventArgs eventArgs)
{
           MiniProfiler.Stop();
}

Ensuite lancez l’application et vous allez voir le profiler au coin gauche de votre page.

Profiler1

Profilage du MVC

Pour activer le Profiler pour les Views et les Controllers : Installez la librairie MVC du MiniProfiler :

PM> Install-Package MiniProfiler.MVC

Ensuite, enregistrez le ProfilingActionFilter et ProfilingViewEngine dans le fichier Global.asax.cs.

protected void Application_Start()
{
      GlobalFilters.Filters.Add(new ProfilingActionFilter());
      ViewEngines.Engines.Clear();
      ViewEngines.Engines.Add(new ProfilingViewEngine(new RazorViewEngine()));
}

Maintenant, lancez l'application et vérifiez la sortie du Profiler. Cliquez sur le lien pour voir tous les événements profilés.

Profiler2

Comme vous pouvez le constater, l’affichage est assez détaillé avec l’ensemble des actions appelées par le serveur et toutes les vues (les vues partiales) affichées dans la page.

Profilage de la Base de données avec Entity Framework

Pour ajouter cette fonctionnalité, il faut installer MiniProfiler.EF en utilisant le Package Nuget

PM> install-package MiniProfiler.EF.

Une fois installé, ajoutez l'appel d'initialisation dans Application_Start ( ) du fichier Global.asax.cs

protected void Application_Start()
{
       GlobalFilters.Filters.Add(new ProfilingActionFilter());
       ViewEngines.Engines.Clear();
       ViewEngines.Engines.Add(new ProfilingViewEngine(new RazorViewEngine()));
       MiniProfilerEF6.Initialize();
}

Relancez l'application de nouveau et vérifiez la sortie du Profiler.

Profiler3

Comme illustré dans cet exemple, le MiniProfiler.EF détecte un appel de base de données.

Conclusion

Le Profilage est extrêmement important pour la compréhension et la résolution des problèmes lors de l’exécution de votre application. Il peut aussi vous apporter des solutions pour maintenir et optimiser votre code ainsi que d’améliorer le temps de réponse de votre page.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.