Προγραμματισμός

Πώς να χρησιμοποιήσετε το MiniProfiler στο ASP.Net Core

Η απόδοση των εφαρμογών Ιστού αποτελεί σοβαρή ανησυχία σε όλο τον κόσμο. Οι προγραμματιστές διαθέτουν πολλά εργαλεία που μπορούν να χρησιμοποιήσουν για να σχεδιάσουν εφαρμογές διαδικτύου και να βρουν σημεία συμφόρησης απόδοσης. Το MiniProfiler είναι ένα τέτοιο εργαλείο - ένα απλό αλλά ισχυρό εργαλείο για τη δημιουργία προφίλ στις εφαρμογές ιστού. Το MiniProfiler σάς βοηθά να εντοπίσετε αργά τρέχοντα ερωτήματα, αργούς χρόνους απόκρισης διακομιστή και πολλά άλλα.

Το MiniProfiler είναι διαθέσιμο για .Net, ASP.Net και ASP.Net Core. Θα βρείτε την τεκμηρίωση για το MiniProfiler στο GitHub. Αυτό το άρθρο παρουσιάζει μια συζήτηση για το MiniProfiler, γιατί είναι χρήσιμο και πώς μπορούμε να το χρησιμοποιήσουμε για να σχεδιάσουμε εφαρμογές ASP.Net Core MVC και να ανακαλύψουμε ζητήματα απόδοσης στις εφαρμογές μας.

Δημιουργήστε ένα έργο ASP.Net Core MVC στο Visual Studio 2017

Αρχικά, ας δημιουργήσουμε ένα έργο ASP.Net Core MVC στο Visual Studio. Εάν το Visual Studio 2017 λειτουργεί και λειτουργεί στο σύστημά σας, ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε ένα έργο ASP.Net Core MVC.

  1. Ξεκινήστε το Visual Studio 2017 IDE.
  2. Κάντε κλικ στο Αρχείο> Νέο> Έργο.
  3. Επιλέξτε "ASP.Net Core Web Application (.Net Core)" από τη λίστα των προτύπων που εμφανίζονται.
  4. Καθορίστε ένα όνομα για το έργο.
  5. Κάντε κλικ στο OK για να αποθηκεύσετε το έργο.
  6. Θα εμφανιστεί ένα νέο παράθυρο, «Νέα εφαρμογή .Net Core Web…».
  7. Επιλέξτε .Net Core ως χρόνο εκτέλεσης και ASP.Net Core 2.1 (ή νεότερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή. Χρησιμοποιώ το .Net Core 2.2.
  8. Επιλέξτε "Εφαρμογή Ιστού (Μοντέλο-Προβολή-Ελεγκτής)" ως πρότυπο έργου (όπως φαίνεται στην Εικόνα 1 παρακάτω).
  9. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα. Δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  10. Βεβαιωθείτε ότι έχει επιλεγεί "Χωρίς έλεγχο ταυτότητας". Δεν θα χρησιμοποιήσουμε τον έλεγχο ταυτότητας ούτε εδώ.
  11. Κάντε κλικ στο OK.

Ακολουθώντας αυτά τα βήματα θα δημιουργήσετε ένα νέο έργο ASP.Net Core MVC στο Visual Studio. Θα χρησιμοποιήσουμε αυτό το έργο για να σχεδιάσουμε την εφαρμογή χρησιμοποιώντας το MiniProfiler.

Εγκαταστήστε και ρυθμίστε το MiniProfiler στο ASP.Net Core

Για να ξεκινήσετε να εργάζεστε με το MiniProfiler, πρέπει να εγκαταστήσετε το απαραίτητο πακέτο NuGet. Για να εγκαταστήσετε το MiniProfiler στο έργο σας, ακολουθήστε τα παρακάτω βήματα.

  1. Επιλέξτε το έργο στο παράθυρο Solution Explorer.
  2. Κάντε δεξί κλικ και επιλέξτε "Διαχείριση πακέτων NuGet ..."
  3. Αναζητήστε το πακέτο "MiniProfiler.AspNetCore.Mvc".
  4. Κάντε κλικ στο "Εγκατάσταση" για να εγκαταστήσετε το πακέτο NuGet.

Αυτό θα εγκαταστήσει το πακέτο MiniProfiler.AspNetCore.Mvc NuGet στο έργο σας. Για να ξεκινήσετε να χρησιμοποιείτε το MiniProfiler στο έργο σας, θα πρέπει να το διαμορφώσετε στην τάξη εκκίνησης. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να καλέσετε τη μέθοδο AddMiniProfiler στην παρουσία IServiceCollection για να προσθέσετε το MiniProfiler στον αγωγό.

public void ConfigureServices (υπηρεσίες IServiceCollection)

        {

services.AddMiniProfiler (επιλογές =>

options.RouteBasePath = "/ προφίλer"

            );

// Συνήθης κωδικός

        }

Μπορείτε να μάθετε περισσότερα σχετικά με τις επιλογές που μπορείτε να καθορίσετε κατά την εγγραφή του MiniProfiler στον αγωγό από τον ιστότοπο του MiniProfiler εδώ.

Θα πρέπει επίσης να καλέσετε τη μέθοδο UseMiniProfiler στο στιγμιότυπο IApplicationBuilder για να ξεκινήσετε να χρησιμοποιείτε το MiniProfiler στους ελεγκτές και τις προβολές σας.

public void Configure (εφαρμογή IApplicationBuilder, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Συνήθης κωδικός

    }

Στη συνέχεια, προσθέστε τις ακόλουθες δύο γραμμές μέσα στην ετικέτα στο αρχείο _Layout.cshtml.

@using StackExchange.Profiling

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Θα πρέπει επίσης να καθορίσετε πού στην ιστοσελίδα θα πρέπει να εμφανίζεται το παράθυρο MiniProfiler, δηλαδή τη θέση απόδοσης. Για να το κάνετε αυτό, μπορείτε να συμπεριλάβετε την ακόλουθη δήλωση μέσα στην ετικέτα.

Χρησιμοποιήστε τα βήματα στο MiniProfiler για να σχεδιάσετε τον κωδικό ASP.Net Core MVC

Το MiniProfiler θα σας ενημερώσει τους χρόνους φόρτωσης της σελίδας και τις πληροφορίες που σχετίζονται με την απόδοση των ερωτημάτων βάσης δεδομένων. Όταν εκτελείτε την εφαρμογή, η έξοδος θα εμφανίζεται όπως στην Εικόνα 2 παρακάτω. Σημειώστε το παράθυρο MiniProfiler στην επάνω δεξιά γωνία της οθόνης.

Για να μάθετε το χρόνο που απαιτείται για την εκτέλεση ενός συγκεκριμένου τμήματος του κώδικα σας, μπορείτε να εκμεταλλευτείτε τα βήματα. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορεί να επιτευχθεί αυτό.

δημόσιος δείκτης IActionResult ()

 {

var miniProfiler = MiniProfiler.Current;

Συγγραφείς λίστας = νέα λίστα ();

miniProfiler.RenderIncludes (this.HttpContext);

χρησιμοποιώντας (miniProfiler.Step ("Get Authors"))

       {

author.Add (new Author () {Id = 1, FirstName = "Joydip", LastName = "Kanjilal", Διεύθυνση = "Χαϊντεραμπάντ, Ινδία"});

author.Add (new Author () {Id = 2, FirstName = "Stephen", LastName = "Smith", Διεύθυνση = "NY, USA"});

author.Add (new Author () {Id = 3, FirstName = "Anand", LastName = "Narayanan", Διεύθυνση = "Chennai, India"});

author.Add (new Author () {Id = 4, FirstName = "Steve", LastName = "Jones", Διεύθυνση = "London, UK"});

       }

Επιστροφή Προβολή (συγγραφείς);

 }

Το παρακάτω απόσπασμα κώδικα δείχνει την εμφάνιση της προαναφερθείσας τάξης συγγραφέα.

δημόσια τάξη Συγγραφέας

    {

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

δημόσια συμβολοσειρά Διεύθυνση {get; σειρά; }

    }

Όταν εκτελείτε την εφαρμογή, θα παρατηρήσετε το χρόνο που ακολούθησε το βήμα που ορίσαμε όπως φαίνεται στο σχήμα 3 παρακάτω. Η καταχώριση που έχω επισημάνει με πράσινο χρώμα δείχνει τον χρόνο που απαιτείται για την εκτέλεση του βήματος "Λήψη συγγραφέων".

Αν θέλετε να αγνοήσετε ένα συγκεκριμένο τμήμα του κώδικα της εφαρμογής σας από τη δημιουργία προφίλ, μπορείτε να καθορίσετε τον κώδικα που θα αγνοηθεί όπως φαίνεται στο απόσπασμα κώδικα παρακάτω.

χρησιμοποιώντας (MiniProfiler.Current. Αγνοήστε ())

{

// Γράψτε εδώ κώδικα που δεν το κάνετε

// Θέλετε το MiniProfiler στο προφίλ

}

Χρησιμοποιήστε το MiniProfiler για να προβάλετε ερωτήματα ADO.Net

Μπορείτε επίσης να χρησιμοποιήσετε το MiniProfiler για να προβάλετε ερωτήματα στο ADO.Net. Για να το κάνετε αυτό θα πρέπει να επωφεληθείτε από το ProfileDbConnection και το ProfileDbCommand όπως φαίνεται στο παρακάτω απόσπασμα κώδικα.

χρησιμοποιώντας (SqlConnection σύνδεση = νέο SqlConnection (@ "Πηγή δεδομένων = JOYDIP \ SQLEXPRESS; Αρχικός Κατάλογος = SyncDB; Trusted_Connection = Yes"))

     {

χρησιμοποιώντας (ProfiledDbConnection profiledDbConnection = new ProfiledDbConnection (σύνδεση, MiniProfiler.Current))

         {

εάν (προφίλedDbConnection.State! = System.Data.ConnectionState.Open)

profiledDbConnection.Open ();

χρησιμοποιώντας (εντολή SqlCommand = νέο SqlCommand

("Επιλογή * Από Συγγραφείς", σύνδεση))

               {

χρησιμοποιώντας (ProfiledDbCommand profiledDbCommand =

νέο ProfiledDbCommand (εντολή, σύνδεση,

MiniProfiler.Current))

                       {                               

var δεδομένα =

profiledDbCommand.ExecuteReader ();

// Γράψτε κώδικα εδώ για να συμπληρώσετε τη λίστα των Συγγραφέων

                        }

                 }

          }                      

    }

Σημειώστε πώς το ProfileDbConnection και το ProfileDbCommand τυλίγουν τα αντικείμενα DbConnection και DbCommand. Μπορείτε να μάθετε περισσότερα σχετικά με τον τρόπο δημιουργίας προφίλ στον πηγαίο κώδικα χρησιμοποιώντας το MiniProfiler από τον ιστότοπο του MiniProfiler.

Το MiniProfiler είναι ένα απλό προφίλ για τα .Net, Ruby, Go και Node.js. Μπορείτε να χρησιμοποιήσετε το MiniProfiler για προφίλ ερωτημάτων που δημιουργούνται από το Dapper, το Linq2SQL και το Entity Framework. Εκτός από το ότι είναι εύκολο στη χρήση, το MiniProfiler δεν προσθέτει πολύ γενικά έξοδα στις εφαρμογές σας. Μπορείτε να χρησιμοποιήσετε το MiniProfiler για να σχεδιάσετε εφαρμογές στην παραγωγή χωρίς σημαντική επίπτωση στην απόδοση.