
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Mono Blog</title>
      <link>https://allendev.net/blog</link>
      <description>Blog about Microsoft technologies (.NET, ASP.NET Core, Blazor, EF Core, WPF, TypeScript, etc.)</description>
      <language>en-us</language>
      <managingEditor>zzyliu71@gmail.com (Allen Liu)</managingEditor>
      <webMaster>zzyliu71@gmail.com (Allen Liu)</webMaster>
      <lastBuildDate>Wed, 03 Jun 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://allendev.net/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://allendev.net/blog/2026-06-03-IEnumerable</guid>
    <title>Why Doesn&#39;t IEnumerable&lt;T&gt; Have a ForEach Method?</title>
    <link>https://allendev.net/blog/2026-06-03-IEnumerable</link>
    <description>In C#, types like List&lt;T&gt; (and others such as ImmutableList&lt;T&gt;) include a convenient ForEach method. It can be seen as a more functional-style alternative to the traditional foreach loop. For example:</description>
    <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2026-05-06-hash2</guid>
    <title>A Tour of Hash Functions: From MD5 to Argon2 and Beyond</title>
    <link>https://allendev.net/blog/2026-05-06-hash2</link>
    <description>In a previous article, we explored the topic of salted password hashing. This time, we&#39;ll expand on that by taking a broader look at the world of hash functions.</description>
    <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>C#</category><category>.NET</category><category>Security</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2026-04-07-Salt and Hash</guid>
    <title>Why You Must Salt and Hash Passwords: A Journey to Secure Storage</title>
    <link>https://allendev.net/blog/2026-04-07-Salt and Hash</link>
    <description>The topic of salting and hashing passwords is a fundamental concept in security, but why is it so crucial? This article will guide you through the evolution of password storage, from insecure to...</description>
    <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>C#</category><category>.NET</category><category>Security</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2026-03-15-XML2</guid>
    <title>Advanced XML Parsing: A Performance Duel Between LINQ, XPath, and Regex</title>
    <link>https://allendev.net/blog/2026-03-15-XML2</link>
    <description>Continuing our exploration from last time, let&#39;s dive deeper into the surprising performance differences in XML parsing. Our sample XML remains the same, provided by W3Schools:</description>
    <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>C#</category><category>.NET</category><category>XML</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2026-02-09-property</guid>
    <title>Fields vs. Properties: Why Not Just Use Public Fields in C#?</title>
    <link>https://allendev.net/blog/2026-02-09-property</link>
    <description>When writing C# code, we frequently define auto-properties like this:</description>
    <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2026-01-22-XML1</guid>
    <title>Efficient XML Parsing in C#: A Performance Comparison</title>
    <link>https://allendev.net/blog/2026-01-22-XML1</link>
    <description>I recently encountered a task at work involving reading and writing XML, which led me to explore the performance implications of different approaches. I&#39;d like to share my findings with you.</description>
    <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-12-22-task</guid>
    <title>Why ValueTask? A Guide to C#&#39;s Performance-Oriented Task Alternative</title>
    <link>https://allendev.net/blog/2025-12-22-task</link>
    <description>Since C# 5.0 introduced the async and await keywords, asynchronous programming has become remarkably simple. The Task type has played a crucial role in this paradigm, becoming a ubiquitous part of...</description>
    <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category><category>async</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-11-23-multithreading</guid>
    <title>Improving Thread Communication in .NET: Moving Beyond Flags and Polling</title>
    <link>https://allendev.net/blog/2025-11-23-multithreading</link>
    <description>In multi-threaded development, we often use flags and polling to control execution logic within threads. However, this approach reduces code readability and maintainability while lacking elegance....</description>
    <pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category><category>Multithreading</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-10-31-web-application</guid>
    <title>Deep Dive into .NET 8 WebApplication: Architecture and Components</title>
    <link>https://allendev.net/blog/2025-10-31-web-application</link>
    <description>WebApplication is used to configure the HTTP pipeline and routes in web applications. In this article, I&#39;ll break down its components and structure.</description>
    <pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-09-23-dotnet-dependency-injection</guid>
    <title>.NET 8 Dependency Injection</title>
    <link>https://allendev.net/blog/2025-09-23-dotnet-dependency-injection</link>
    <description>Dependency Injection (DI) is a design pattern used to decouple dependencies between components (services). It achieves this by delegating the creation and management of dependencies to an external...</description>
    <pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category><category>Dependency Injection</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-09-05-copy</guid>
    <title>Three Methods to Copy Directories in C#</title>
    <link>https://allendev.net/blog/2025-09-05-copy</link>
    <description>Copying directories in C# isn’t straightforward since .NET lacks a built-in method for this task. This guide explores three practical approaches to achieve directory copying, each with its pros and...</description>
    <pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-08-09-configure-management</guid>
    <title>Configuration Management in .NET Core with appsettings.json</title>
    <link>https://allendev.net/blog/2025-08-09-configure-management</link>
    <description>A comprehensive guide to leveraging appsettings.json for flexible configuration management in .NET Core applications.</description>
    <pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-07-08-csharp-task</guid>
    <title>Task in C#</title>
    <link>https://allendev.net/blog/2025-07-08-csharp-task</link>
    <description>The Task class in C# is a powerful tool for multithreaded programming, enabling asynchronous operations, parallel processing, and task cancellation. This guide demonstrates common patterns and best...</description>
    <pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-06-17-string-manipulation</guid>
    <title>C# String Manipulation</title>
    <link>https://allendev.net/blog/2025-06-17-string-manipulation</link>
    <description>Working with strings is a daily task for developers, but mastering efficient and error-free string operations in C# requires understanding key techniques and avoiding common mistakes. This guide...</description>
    <pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>String</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-05-24-swagger</guid>
    <title>Comprehensive Guide to Swagger Integration in ASP.NET Core Applications</title>
    <link>https://allendev.net/blog/2025-05-24-swagger</link>
    <description>A practical implementation guide for leveraging Swagger/OpenAPI documentation in ASP.NET Core projects, featuring advanced configurations and security integration.</description>
    <pubDate>Sat, 24 May 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Swagger</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-04-18-MessagePack</guid>
    <title>BSON vs MessagePack: Differences and How to Choose</title>
    <link>https://allendev.net/blog/2025-04-18-MessagePack</link>
    <description>BSON (Binary JSON) is a binary-encoded JSON format developed by MongoDB, primarily used for data storage and transmission in MongoDB databases. It extends the JSON format by adding support for...</description>
    <pubDate>Fri, 18 Apr 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>C#</category><category>Database</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-03-20-qrcode</guid>
    <title>Generating QR Codes in C#</title>
    <link>https://allendev.net/blog/2025-03-20-qrcode</link>
    <description>There are multiple ways to generate QR codes. This article demonstrates how to use QRCoder—a lightweight and easy-to-use library that supports concurrent generation without relying on third-party...</description>
    <pubDate>Thu, 20 Mar 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>QR Code</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-03-03-mailkit</guid>
    <title>Modern Email Handling in .NET with MailKit: A Comprehensive Guide</title>
    <link>https://allendev.net/blog/2025-03-03-mailkit</link>
    <description>A practical implementation guide for sending emails in .NET applications using the recommended MailKit library, featuring HTML content embedding and dependency injection patterns.</description>
    <pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>MailKit</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-01-23-captcha</guid>
    <title>Implementing a Custom Captcha Generator in ASP.NET Core Without Third-Party Libraries</title>
    <link>https://allendev.net/blog/2025-01-23-captcha</link>
    <description>A practical guide to creating random captcha images in .NET applications without external dependencies. This solution leverages System.Drawing.Common for image manipulation and provides full control...</description>
    <pubDate>Thu, 23 Jan 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Captcha</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2025-01-02-autoapi</guid>
    <title>Auto-Generating RESTful APIs in .NET with Plus.AutoApi</title>
    <link>https://allendev.net/blog/2025-01-02-autoapi</link>
    <description>In DDD (Domain-Driven Design) architectures, developers often need to manually create API controllers after implementing service layers. Plus.AutoApi eliminates this step by dynamically generating...</description>
    <pubDate>Thu, 02 Jan 2025 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>WebApi</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-12-05-consul</guid>
    <title>Docker Compose Setup for Consul Cluster</title>
    <link>https://allendev.net/blog/2024-12-05-consul</link>
    <description>Deploy a 3-server-node cluster + 1 client node using Docker:</description>
    <pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Consul</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-11-05-redis</guid>
    <title>Redis Essentials: Features, Setup, and Operations</title>
    <link>https://allendev.net/blog/2024-11-05-redis</link>
    <description>Redis is a distributed in-memory NoSQL database supporting persistence. It offers rich data structures including strings, lists, sets, sorted sets, and hashes.</description>
    <pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>Database</category><category>Redis</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-10-17-token</guid>
    <title>Implementing JWT Authentication in .NET Core</title>
    <link>https://allendev.net/blog/2024-10-17-token</link>
    <description>This guide demonstrates JWT authentication implementation in .NET Core with custom configurations and error handling.</description>
    <pubDate>Thu, 17 Oct 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>jwt</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-09-14-gateway</guid>
    <title>Implementing API Gateway in .NET Core with Ocelot</title>
    <link>https://allendev.net/blog/2024-09-14-gateway</link>
    <description>An API Gateway acts as a unified entry point for exposing APIs publicly. In .NET Core ecosystems, Ocelot provides a robust solution for implementing API gateways. Alternative libraries include...</description>
    <pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>ApiGateway</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-08-22-spider</guid>
    <title>Web Scraping in .NET Core with HtmlAgilityPack, AngleSharp, and PuppeteerSharp</title>
    <link>https://allendev.net/blog/2024-08-22-spider</link>
    <description>Web scraping carries inherent risks and should be performed ethically. This guide demonstrates practical implementations using three popular .NET libraries.</description>
    <pubDate>Thu, 22 Aug 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Web Scraping</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-07-28-dotnet</guid>
    <title>Exceptionless Logging in .NET Core</title>
    <link>https://allendev.net/blog/2024-07-28-dotnet</link>
    <description>ExceptionLess is a free open-source distributed logging framework that provides self-hosted and managed solutions for error tracking and log collection. Key features include:</description>
    <pubDate>Sun, 28 Jul 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Exceptionless</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-06-21-template</guid>
    <title>ABP vNext Application Template: Quick Start Guide</title>
    <link>https://allendev.net/blog/2024-06-21-template</link>
    <description>A ready-to-use project template for rapidly building applications with ABP vNext framework. This template comes pre-configured with essential components including Redis, Swagger UI, Autofac DI,...</description>
    <pubDate>Fri, 21 Jun 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>abp vNext</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-06-04-dotnet</guid>
    <title>Implementing Apollo Configuration in .NET Core</title>
    <link>https://allendev.net/blog/2024-06-04-dotnet</link>
    <description>Apollo is a distributed configuration management system developed by Ctrip&#39;s Framework Department. It enables centralized configuration management across multiple environments and clusters,...</description>
    <pubDate>Tue, 04 Jun 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Apollo</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-05-06-dotnet</guid>
    <title>Kafka with .NET Core</title>
    <link>https://allendev.net/blog/2024-05-06-dotnet</link>
    <description>- ZooKeeper: Download</description>
    <pubDate>Mon, 06 May 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>Kafka</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-04-02-dotnet</guid>
    <title>Working with Elasticsearch in .NET Core</title>
    <link>https://allendev.net/blog/2024-04-02-dotnet</link>
    <description>Elasticsearch is an open-source search engine built on top of Apache Lucene™, the most advanced, high-performance, full-featured search engine library available today. While powerful, Lucene remains...</description>
    <pubDate>Tue, 02 Apr 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>ElasticSearch</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-03-13-app-startup</guid>
    <title>Deep Dive into .NET 8 WebApplication: Architecture and Components</title>
    <link>https://allendev.net/blog/2024-03-13-app-startup</link>
    <description>WebApplication is used to configure the HTTP pipeline and routes in web applications. In this article, I&#39;ll break down its components and structure.</description>
    <pubDate>Wed, 13 Mar 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category><category>webapplication</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-02-11-File-Transfer</guid>
    <title>File Transfer in C#</title>
    <link>https://allendev.net/blog/2024-02-11-File-Transfer</link>
    <description>This guide demonstrates a reliable file transfer solution using C#&#39;s native networking classes, with enhancements for error handling, asynchronous operations, and large file support.</description>
    <pubDate>Sun, 11 Feb 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>C#</category>
  </item>

  <item>
    <guid>https://allendev.net/blog/2024-01-18-excel-dotnet</guid>
    <title>Excel Import and Export Using EPPlus in .Net</title>
    <link>https://allendev.net/blog/2024-01-18-excel-dotnet</link>
    <description>EPPlus GitHub Repository: https://github.com/EPPlusSoftware/EPPlus</description>
    <pubDate>Thu, 18 Jan 2024 00:00:00 GMT</pubDate>
    <author>zzyliu71@gmail.com (Allen Liu)</author>
    <category>.NET</category><category>.NET Core</category><category>EPPlus</category><category>Excel</category>
  </item>

    </channel>
  </rss>
