<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/aspnetcore/best-of/2024" -->

---
title: Best ASP.NET Core posts of 2024 | daily.dev
description: The most upvoted ASP.NET Core posts of 2024, curated by the daily.dev community.
canonical: https://daily.dev/tags/aspnetcore/best-of/2024
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/aspnetcore/best-of/2024
og:type: website
og:site_name: daily.dev
og:title: Best ASP.NET Core posts of 2024 | daily.dev
og:description: The most upvoted ASP.NET Core posts of 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of ASP.NET Core — 2024

1. 1  
[](/posts/swagger-is-gone-in-net-9-replace-it-with-this--n5dlbimqt "Swagger is Gone in .NET 9! Replace It With This.")  
Video  
![Avatar of nickchapsas](https://media.daily.dev/image/upload/s--T_RLq3JV--/f_auto/v1716024738/logos/nickchapsas)Nick Chapsas · 2y  
Swagger is Gone in .NET 9! Replace It With This.  
Swagger has been removed in .NET 9 and replaced with Microsoft's built-in OpenAPI functionalities. To adapt to this change, developers can use the 'app.mapOpenAPI' call for API documentation without a UI. Alternatively, they can integrate third-party tools such as Swashbuckle to restore the Swagger UI, or use Scaler, which offers a modern and customizable API documentation UI. Scaler provides various themes and integration options, including dark mode and authentication schemes, making it a versatile alternative.  
69  
4
2. 2  
[](/posts/next-generation-project-creation-for-net-c6u4m3zrg "Next Generation Project Creation for .NET")  
Article  
![Avatar of devblogs](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8f68b453325f482ebeb73fb780092713)DevBlogs · 2y  
Next Generation Project Creation for .NET  
The new interactive CLI tool 'dotnet scaffold' has been released as a preview for scaffolding in ASP.NET Core projects. It provides an improved command line experience, allowing users to generate boilerplate code interactively. This post details the installation process, usage examples, and shows how to scaffold different components such as Razor Pages and Entity Framework models in ASP.NET Core 9 web apps. The tool aims to make project setup more straightforward and efficient.  
65  
1
3. 3  
[](/posts/building-async-apis-in-asp-net-core---the-right-way-7vpdynzuw "Building Async APIs in ASP.NET Core - The Right Way")  
Article  
![Avatar of milanjovanovic](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566)Milan Jovanović · 2y  
Building Async APIs in ASP.NET Core - The Right Way  
Handling long-running tasks asynchronously in ASP.NET Core can improve user experience and server efficiency. By accepting requests and processing them in the background, users receive immediate responses and can check the status later. The system can handle more requests simultaneously without getting bogged down by time-consuming operations. Real-time updates through SignalR, WebSockets, or email notifications provide instant feedback, enhancing usability and system integration.  
62
4. 4  
[](/posts/how-to-use-the-repr-pattern-in-net-jv0uhv6ag "How to Use the REPR Pattern in .NET")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
How to Use the REPR Pattern in .NET  
The REPR (Request-Endpoint-Response) design pattern in .NET emphasizes API design around endpoints instead of controllers, improving organization and maintainability. Created by Steve Smith, it ensures adherence to the Single Responsibility Principle (SRP). The post explains how to implement the REPR pattern using the FastEndpoints library in a .NET project, highlighting the advantages and potential drawbacks of this approach.  
56
5. 5  
[](/posts/differences-between-onion-architecture-and-clean-architecture-lrqb2gprp "Differences Between Onion Architecture and Clean Architecture")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
Differences Between Onion Architecture and Clean Architecture  
Onion and clean architectures are both used to create maintainable, scalable, and testable applications by structuring code into layers. Onion architecture is centered around a domain layer with a concentric layer approach focusing on dependency management. Clean architecture, while sharing these principles, organizes code around distinct use cases and emphasizes independence from external systems. The choice between them depends on the priority given to flexibility, business logic complexity, and team familiarity with strict guidelines.  
55
6. 6  
[](/posts/master-refresh-tokens-in-asp-net-core-building-from-scratch--efjwsmjdw "Master Refresh Tokens in ASP.NET Core (Building from Scratch)")  
Article  
![Avatar of collections](https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0)Collections · 2y  
Master Refresh Tokens in ASP.NET Core (Building from Scratch)  
Learn how to implement refresh tokens in an ASP.NET Core application, enhancing security and user experience. This guide covers key concepts such as access tokens, refresh tokens, and token lifetimes. It provides step-by-step instructions on setting up a database, generating tokens, creating a token refresh endpoint, and managing token lifetimes while emphasizing best practices like secure storage and regular token rotation.  
53
7. 7  
[](/posts/manage-background-tasks-in-net-ns4qtk7mp "Manage Background Tasks in .NET")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
Manage Background Tasks in .NET  
The IHostedLifecycleService interface in .NET extends the IHostedService interface to offer finer control over the lifecycle of hosted services. It introduces additional methods to manage actions before and after the service starts and stops. This allows for the execution of crucial tasks like initialization and resource disposal at precise points. Concurrent startup and shutdown of services, introduced in .NET 8, further enhance this capability, enabling more efficient and resilient applications, particularly when multiple services are involved.  
53
8. 8  
[](/posts/master-asp-net-core-by-building-three-projects-lqfrsax57 "Master ASP.NET Core by Building Three Projects")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 3y  
Master ASP.NET Core by Building Three Projects  
A course on the freeCodeCamp.org YouTube channel that teaches ASP.NET Core MVC by building three projects.  
53
9. 9  
[](/posts/best-practices-in-building-asp-net-core-api-projects-wxv0zkodh "Best Practices in Building ASP.NET Core API Projects")  
Article  
![Avatar of telerik](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5ee6d4bef8ac4f84886d06f5881963e7)Telerik · 2y  
Best Practices in Building ASP.NET Core API Projects  
Building an effective ASP.NET Core API project involves applying SOLID principles and leveraging design patterns to structure the backend. Key decisions include choosing between API Controller classes and minimal APIs, managing Program.cs file size, organizing services to avoid bottlenecks, and implementing proper versioning. Using facades or orchestrators can help streamline client requests across multiple services, while structuring projects by features ensures maintainability. Employing the ASP.Versioning.Http NuGet package can aid in handling versioning gracefully.  
50
10. 10  
[](/posts/6-security-best-practices-for-asp-net-core-p31sedpoe "6 security best practices for ASP.NET Core")  
Article  
![Avatar of infoworld](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf6d68a999064029b0bb09aa6268f1f3)InfoWorld · 2y  
6 security best practices for ASP.NET Core  
Learn about 6 security best practices for ASP.NET Core, including enforcing HTTPS, using HSTS, preventing CSRF attacks, thwarting XSS attacks, preventing SQL injection, and creating custom error pages.  
49
11. 11  
[](/posts/caching-in-asp-net-core-improving-application-performance-cvy36mvtp "Caching in ASP.NET Core: Improving Application Performance")  
Article  
![Avatar of milanjovanovic](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566)Milan Jovanović · 2y  
Caching in ASP.NET Core: Improving Application Performance  
Learn how caching can improve application performance in ASP.NET Core. Explore different types of caches, caching abstractions, and caching strategies like the cache-aside pattern. Discover the benefits and limitations of in-memory caching and distributed caching with Redis.  
47
12. 12  
[](/posts/authentication-and-authorization-enhancements-in-net-9-0-zadhkrhqz "Authentication and Authorization Enhancements in .NET 9.0")  
Article  
![Avatar of auth0](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/6510ffa7350449618fbacdddae663b82)Auth0 · 2y  
Authentication and Authorization Enhancements in .NET 9.0  
NET 9 includes various enhancements for authentication and authorization, focusing on cloud-native development and performance. Key features include support for Pushed Authorization Requests (PAR) to enhance security in OAuth 2.0 and OpenID Connect environments, simplified methods for adding custom OAuth/OIDC parameters, configuration flags for Windows Authentication under HTTP.sys, and methods to serialize authentication states in Blazor Web Apps. These updates aim to simplify developers' tasks, improve security, and reduce potential bugs.  
47
13. 13  
[](/posts/clean-architecture-in-net-iue7xafel "Clean Architecture in .NET")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 3y  
Clean Architecture in .NET  
Clean Architecture is an architecture pattern aimed at building maintainable, scalable, and easily testable applications. It separates the application into different layers: domain, application, infrastructure, and presentation. Clean Architecture and Onion Architecture have similar goals but differ in how they separate layers based on abstraction and focus on the core. To implement Clean Architecture in .NET, follow the principles of separation of concerns, loose coupling, and testability. Use CQRS with MediatR for the application layer.  
47
14. 14  
[](/posts/asp-net-core-mvc-course-for-beginners-net-9--h0vyh6haw "ASP.NET Core MVC Course for Beginners (.NET 9)")  
Video  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 2y  
ASP.NET Core MVC Course for Beginners (.NET 9)  
In this crash course on ASP.NET Core MVC and Entity Framework Core, you will learn from scratch about the MVC app structure, how to work with databases using Entity Framework Core, and the essential concepts required for developing applications using the latest .NET version (9). The course covers breaking down the MVC architecture, working with models, views, and controllers, and includes practical steps to download, install, and configure .NET 9 and Visual Studio.  
46
15. 15  
[](/posts/openapi-document-generation-in-net-9-xs85klidz "OpenAPI document generation in .NET 9")  
Article  
![Avatar of dotnet](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/f23eb59371bd4f07aeef64c4eef73266).NET Blog · 2y  
OpenAPI document generation in .NET 9  
ASP.NET Core in .NET 9 introduces built-in support for OpenAPI document generation, simplifying the process of documenting API endpoints. This feature supports both Minimal APIs and controller-based applications, and allows for customization via attributes and extension methods. Developers can generate OpenAPI documents at both runtime and build time, integrate metadata for better documentation, and use transformers for further customization.  
41  
2
16. 16  
[](/posts/problem-details-for-asp-net-core-apis-t5tocrrng "Problem Details for ASP.NET Core APIs")  
Article  
![Avatar of milanjovanovic](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566)Milan Jovanović · 2y  
Problem Details for ASP.NET Core APIs  
Providing consistent and informative error responses is crucial for a smooth developer experience in HTTP APIs. Problem Details in ASP.NET Core offers a standardized solution, making it easier to communicate errors effectively. The latest updates include RFC 9457, new global exception handling with .NET 8's IExceptionHandler, and customizable error responses using IProblemDetailsService. This guide covers implementing Problem Details, global error handling strategies, and customizing error responses to improve API error management.  
40
17. 17  
[](/posts/introducing-asp-net-core-metrics-and-grafana-dashboards-in-net-8-aslkz6qrk "Introducing ASP.NET Core metrics and Grafana dashboards in .NET 8")  
Article  
![Avatar of dotnet](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/f23eb59371bd4f07aeef64c4eef73266).NET Blog · 3y  
Introducing ASP.NET Core metrics and Grafana dashboards in .NET 8  
ASP.NET Core in .NET 8 introduces metrics and Grafana dashboards. Metrics can be used to monitor app activity and can be displayed on a dashboard or trigger real-time alerts. There are options available for using these metrics, including the .NET Aspire dashboard and ASP.NET Core Grafana dashboards.  
36  
1
18. 18  
[](/posts/easycaching-library-in-asp-net-core-oleqqvhsx "EasyCaching library in ASP.NET Core")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
EasyCaching library in ASP.NET Core  
EasyCaching is an open-source caching library for ASP.NET Core that simplifies caching management and provides alternative to the built-in caching library. It helps improve the performance of web applications by minimizing the need for repeated SQL queries, API calls, or calculations.  
34
19. 19  
[](/posts/multitenancy-in-net-with-orchard-core-dubozpbd2 "Multitenancy in .NET With Orchard Core")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
Multitenancy in .NET With Orchard Core  
Orchard Core is an open-source platform built on ASP.NET Core, supporting multitenancy to serve multiple customers efficiently. This guide covers the installation and configuration of Orchard Core for multitenant .NET applications, including using the admin dashboard to manage tenants, integrating features and modules, and dynamically creating new tenants. Orchard Core offers both an application framework and a CMS, enabling modular, scalable, and customizable solutions.  
31
20. 20  
[](/posts/top-net-blogs-posts-of-2024-majdhmwc3 "Top .NET Blogs Posts of 2024")  
Article  
![Avatar of aspnet](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ff70247f4b29446e9d30433c3f38652a)ASP.NET Blog · 2y  
Top .NET Blogs Posts of 2024  
In 2024, the .NET blog continued to be a significant resource for developers, highlighting the release of .NET 9 with comprehensive documentation and performance improvements. Key topics included ASP.NET Core metrics, .NET Aspire for cloud-native development, and the introduction of AI-powered UI controls with .NET Smart Components. The blog also featured detailed posts on C# 12 and AI advancements in .NET, providing insights and updates to the .NET community.  
30
21. 21  
[](/posts/stringvalues-in-asp-net-core-fuqydsbhv "StringValues in ASP.NET Core")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
StringValues in ASP.NET Core  
StringValues is a specialized type in ASP.NET Core designed to efficiently handle collections of strings, especially useful for scenarios involving HTTP headers, query strings, and form data. Unlike naive implementations using arrays or older solutions like NameValueCollection, StringValues minimizes memory allocations by using a single internal object to represent multiple strings. This enhances performance and scalability, making it ideal for high-traffic web applications.  
30
22. 22  
[](/posts/building-an-asp-net-core-web-api-with-gridify-qeanupkxx "Building an ASP.NET Core Web API with Gridify")  
Article  
![Avatar of csharpcorner](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ada2d584df6241748fc4e71878dc70a3)C# Corner · 2y  
Building an ASP.NET Core Web API with Gridify  
Gridify is a powerful and lightweight library designed to simplify data filtering, sorting, and pagination in ASP.NET Core Web APIs. It integrates seamlessly into existing projects, supporting complex data structures and custom mappings. This guide demonstrates how to set up an ASP.NET Core Web API project with Gridify, covering essential features like dynamic filtering, sorting, and pagination. Gridify helps reduce repetitive code, making APIs more maintainable and efficient.  
28  
1
23. 23  
[](/posts/conditionally-add-middleware-in-asp-net-core-7oysx57i9 "Conditionally Add Middleware in ASP.NET Core")  
Article  
![Avatar of codemaze](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5004eb44be854b11bc10517031b0ad88)Code Maze · 2y  
Conditionally Add Middleware in ASP.NET Core  
Learn how to conditionally add middleware in ASP.NET Core applications to adapt behavior based on runtime environment or request details. Techniques include using the IWebHostEnvironment interface for environment-based conditions, the UseWhen() extension method for custom predicates, and the MapWhen() extension method to split the request pipeline. Understand when to use each method and how to apply them effectively.  
28
24. 24  
[](/posts/scheduling-background-jobs-with-quartz-in-net-advanced-concepts--iqfp2k3bh "Scheduling Background Jobs With Quartz in .NET (advanced concepts)")  
Article  
![Avatar of milanjovanovic](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566)Milan Jovanović · 2y  
Scheduling Background Jobs With Quartz in .NET (advanced concepts)  
Learn how to set up Quartz.NET with ASP.NET Core for robust background job scheduling. This guide covers installing necessary NuGet packages, setting up Quartz services and OpenTelemetry instrumentation, defining and scheduling jobs using JobDataMap, handling both one-time and recurring jobs, and configuring persistent storage with PostgreSQL. Additionally, it highlights best practices such as using durable jobs for consistent job definitions.  
27
25. 25  
[](/posts/the-right-way-to-build-async-apis-in-asp-net-core-qsfjmtj08 "The Right Way To Build Async APIs in ASP.NET Core")  
Video  
![Avatar of wearedotnet](https://media.daily.dev/image/upload/s--BsnVOa3i--/f_auto/v1718347410/logos/wearedotnet)We Are .NET · 2y  
The Right Way To Build Async APIs in ASP.NET Core  
Learn how to build asynchronous REST APIs in ASP.NET Core where requests get an immediate response, while the detailed work happens in the background. The post provides an example of a thumbnail generation service, which processes image resizing asynchronously using the Channel class and background services. It discusses how to improve user experience by decoupling slow processing from the main request-response cycle and offers insights into managing asynchronous tasks effectively.  
27

[See all ASP.NET Core archives](/tags/aspnetcore/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/aspnetcore/best-of/2024#page","url":"https://daily.dev/tags/aspnetcore/best-of/2024","name":"Best ASP.NET Core Posts of 2024","description":"The most upvoted ASP.NET Core posts of 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/aspnetcore/best-of/2024#items","numberOfItems":25,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/swagger-is-gone-in-net-9-replace-it-with-this--n5dlbimqt","name":"Swagger is Gone in .NET 9! Replace It With This."},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/next-generation-project-creation-for-net-c6u4m3zrg","name":"Next Generation Project Creation for .NET"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/building-async-apis-in-asp-net-core---the-right-way-7vpdynzuw","name":"Building Async APIs in ASP.NET Core - The Right Way"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/how-to-use-the-repr-pattern-in-net-jv0uhv6ag","name":"How to Use the REPR Pattern in .NET"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/differences-between-onion-architecture-and-clean-architecture-lrqb2gprp","name":"Differences Between Onion Architecture and Clean Architecture"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/master-refresh-tokens-in-asp-net-core-building-from-scratch--efjwsmjdw","name":"Master Refresh Tokens in ASP.NET Core (Building from Scratch)"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/manage-background-tasks-in-net-ns4qtk7mp","name":"Manage Background Tasks in .NET"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/master-asp-net-core-by-building-three-projects-lqfrsax57","name":"Master ASP.NET Core by Building Three Projects"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/best-practices-in-building-asp-net-core-api-projects-wxv0zkodh","name":"Best Practices in Building ASP.NET Core API Projects"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/6-security-best-practices-for-asp-net-core-p31sedpoe","name":"6 security best practices for ASP.NET Core"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/caching-in-asp-net-core-improving-application-performance-cvy36mvtp","name":"Caching in ASP.NET Core: Improving Application Performance"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/authentication-and-authorization-enhancements-in-net-9-0-zadhkrhqz","name":"Authentication and Authorization Enhancements in .NET 9.0"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/clean-architecture-in-net-iue7xafel","name":"Clean Architecture in .NET"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/asp-net-core-mvc-course-for-beginners-net-9--h0vyh6haw","name":"ASP.NET Core MVC Course for Beginners (.NET 9)"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/openapi-document-generation-in-net-9-xs85klidz","name":"OpenAPI document generation in .NET 9"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/problem-details-for-asp-net-core-apis-t5tocrrng","name":"Problem Details for ASP.NET Core APIs"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/introducing-asp-net-core-metrics-and-grafana-dashboards-in-net-8-aslkz6qrk","name":"Introducing ASP.NET Core metrics and Grafana dashboards in .NET 8"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/easycaching-library-in-asp-net-core-oleqqvhsx","name":"EasyCaching library in ASP.NET Core"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/multitenancy-in-net-with-orchard-core-dubozpbd2","name":"Multitenancy in .NET With Orchard Core"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/top-net-blogs-posts-of-2024-majdhmwc3","name":"Top .NET Blogs Posts of 2024"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/stringvalues-in-asp-net-core-fuqydsbhv","name":"StringValues in ASP.NET Core"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/building-an-asp-net-core-web-api-with-gridify-qeanupkxx","name":"Building an ASP.NET Core Web API with Gridify"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/conditionally-add-middleware-in-asp-net-core-7oysx57i9","name":"Conditionally Add Middleware in ASP.NET Core"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/scheduling-background-jobs-with-quartz-in-net-advanced-concepts--iqfp2k3bh","name":"Scheduling Background Jobs With Quartz in .NET (advanced concepts)"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/the-right-way-to-build-async-apis-in-asp-net-core-qsfjmtj08","name":"The Right Way To Build Async APIs in ASP.NET Core"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"ASP.NET Core","item":"https://daily.dev/tags/aspnetcore"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/aspnetcore/best-of"},{"@type":"ListItem","position":5,"name":"2024"}]}]}
```

