---
title: "ASP.NET Core - Muhammad Rehan Saeed"
description: "Blog posts authored by Muhammad Rehan Saeed about ASP.NET Core."
canonical_url: "https://rehansaeed.com/tag/asp-net-core/"
meta:
  author: "Muhammad Rehan Saeed"
  "og:description": "Blog posts authored by Muhammad Rehan Saeed about ASP.NET Core."
  "og:image": "https://rehansaeed.com/_og/s/o_cefa0fac8e2c19fe.png"
  "og:image:alt": "# ASP.NET Core - Muhammad Rehan Saeed"
  "og:image:height": "630"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "ASP.NET Core"
  "twitter:image": "https://rehansaeed.com/_og/s/o_cefa0fac8e2c19fe.png"
  "twitter:image:alt": "# ASP.NET Core - Muhammad Rehan Saeed"
---

> Index of every page on this site: [llms.txt](https://rehansaeed.com/llms.txt)

# [# ASP.NET Core](https://rehansaeed.com/tag/asp-net-core/)

## [Optimally Configuring Open Telemetry Tracing for ASP.NET Core](https://rehansaeed.com/optimally-configuring-open-telemetry-tracing-for-asp-net-core/)

How to optimally configure Open Telemetry traces for ASP.NET Core enriched with lots of extra information.

Posted 3 February 2022 - **4 min read**

## [Exporting Open Telemetry Data to Jaeger](https://rehansaeed.com/exporting-open-telemetry-data-to-jaeger/)

How to optimally export Open Telemetry metrics, logs, and traces for .NET to Jaeger.

Posted 11 February 2021 - **3 min read**

## [Open Telemetry for ASP.NET Core](https://rehansaeed.com/open-telemetry-for-asp-net-core/)

The basics of how to configure Open Telemetry metrics, logs, and traces for ASP.NET Core and export the traces.

Posted 1 February 2021 - **3 min read**

## [Deep Dive into Open Telemetry for .NET](https://rehansaeed.com/deep-dive-into-open-telemetry-for-net/)

How to use the Open Telemetry specification, tools and SDK's used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) using .NET and ASP.NET.

Posted 19 January 2021 - **10 min read**

## [ASP.NET Core Integration Testing & Mocking using Moq](https://rehansaeed.com/asp-net-core-integration-testing-mocking-using-moq/)

Mocking services using Moq while integration testing ASP.NET Core applications in memory.

Posted 3 January 2020 - **4 min read**

## [Securing ASP.NET Core in Docker](https://rehansaeed.com/securing-asp-net-core-in-docker/)

How to secure your ASP.NET Core Docker image by setting the file system to be read-only. First in a series of blog posts covering Docker image security.

Posted 25 March 2019 - **1 min read**

## [Is ASP.NET Core now a Mature Platform?](https://rehansaeed.com/is-asp-net-core-now-a-mature-platform/)

ASP.NET Core a large developer base, a large number of GitHub projects, Stack Overflow questions, bloggers and companies who use it. It's a mature platform.

Posted 18 December 2018 and updated 12 January 2019 - **9 min read**

## [Optimally Configuring ASP.NET Core HttpClientFactory](https://rehansaeed.com/optimally-configuring-asp-net-core-httpclientfactory/)

How to optimally configure a HttpClient using the new HttpClientFactory API in ASP.NET Core 2.1 for best performance, usability, resiliency and easy of use.

Posted 20 August 2018 and updated 4 April 2021 - **9 min read**

## [ASP.NET Core Hidden Gem - QueryHelpers](https://rehansaeed.com/asp-net-core-hidden-gem-queryhelpers/)

How to build a URL containing dynamic query arguments using the ASP.NET Core QueryHelpers.AddQueryString method. A hidden gem in ASP.NET Core.

Posted 14 July 2018 - **1 min read**

## [.NET Boxed](https://rehansaeed.com/net-boxed/)

.NET Boxed is a set of project templates with batteries included, providing the minimum amount of code required to get you going faster.

Posted 13 May 2018 - **2 min read**

## [The Dotnet Watch Tool Revisited](https://rehansaeed.com/the-dotnet-watch-tool-revisited/)

The dotnet watch tool is a file watcher for dotnet that restarts the application when changes in the source code are detected. You can use dotnet watch in Visual Studio by using the launchSettings.json configuration file.

Posted 30 April 2018 - **2 min read**

## [Docker Read-Only File Systems](https://rehansaeed.com/docker-read-file-systems/)

How to use a read-only file system in Docker to secure your Docker containers using the docker run CLI command and Docker compose or docker swarm.

Posted 13 November 2017 - **1 min read**

## [ASP.NET Core Caching in Practice](https://rehansaeed.com/asp-net-core-caching-in-practice/)

How to use and implement Cache-Control, Cache-Control Immutable, E-Tag, Last-Modified and If-Modified-Since Caching HTTP headers in ASP.NET Core.

Posted 20 October 2017 - **5 min read**

## [ASP.NET Core Lazy Command Pattern](https://rehansaeed.com/asp-net-core-lazy-command-pattern/)

Move your ASP.NET Core MVC action method logic into lazily loaded commands using the command pattern, to reduce Controller complexity.

Posted 8 April 2017 - **4 min read**

## [dotnet new Feature Selection](https://rehansaeed.com/dotnet-new-feature-selection/)

How to add feature selection to your dotnet new template using symbols (bool, string, choice, computed) and pre-processor directives.

Posted 26 March 2017 - **9 min read**

## [SEO Friendly URL's for ASP.NET Core](https://rehansaeed.com/seo-friendly-urls-asp-net-core/)

An SEO friendly URL is human readable and gives your site a higher page rank. Learn how to implement SEO friendly URL's using ASP.NET Core.

Posted 17 December 2016 - **7 min read**

## [Making Application Insights Fast & Secure](https://rehansaeed.com/making-application-insights-fast-and-secure/)

Implementing Application Insights into your ASP.NET Core application with performance and security as a top priority in this advanced scenario.

Posted 11 December 2016 - **4 min read**

## [The Dotnet Watch Tool](https://rehansaeed.com/the-dotnet-watch-tool/)

The dotnet watch tool is a file watcher for dotnet that restarts the application when changes in the source code are detected.

Posted 10 September 2016 - **2 min read**

## [NGINX for ASP.NET Core In-Depth](https://rehansaeed.com/nginx-asp-net-core-depth/)

NGINX is a popular open source web server. It can act as a reverse proxy server for ASP.NET Core web apps. How to configure NGINX for ASP.NET Core.

Posted 21 August 2016 - **11 min read**

## [ASP.NET Core Fluent Interface Extensions](https://rehansaeed.com/asp-net-core-fluent-interface-extensions/)

Using the fluent interface style in with ASP.NET Core Fluent Interface Extension methods. Building on top of the work done by Khalid Abuhakmeh.

Posted 26 June 2016 - **2 min read**

## [Social TagHelpers for ASP.NET Core](https://rehansaeed.com/social-taghelpers-for-asp-net-core/)

Enhance the experience of sharing a page from your site through the use of social media meta tags implemented with ASP.NET Core TagHelpers.

Posted 19 March 2016 - **5 min read**

## [Subresource Integrity TagHelper Using ASP.NET Core - Part 2](https://rehansaeed.com/subresource-integrity-taghelper-using-asp-net-core-part-2/)

Use an ASP.NET Core TagHelper to implement Subresource Integrity (SRI) to ensure that external resources have not been tampered with. With is part 2.

Posted 12 March 2016 - **4 min read**

## [Subresource Integrity TagHelper Using ASP.NET Core - Part 1](https://rehansaeed.com/subresource-integrity-taghelper-using-asp-net-core/)

Use an ASP.NET Core TagHelper to implement Subresource Integrity (SRI) to ensure that external resources have not been tampered with.

Posted 6 March 2016 - **3 min read**

## [Canonical URL's for ASP.NET MVC](https://rehansaeed.com/canonical-urls-for-asp-net-mvc/)

Use canonical URL's in ASP.NET MVC for better Search Engine Optimization (SEO) using ASP.NET Core Boilerplate and the RedirectToCanonicalUrlAttribute.

Posted 14 July 2015 - **11 min read**

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://rehansaeed.com/#website","@type":"WebSite","description":"Software Developer at Microsoft, YouTuber, Open Source Contributor and Blogger","inLanguage":"en-GB","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com/","author":{"@id":"https://rehansaeed.com/#identity"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://rehansaeed.com/?search={search_term_string}"},"query-input":"required name=search_term_string"}],"publisher":{"@id":"https://rehansaeed.com/#publisher"}},{"@id":"https://rehansaeed.com/tag/asp-net-core/#webpage","description":"Blog posts authored by Muhammad Rehan Saeed about ASP.NET Core.","name":"ASP.NET Core","url":"https://rehansaeed.com/tag/asp-net-core/","@type":["WebPage","CollectionPage"],"breadcrumb":{"@id":"https://rehansaeed.com/tag/asp-net-core/#breadcrumb"},"isPartOf":{"@id":"https://rehansaeed.com/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://rehansaeed.com/tag/asp-net-core/"]}]},{"@id":"https://rehansaeed.com/#identity","@type":"Person","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com/about/","image":{"@id":"https://rehansaeed.com/#/schema/image/1"},"sameAs":["https://github.com/RehanSaeed","https://www.linkedin.com/in/muhammad-rehan-saeed","https://stackoverflow.com/users/1212017/muhammad-rehan-saeed","https://www.youtube.com/c/MuhammadRehanSaeed","https://www.twitch.tv/rehansaeeduk"]},{"@id":"https://rehansaeed.com/#publisher","@type":"Organization","logo":"https://rehansaeed.com/images/schema/Publisher-600x60.png","name":"Muhammad Rehan Saeed","url":"https://rehansaeed.com"},{"@id":"https://rehansaeed.com/tag/asp-net-core/#/schema/item-list/1","@type":"ItemList","itemListElement":[{"@type":"ListItem","name":"Optimally Configuring Open Telemetry Tracing for ASP.NET Core","url":"https://rehansaeed.com/optimally-configuring-open-telemetry-tracing-for-asp-net-core/","position":1},{"@type":"ListItem","name":"Exporting Open Telemetry Data to Jaeger","url":"https://rehansaeed.com/exporting-open-telemetry-data-to-jaeger/","position":2},{"@type":"ListItem","name":"Open Telemetry for ASP.NET Core","url":"https://rehansaeed.com/open-telemetry-for-asp-net-core/","position":3},{"@type":"ListItem","name":"Deep Dive into Open Telemetry for .NET","url":"https://rehansaeed.com/deep-dive-into-open-telemetry-for-net/","position":4},{"@type":"ListItem","name":"ASP.NET Core Integration Testing & Mocking using Moq","url":"https://rehansaeed.com/asp-net-core-integration-testing-mocking-using-moq/","position":5},{"@type":"ListItem","name":"Securing ASP.NET Core in Docker","url":"https://rehansaeed.com/securing-asp-net-core-in-docker/","position":6},{"@type":"ListItem","name":"Is ASP.NET Core now a Mature Platform?","url":"https://rehansaeed.com/is-asp-net-core-now-a-mature-platform/","position":7},{"@type":"ListItem","name":"Optimally Configuring ASP.NET Core HttpClientFactory","url":"https://rehansaeed.com/optimally-configuring-asp-net-core-httpclientfactory/","position":8},{"@type":"ListItem","name":"ASP.NET Core Hidden Gem - QueryHelpers","url":"https://rehansaeed.com/asp-net-core-hidden-gem-queryhelpers/","position":9},{"@type":"ListItem","name":".NET Boxed","url":"https://rehansaeed.com/net-boxed/","position":10},{"@type":"ListItem","name":"The Dotnet Watch Tool Revisited","url":"https://rehansaeed.com/the-dotnet-watch-tool-revisited/","position":11},{"@type":"ListItem","name":"Docker Read-Only File Systems","url":"https://rehansaeed.com/docker-read-file-systems/","position":12},{"@type":"ListItem","name":"ASP.NET Core Caching in Practice","url":"https://rehansaeed.com/asp-net-core-caching-in-practice/","position":13},{"@type":"ListItem","name":"ASP.NET Core Lazy Command Pattern","url":"https://rehansaeed.com/asp-net-core-lazy-command-pattern/","position":14},{"@type":"ListItem","name":"dotnet new Feature Selection","url":"https://rehansaeed.com/dotnet-new-feature-selection/","position":15},{"@type":"ListItem","name":"SEO Friendly URL's for ASP.NET Core","url":"https://rehansaeed.com/seo-friendly-urls-asp-net-core/","position":16},{"@type":"ListItem","name":"Making Application Insights Fast & Secure","url":"https://rehansaeed.com/making-application-insights-fast-and-secure/","position":17},{"@type":"ListItem","name":"The Dotnet Watch Tool","url":"https://rehansaeed.com/the-dotnet-watch-tool/","position":18},{"@type":"ListItem","name":"NGINX for ASP.NET Core In-Depth","url":"https://rehansaeed.com/nginx-asp-net-core-depth/","position":19},{"@type":"ListItem","name":"ASP.NET Core Fluent Interface Extensions","url":"https://rehansaeed.com/asp-net-core-fluent-interface-extensions/","position":20},{"@type":"ListItem","name":"Social TagHelpers for ASP.NET Core","url":"https://rehansaeed.com/social-taghelpers-for-asp-net-core/","position":21},{"@type":"ListItem","name":"Subresource Integrity TagHelper Using ASP.NET Core - Part 2","url":"https://rehansaeed.com/subresource-integrity-taghelper-using-asp-net-core-part-2/","position":22},{"@type":"ListItem","name":"Subresource Integrity TagHelper Using ASP.NET Core - Part 1","url":"https://rehansaeed.com/subresource-integrity-taghelper-using-asp-net-core/","position":23},{"@type":"ListItem","name":"Canonical URL's for ASP.NET MVC","url":"https://rehansaeed.com/canonical-urls-for-asp-net-mvc/","position":24}]},{"@id":"https://rehansaeed.com/tag/asp-net-core/#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Blog","item":"https://rehansaeed.com/","position":1},{"@type":"ListItem","name":"ASP.NET Core","item":"https://rehansaeed.com/tag/asp-net-core/","position":2}]},{"@id":"https://rehansaeed.com/#/schema/image/1","@type":"ImageObject","contentUrl":"https://rehansaeed.com/images/author/Muhammad-Rehan-Saeed/Logo-512x512.png","inLanguage":"en-GB","url":"https://rehansaeed.com/images/author/Muhammad-Rehan-Saeed/Logo-512x512.png"}]}
```

## Sitemap

See the full [sitemap](https://rehansaeed.com/sitemap.md) for all pages.
