Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Customizing ASP.NET Core 6.0

You're reading from   Customizing ASP.NET Core 6.0 Learn to turn the right screws to optimize ASP.NET Core applications for better performance

Arrow left icon
Product type Paperback
Published in Dec 2021
Publisher Packt
ISBN-13 9781803233604
Length 204 pages
Edition 2nd Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Jürgen Gutsch Jürgen Gutsch
Author Profile Icon Jürgen Gutsch
Jürgen Gutsch
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Preface 1. Chapter 1: Customizing Logging 2. Chapter 2: Customizing App Configuration FREE CHAPTER 3. Chapter 3: Customizing Dependency Injection 4. Chapter 4: Configuring and Customizing HTTPS with Kestrel 5. Chapter 5: Configuring WebHostBuilder 6. Chapter 6: Using Different Hosting Models 7. Chapter 7: Using IHostedService and BackgroundService 8. Chapter 8: Writing Custom Middleware 9. Chapter 9: Working with Endpoint Routing 10. Chapter 10: Customizing ASP.NET Core Identity 11. Chapter 11: Configuring Identity Management 12. Chapter 12: Content Negotiation Using a Custom OutputFormatter 13. Chapter 13: Managing Inputs with Custom ModelBinder 14. Chapter 14: Creating a Custom ActionFilter 15. Chapter 15: Working with Caches 16. Chapter 16: Creating Custom TagHelper 17. Other Books You May Enjoy

Writing custom middleware

ASP.NET Core is based on middleware. All the logic that gets executed during a request is based on middleware. So, we can use this to add custom functionality to the web. In the following process, we want to find out the execution time of every request that goes through the request pipeline:

  1. We can do this by creating and starting a stopwatch before the next middleware is called, and stop measuring the execution time after the next middleware is called, like so:
    app.Use(async (context, next) =>
    {
        var s = new Stopwatch();
        s.Start();
        // execute the rest of the pipeline
        await next();
        s.Stop(); //stop measuring
        var result = s.ElapsedMilliseconds;
        // write out the milliseconds needed
        await context.Response.WriteAsync($" Time needed: 
        ...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image