Learn it from developers who built it.
Tutorials, how-tos and deep dives on AI, .NET, C#, cloud and developer tools, written by the community.
In this article you will learn how to use Azure Blob storage in ASP.NET Core.

Using an empty project from a previous post, amend Startup class ConfigureServicee() method, and add services for session and its backing store.

ASP.NET Core provides an encapsulation of System.IO.File type in order to limit the access to file systems via PhysicalFileProvider type, which is an implementation of IFileProvider.

Caching frequently used data can improve the performance of a web application. For applications hosted on multiple servers, using distributed caching means the application can access data regardless of the instance server. Caching should be considered an alternate to using Session State.

When you’re unable to use the compression features of web servers (IIS, Apache, Nginx), ASP.NET Core provides an alternate option, Response Compression middleware. It’s performance won’t match server based compression features though.

Routing in ASP.NET Core MVC is the mechanism through which incoming requests are mapped to controllers and their actions. This is achieved by adding Routing middleware to the pipeline and using IRouteBuilder to map URL pattern (template) to a controller and action.

In a previous post on Routing, I showed how MVC maps URLs to Controller and actions to execute. We touched on the topic of the model binding mechanism through which MVC binds routing template tokens to action parameters.

ASP.NET Core MVC middleware will find and execute the Razor template (.cshtml file) when the Controller returns ViewResult. Razor templates use syntax that combine C# and HTML to produce the final HTML page.

Layout page is added to the Views/Shared folder and is named (as a convention) _Layout.cshtml. There can be more than one layout pages in your application too.

Partial views are special type of views that are rendered inside other views. They are useful for reusing parts of a view or splitting a large view into smaller components.

View Components are special types of views that are rendered inside other views. They are useful for reusing parts of a view or splitting a large view into smaller components.

Razor pages inside Areas folder can use the Layout page located outside it (e.g. in /Views/Shared folder). You can define a separate Layout page for each Area too. Yet another approach is to define a common Layout page outside Areas folder and Layout pages inside Areas folder and use them as their layout, creating a nested Layout page structure. Below is a Layout page for Area2 that uses shared layout page (note you need an absolute path to shared layout).

Tag Helpers help generate HTML by attaching attributes to existing HTML elements or by creating new elements. Although they look like HTML elements and attributes, Tag Helpers are processed by Razor (server-side).

As discussed in the previous post, Tag Helpers help generate HTML by attaching attributes to existing HTML elements or by creating new elements. In this post we’ve created a new tag to display employee information.

Learn how to configure and use the ASP.NET Core MVC Distributed Cache Tag Helper with Redis and IDistributedCache to cache Razor view content.

Authentication is the process of validating user credentials and authorization is the process of checking privileges for a user to access specific modules in an application. In this article, we will see how to protect an ASP.NET 5 Web API application by implementing JWT authentication.

Today in this article I am going to show CURD operation with ASP.NET Core 5 MVC. We all know that Microsoft have released the version of core 5 which is now called .NET 5, So I thought why not create an article on ASP.NET core 5 MVC.

Filter runs after an action method has been selected to execute. MVC provides built-in filters for things like authorization and caching. Custom filters are very useful to encapsulate reusable code that you want to run before or after action methods.

I discussed in an earlier post that it is good practice to define middleware in a separate class and add to the pipeline using extension methods. We may also need to pass information to our middleware classes though and I’ve come across two patterns for this when digging into ASP.NET Core source code and other samples online.

Learn how to build a CRUD Web API in ASP.NET Core 2.0 using controllers, routing, DTOs, and GET, POST, PUT, PATCH, and DELETE endpoints.

I discussed in the previous post how configuration settings can be stored in configuration files. However, these files are checked in the source control and not suitable to store confidential settings. In a production environment these settings can be stored in environment variables or Azure Key Vault however, for development ASP.NET Core provides an alternate solution: Secret Manager.

Filtering information is usually received via query parameters. The POCO FilteringParamssimply hold this information and passes to service (or repository).

Paging information; i.e., page number and page size, is usually received via query parameters. The POCO PagingParams simply holds this information and passes it to service (or repository).

Sorting information is usually received via query parameters. The POCO SortingParams simply hold this information and passes to service (or repository).

As your Web API changes, you would need to add versioning support in order for clients to continue working correctly. Adding versioning support in ASP.NET Core involves first configuring services in Startup and then choosing a versioning strategy i.e. via query string, URL or HTTP header.

Implement HATEOAS in an ASP.NET Core Web API by adding action links to collection and individual resource responses using custom media types.

We add a magic value to the response based on data we hold at the time. Usually ETag header is added for this purpose containing hashed value based on data/body of response.

In case you’re wondering if the solution above is missing a Tag Helper for head HTML element, it’s not. ASP.NET Core team has provided us with two built-in Tag Helpers, one targets head and the other targets the body element: HeadTagHelper and BodyTagHelper.

Let us learn about formatters used in ASP.NET Core 2.0 Web API.

Documents generated by Swagger can include XML documentation.
Everything on ASP.NET Core, not only its articles: the ASP.NET Core page →
DevSocialUpcoming · 3rd editionAI Agents ConferenceNov 23–27, 2026Live onlineMembers only16days leftRegisterMembers onlyWrite an article and earn +1,000 SHARP when it is approved.
Write an article