Tutorials on ASP.NET Core, Blazor, jQuery, JavaScript, Entity Framework, Identity, WordPress, SQL, HTML & more


How to create PDF files in ASP.NET Core with MigraDoc

Last Updated: May 1, 2026

MigraDoc is a popular .NET library used in ASP.NET Core applications to generate structured PDF documents programmatically. It creates rich documents with elements like paragraphs, tables, headers, and images. In an ASP.NET Core project, you typically define a document using Migradoc’s object model, render it with PdfDocumentRenderer, and then return the generated PDF as a file response from a controller. This approach is useful for creating invoices, reports, or dynamic documents on the fly, while keeping layout logic clean and maintainable within your C# code.

MigraDoc is 100% free and Open Source. You can use it in your projects freely. Download the source codes from our GitHub repository.
(more…)

How to use RabbitMQ with MassTransit for ASP.NET Core Microservices Communication

Last Updated: April 21, 2026

RabbitMQ is a popular message broker used to enable reliable, scalable, and asynchronous communication between different components of an application. In the context of ASP.NET Core, RabbitMQ is commonly integrated to decouple services, improve performance, and handle background processing efficiently.

When building modern web applications with ASP.NET Core, especially in microservices architectures, direct communication between services can lead to tight coupling and reduced flexibility. RabbitMQ helps solve this by acting as an intermediary that manages message queues. Instead of services calling each other directly, they send messages to a queue, which are then consumed by other services when they are ready. This approach enhances fault tolerance and allows systems to scale independently.

(more…)

jQuery DataTables in ASP.NET Core with Server Side Processing

Last Updated: April 14, 2026

jQuery DataTables is a jquery plugin that turns a normal HTML table into an interactive table with features like search, sorting, pagination, and searching (filter records). It’s widely used in web development to display large datasets in a clean, user-friendly way. In this tutorial we will use jQuery DataTables in ASP.NET Core with Server Side Processing. We will fetch data from SQL Server database with Entity Framework Core and then display this data in jQuery Datatables. In DataTables we can also use features like search, sorting, pagination, and filtering.

(more…)

How to use Prometheus and Grafana in ASP.NET Core

Last Updated: April 1, 2026

Prometheus is like a health monitoring system for software systems. It continuously checks metrics and alerts you if something goes wrong. You can then analyze and process them as needed. We can integrate Prometheus in .NET apps and provide metrics through an HTTP endpoint which is /metrics and Prometheus periodically pulls data from those endpoints. You can visualize data in Prometheus itself or use external tools like Grafana. Grafana enables users to query, correlate, and visualize metrics, logs, traces, and other telemetry from many data source including Prometheus. Grafana creates interactive dashboards for these data. In this tutorial we are going to explore both Prometheus and Grafana and learn how to use them in ASP.NET Core.

(more…)

The Entity Framework Extensions: Performance-Focused (Need for Speed) when working with large Datasets

Last Updated: March 28, 2026

Working with large datasets over the standard Entity Framework Core SaveChanges() method can quickly become a performance bottleneck. The reason is due to the SaveChanges() method's "one-by-one" processing nature and heavy change-tracking overhead. Entity Framework Extensions library eliminates these constraints through some of the popular features on bulk operations. These are inserts, updates, deletes, and merges (upserts) on thousands or millions of records in a fraction of the time.

Whether you are handling batch data imports, real-time telemetry, or large-scale synchronization, Entity Framework Extensions library bridges the gap between the productivity of an ORM and the raw speed of specialized data loading tools. Thus offers a "need for speed" approach, that can reduce execution times by up to 95%, all while maintaining seamless integration with your existing DbContext and entity configurations.

In this tutorial we will be implementing Entity Framework Extensions library features in our ASP.NET Core app to create popular features on bulk operations.

All these codes are available to download from my GitHub repository. You can use these codes freely in your projects.
(more…)

How to integrate OpenTelemetry with Jaeger for Distributed Tracing in ASP.NET Core

Last Updated: March 10, 2026

Distributed tracing is a digital "breadbox trail" that allows engineers to follow a single request as it hops across various servers, databases, and microservices. It transforms a chaotic web of data into a clear timeline, making it easy to pinpoint exactly where a system is breaking or slowing down. Distributed tracing isolates a single request’s journey, stitching together every task performed across different services while filtering out the noise of thousands of other simultaneous users. It effectively "colors" one specific thread of execution so you can follow it from start to finish without getting lost in the crowd.

(more…)

How to perform Health checks in ASP.NET Core

Last Updated: February 28, 2026

In the world of software development, health checks are automated diagnostic "pulses" that verify whether an application is functioning correctly. Unlike simple uptime monitors, a comprehensive health check doesn't just ask, "Is the app on?"—it asks, "Is the app actually ready to work?" This involves probing specific endpoints (like /healthz) to validate internal components such as database connectivity, memory usage, and third-party API responsiveness.

Why They Matter

Proactive Recovery: Systems like Kubernetes use these checks to identify "zombie" processes that are running but frozen, automatically restarting them to minimize downtime.

Smart Traffic Routing: Load balancers like Nginx use health checks to divert traffic away from struggling servers, ensuring users only hit healthy instances.

Early Detection: They catch issues—like a disconnected database or a full disk—before they escalate into a site-wide outage.

The full source codes for the Health Checks app which we will build in this tutorial can be downloaded from this GitHub repository.

Add Health Checks in ASP.NET Core Apps

In ASP.NET Core app a basic heath check can be added to process requests (liveness) of the app. In the Program class import the namespace called "Microsoft.Extensions.Diagnostics.HealthChecks" then add builder.Services.AddHealthChecks() and app.MapHealthChecks("/healthz") as shown below.

(more…)

How to perform Logging in ASP.NET Core

Last Updated: February 14, 2026

Logging is an essential part of ASP.NET Core apps which help us to monitor app behavior and diagnose problems. By default the following 4 providers are added whenever we create a .NET app. These are:

(more…)

Deploy ASP.NET Core Dockerized app to Azure with GitHub Actions CI / CD

Last Updated: March 10, 2026

In this tutorial we will Deploy an ASP.NET Core Dockerized App to Azure Container Apps using GitHub Actions CI / CD pipeline. The full working of the process is described in the below image:

(more…)

Deploy ASP.NET Core app to Azure with GitHub Actions CI/CD

Last Updated: February 1, 2026

GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows to automate build, test, and deployment of our apps. In this tutorial I will deploy an ASP.NET Core app to Azure App Services through GitHub actions CI/CD deployment pipeline.

GitHub Action

GitHub Actions is a CI/CD platform which is integrated into your GitHub repository. This means you can run a CI/CD pipeline right from your GitHub repository. GitHub Actions are organized into Workflows, which are automated process that will run one or more jobs. A common example of a Workflow is to automatically build and deploy your app to Azure whenever the app is pushed to the GitHub repository.

The GitHub Actions kick off based on Events. Events can be anything like a push to the repository or a pull request, and so on.

Runners are the machines that execute jobs defined in a GitHub Actions Workflow. For example, a UBUNTU runner machine can clone your repository locally, install testing software, and then runs the tests.

In the below figure GitHub actions working is explained. An Event kicks the Runners that executes the different Jobs defined in the WorkFlows.

GitHub Actions Architecture

(more…)