Fading Coder

One Final Commit for the Last Sprint

Comprehensive Guide to C# Delegates, Generics, Events, Asynchronous Programming and Custom Control Development

Anonymous Methods Anonymous methods are unnamed code blocks associated with delegate types, consisting only of the delegate keyword, parameter list, and execution body. They enable passing inline logic as a delegate parameter instead of defining a separate named method. Syntax rules for anonymous me...

File Compression and Decompression Components for .NET

1. Overview of Compression Formats Data compression is a process of encoding information using fewer bits than the original representation. Common lossless compression algorithms include LZW, ZIP, RAR, and 7-Zip. Below is a comparison of mainstream formats: ZIP: A widely used format employing the De...

Building a C# HMI Application with Siemens PLC Communication Using PLCSIM Advanced V3.0

This guide covers the complete workflow for developing a Windows-based HMI application in Visual Studio using C#, communicating with a Siemens PLC 1511-PN through PLCSIM Advanced V3.0 simulation. System Architecture Overview The implementation consists of three primary components: Visual Studio HMI...

Garbage Collection, Finalizers, and Disposal in C#

Memory Allocation: Stack vs. Heap Data is stored in memory, which is divided into Stack and Heap segments. Stack Memory Heap Memory Fast, efficient access Complex structure Limited size and types Stores objects Holds simple data Stores reference types Stores primitive and value types — Consider this...

Exporting Generic Lists to Excel Files with NPOI in ASP.NET

Exporting Generic Lists to Excel Files with NPOI in ASP.NET NPOI is a powerful .NET library that allows developers to create and manipulate Microsoft Excel files without requiring Excel to be installed on the server. This guide demonstrates how to convert a generic list to an Excel file and save it...

Dynamic Type Instantiation and Runtime Inspection in C#

When building extensible console utilities, hard-coding instantiation logic with switch blocks forces modifications for every new implementation. Consider a scenario requiring dynamic creation of derived types based on user input without recompiling the host application. A base type Organism defines...

Common Pitfalls and Solutions When Using XmlReader and XmlWriter in .NET

When processing XML files larger than 100MB, using XmlDocument to load the entire file into memory becomes inefficient, leading to high memory consumption and long processing times. In such scenarios, switching to XmlReader and XmlWriter for stream-based processing offers significant performance ben...

Core C# Concepts: Arrays, Multithreading, Internal Access, LINQ, and HttpClient

C# Arrays Arrays in C# are fixed-size data structures that store elements of the same type. They are declared with a specific size and type. int[] numbers = new int[] { 10, 20, 30, 40, 50 }; int first = numbers[0]; int count = numbers.Length; C# Multithreading Multithreading enables concurrent execu...

Constructing Dynamic Query Conditions in C# Using Expression Trees for FreeSql

When building data access layers, a common requirement is togggling between exact match and fuzzy search for string fields based on front-end input. Instead of writting two separate conditional branches for each filter, a reusable helper can encapsulate either equality or containment logic. Directly...

Practical Techniques for File Operations and Data Serialization in C#

File-based storage is optimal for managing substantial volumes of data with simple relationships, such as application logs, offering accessibility across various storage media. The .NET framework provides stream-based APIs for file interaction. Common File and Directory Operations Obtain the current...