<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dotNet; How?</title>
	<atom:link href="https://blog.dotnethow.net/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.dotnethow.net</link>
	<description>Practical C# and .NET, explained by building it.</description>
	<lastBuildDate>Sat, 29 Aug 2026 07:06:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/blog.dotnethow.net/wp-content/uploads/2021/01/rsz_dotnet_how_final_facebook_profile.png?fit=32%2C32&#038;ssl=1</url>
	<title>dotNet; How?</title>
	<link>https://blog.dotnethow.net</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">136201630</site>	<item>
		<title>Refresh token rotation with theft detection in ASP.NET Core</title>
		<link>https://blog.dotnethow.net/refresh-token-rotation-with-theft-detection-in-asp-net-core/</link>
					<comments>https://blog.dotnethow.net/refresh-token-rotation-with-theft-detection-in-asp-net-core/#respond</comments>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Sat, 29 Aug 2026 06:57:05 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://blog.dotnethow.net/?p=3288</guid>

					<description><![CDATA[JWT tutorials end where security begins. They show you how to issue an access token, wave at refresh tokens in the last paragraph, and leave you with a system where a single leaked token is a permanent skeleton key. Reslug is a URL shortening SaaS, which means my auth system protects API keys, custom domains, [&#8230;]]]></description>
		
					<wfw:commentRss>https://blog.dotnethow.net/refresh-token-rotation-with-theft-detection-in-asp-net-core/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3288</post-id>	</item>
		<item>
		<title>The Blazor interop bug you only find in production</title>
		<link>https://blog.dotnethow.net/the-blazor-interop-bug-you-only-find-in-production/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 07:17:01 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Blazor]]></category>
		<guid isPermaLink="false">https://blog.dotnethow.net/?p=3260</guid>

					<description><![CDATA[You inject IJSRuntime, call it from OnInitializedAsync, and ship it. On your machine it works every single time. In production it throws InvalidOperationException. Nothing about your code changed. What changed is where it ran. In dev, your first navigation is usually a hard reload, so by the time you look, the circuit is up and [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3260</post-id>	</item>
		<item>
		<title>Implementing Health Checks in .NET Applications</title>
		<link>https://blog.dotnethow.net/implementing-health-checks-in-net-applications/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Sat, 05 Jul 2025 17:57:44 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Web API]]></category>
		<category><![CDATA[.NET]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3220</guid>

					<description><![CDATA[Once an application is deployed to production, ensuring its reliability and availability becomes essential. This is especially true for modern applications that are distributed, built with microservices, and deployed using container platforms like Docker and Kubernetes. Health checks are a key part of keeping these applications running smoothly. They help you know if your application [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3220</post-id>	</item>
		<item>
		<title>Containerizing Your .NET Application with Docker</title>
		<link>https://blog.dotnethow.net/containerizing-your-net-application-with-docker/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Sun, 29 Jun 2025 10:37:38 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Web API]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3207</guid>

					<description><![CDATA[A container is a lightweight, standalone, executable package that includes everything needed to run a piece of software: the code, a runtime, system tools, system libraries, and settings. Think of a container like a portable coffee machine. It comes with everything it needs inside such as coffee, water, and a filter. No matter where you [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3207</post-id>	</item>
		<item>
		<title>Building Background Services with IHostedService in .NET</title>
		<link>https://blog.dotnethow.net/hostedservice-in-net/</link>
					<comments>https://blog.dotnethow.net/hostedservice-in-net/#comments</comments>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Fri, 20 Jun 2025 20:03:03 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Web API]]></category>
		<category><![CDATA[.NET]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3196</guid>

					<description><![CDATA[Background services are long-running processes that operate independently of the main application flow. They perform tasks in the background without blocking user interactions or requiring immediate responses. Background services are essential for handling tasks such as processing queues, sending notifications, or performing scheduled maintenance. One of the most powerful and flexible ways to implement background [&#8230;]]]></description>
		
					<wfw:commentRss>https://blog.dotnethow.net/hostedservice-in-net/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3196</post-id>	</item>
		<item>
		<title>Understanding and Customizing the ASP.NET Core Middleware Pipeline</title>
		<link>https://blog.dotnethow.net/understanding-aspnet-core-middleware/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Fri, 18 Oct 2024 11:58:50 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Web API]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[dotnetcore]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3157</guid>

					<description><![CDATA[Middleware is one of the most important concepts in ASP.NET Core because it plays a crucial role in handling requests and responses, allowing developers to control the request pipeline. But what is a request pipeline, and how can you better understand middleware in ASP.NET? What is a Pipeline? A pipeline is a series of steps [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3157</post-id>	</item>
		<item>
		<title>API Versioning in .NET: A Guide to URL, Query, Header, and Media Types</title>
		<link>https://blog.dotnethow.net/api-versioning-in-net/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Mon, 30 Sep 2024 10:20:20 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Web API]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3143</guid>

					<description><![CDATA[API Versioning is a technique that allows you to create multiple versions of your app or APIs, ensuring that changes (such as new features or breaking updates) don’t disrupt existing consumers of the API. API Versioning is really important because it allows developers can introduce improvements, bug fixes, or new features without forcing existing clients [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3143</post-id>	</item>
		<item>
		<title>Add Sign in with Google in Your ASP.NET App: Step-by-step Tutorial</title>
		<link>https://blog.dotnethow.net/add-sign-in-with-google-in-your-asp-net-app-step-by-step-tutorial/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Thu, 11 Apr 2024 21:28:12 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Web API]]></category>
		<category><![CDATA[.NET]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3100</guid>

					<description><![CDATA[Google Authentication is a secure third-party login provider that you can use in your apps, including ASP.NET applications. Using third-party login providers allows users to use their existing credentials instead of creating yet another username and password combination that they need to remember. Why Use Third-Party Logins? There are many reasons why you should add [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3100</post-id>	</item>
		<item>
		<title>Blazor, JavaScript, and Interpolation</title>
		<link>https://blog.dotnethow.net/blazor-javascript-and-interpolation/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Sat, 09 Mar 2024 14:15:48 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Blazor]]></category>
		<category><![CDATA[javascript]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3070</guid>

					<description><![CDATA[ASP.NET Blazor is a free and open-source web framework developed by Microsoft that allows you to build interactive web UIs with C# and HTML. It is a component-based framework, where a component is a way to encapsulate reusable UI elements, making it easier to structure and maintain your applications. The main selling point of the [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3070</post-id>	</item>
		<item>
		<title>ASP.NET MVC: Models, ViewData, ViewBag, and TempData Explained</title>
		<link>https://blog.dotnethow.net/asp-net-mvc-models-viewdata-viewbag-and-tempdata-explained/</link>
		
		<dc:creator><![CDATA[Ervis Trupja]]></dc:creator>
		<pubDate>Wed, 31 Jan 2024 11:18:22 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.NET MVC]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<guid isPermaLink="false">https://dotnethow.net/?p=3056</guid>

					<description><![CDATA[In ASP.NET MVC, efficiently passing data between controllers and views is crucial for robust application development. This blog explains the four primary methods for data transfer, highlighting their uses and differences. Model: A strongly typed method and the recommended way for passing data. It allows for intelligent and compile-time checking. ViewData: A dictionary object for [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3056</post-id>	</item>
	</channel>
</rss>
