Decompress a ZIP archive with .NET

Decompress a ZIP archive with .NET

Working with compressed files is common in many applications, whether you're extracting data from an archive, installing software packages, or retrie

Compress a folder of files to a ZIP archive with .NET

Compress a folder of files to a ZIP archive with .NET

When working with .NET apps you may sometimes need to bundle multiple files into a single compressed archive for easier storage, transfer, or process

Read cpu load on Windows with .NET

Read cpu load on Windows with .NET

In C# (.NET 6 and above), there is now a very simple way to read out the CPU load with minimal overhead - i.e. without threads. The PerformanceCounte

.NET: the cost of returning an empty collection

.NET: the cost of returning an empty collection

Dealing with empty lists is an everyday situation in .NET. An empty list is often preferred to a null in order to control the logic. But how expensiv

.NET: use a preview version in your global.json

.NET: use a preview version in your global.json

We are currently in the preview phase of .NET 9, which releases in Nov 2024 - and if you want to test it extensively like I do, store the preview ver

Efficiently clean a string with .NET

Efficiently clean a string with .NET

Strings are one of the most commonly used types in .NET applications - and very often the source of inefficient code. For example, cleaning up a stri

Refit .NET - my personal caller best practise

Refit .NET - my personal caller best practise

Refit is an open-source library for .NET developers that simplifies the process of making HTTP API calls. It allows developers to define a set of int

Strong Name Sign .NET Assemblies via SNK

Strong Name Sign .NET Assemblies via SNK

Strong Name Signing is a mechanism in .NET development that ensures the integrity and authenticity of assemblies. It is based on a public-private key

Handle Yaml Files with .NET

Handle Yaml Files with .NET

YAML files are unfortunately part of everyday life for all developers these days; and although they are very error-prone and almost impossible to edi

ASP.NET Core Form protection with Cloudflare's Turnstile

ASP.NET Core Form protection with Cloudflare's Turnstile

TLDR; You can see the full sample in my GitHub repository BEN ABT Samples - ASP.NET Core Form protection with Cloudflare's Turnstile Turnstile is a

Use GitHub Copilot Chat in Visual Studio to solve the .NET Moq drama and migrate to NSubstitute

Use GitHub Copilot Chat in Visual Studio to solve the .NET Moq drama and migrate to NSubstitute

It's now been a few months since the GDPR-drama and data-harvesting around Moq (Stop using Moq as a guinea pig to get feedback on and develop Sponsor

.NET Event Counters

.NET Event Counters

.NET event counters are a relatively new API for collecting metrics from .NET applications. They are part of the EventSource and EventCounter namespa

Custom Azure Application Insights Telemetry Metrics with .NET

Custom Azure Application Insights Telemetry Metrics with .NET

By default, Azure Application Insights comes with necessary and important telemetry capabilities to monitor the basic functions of an application and

Azure Communication Service - .NET Client with Managed Identity

Azure Communication Service - .NET Client with Managed Identity

The Azure Communication Service is a fairly new but already popular service for sending emails at scale. In this article, I would like to show you ho

Azure Communication Service - .NET Client with ConnectionString

Azure Communication Service - .NET Client with ConnectionString

The Azure Communication Service is a fairly new but already popular service for sending emails at scale. In this article, I would like to show you ho

Header and Footer Layouts with Handlebars.NET

Header and Footer Layouts with Handlebars.NET

One of the last blog posts (Text and EMail Templates with Handlebars.NET) was generally about HandleBars.NET - a very popular template engine. This p

.NET Naming Best Practises: API Models

.NET Naming Best Practises: API Models

API models are one of the elements where I personally see the most naming errors - which have a massive impact on the architect and cause subsequent

.NET Naming Best Practises: Services vs. Providers

.NET Naming Best Practises: Services vs. Providers

In many code bases there are Services and Providers - and often they do the same thing structurally; but what is the idea of a Service- and Provider-

.NET Naming Best Practises: Database Entities

.NET Naming Best Practises: Database Entities

Database entities are the objects that represent the tables in your database. They are the objects that you use to read and write the database. Namin

.NET Naming Best Practises: DTOs

.NET Naming Best Practises: DTOs

Often seen, often used incorrectly: DTOs. Data Transfer Objects. In principle, DTO is an umbrella term, a design pattern that is used to transfer dat

Text and EMail Templates with Handlebars.NET

Text and EMail Templates with Handlebars.NET

A frequent requirement in apps is the conversion of templates, e.g. for sending e-mails, for PDF templates or other text modules. There are many diff

Create QR Codes with .NET

Create QR Codes with .NET

QR codes are a simple and very popular way of exchanging data and information - even in .NET. They have become part of everyday life. Unfortunately,

Deploy ASP.NET Core via Zip Deployment to Azure Web App

Deploy ASP.NET Core via Zip Deployment to Azure Web App

There are various ways to deploy an application, but Zip deployment is the variant that is recommended the most - regardless of whether you are using

New Data Annotation attributes with .NET 8

New Data Annotation attributes with .NET 8

With .NET 8, the System.ComponentModel.DataAnnotations Namespace has been revised and some new attributes have been added that have been requested by

The well-structured Entity in EF Core

The well-structured Entity in EF Core

A database entity represents an identifiable entry, often also things from the real world, which are to be stored and managed in the database. The pu

When to use optional arguments and parameter defaults in c#

When to use optional arguments and parameter defaults in c#

In C#, optional arguments are parameters in a method that have default values specified in the method's declaration. This means that when you call th

.NET 8 makes you faster. Everyday.

.NET 8 makes you faster. Everyday.

As has been the case for many releases, the .NET 8 team is spending a lot of development effort to improve the .NET Runtime in terms of performance.

Convert UnixTime to DateTimeOffset with a custom System.Text.Json Converter

Convert UnixTime to DateTimeOffset with a custom System.Text.Json Converter

Some APIs do not follow standards, ignore ISO8601 and return UnixTime. This is not nice, but can be easily fixed with a custom converter for System.T

Accelerate your .NET build with Visual Studio 2022

Accelerate your .NET build with Visual Studio 2022

A little more than three months ago, Microsoft integrated a new functionality into Visual Studio 2022: Build Acceleration. This mechanism, which can

Re-use EF Core Expressions to avoid redundant queries

Re-use EF Core Expressions to avoid redundant queries

I often see snippets in EF Core code reviews such as the following: dbContext.Users.Where( user => user.Id == id ); The query filter user => u

Easy InMemory Unit Tests with EFCore and Sqlite

Easy InMemory Unit Tests with EFCore and Sqlite

Unit testing is a type of software testing that is performed on the smallest unit of a software application, called a "unit". A unit can be

Better Code with custom Strong-Id Types

Better Code with custom Strong-Id Types

In many software architectures the problem exists that there are methods, which are specified a multiplicity of type-same parameters, whose meaning i

Microsoft has moved Teams backend service to .NET 6 - the performance results

Microsoft has moved Teams backend service to .NET 6 - the performance results

September last year, Microsoft announced that a large number of backend services would be migrated to .NET 6. This, they said, was an enterprise-wide

A struct with an interface is inefficient in .NET

A struct with an interface is inefficient in .NET

Structs have their advantages in .NET: they are especially efficient in the runtime if used correctly. But if you use structs with an interface, the

Difference of is null vs equals null and why is null is recommended

Difference of is null vs equals null and why is null is recommended

Both C# is null and == null are used to check if a variable or object is null, but they work slightly differently. is null checks if the variable or

Create Symbolic Links on Windows with .NET

Create Symbolic Links on Windows with .NET

Symbolic Links (often abbreviated as symlinks) are a type of file or folder shortcut in Windows that reference another file or folder in the file sys

Benefits of using isolated mode of Azure Functions with .NET

Benefits of using isolated mode of Azure Functions with .NET

The isolated mode of Azure Functions with .NET allows for greater control over the runtime environment and dependencies of the function. In this mode

Statische Methoden in C# / .NET

Statische Methoden in C# / .NET

Statische Methoden in C# sind Methoden, die auf eine Klasse und nicht auf eine bestimmte Instanz einer Klasse angewendet werden. Sie können aufgerufe

Compile Linq Expressions to increase performance

Compile Linq Expressions to increase performance

Expressions are now an absolute part of a developer's everyday life in .NET thanks to Linq. However, due to their nature, expressions are not one of

DateTime vs. DateTimeOffset - UtcNow vs. Now

DateTime vs. DateTimeOffset - UtcNow vs. Now

.NET has two principal ways for handling times: DateTime and DateTimeOffset. The big deficit of DateTime, which was also recognized early in .NET 1.0

Microsoft is moving backend services to .NET 6

Microsoft is moving backend services to .NET 6

Microsoft has announced in an impressive blog post on the .NET DevBlogs that they have started an enterprise-wide migration to migrate backend servic

Why you should no longer use var in C#

Why you should no longer use var in C#

Beginning with C# 3, variables that are declared at method scope can have an implicit "type" var. An implicitly typed local variable is st

Azure IoT: send messages with C#

Azure IoT: send messages with C#

Requirements You must have created an IoT Hub in Azure. You must have created a device in your created Azure IoT Hub. You need the connection string

Fast SQL-Insert with C# and SqlBulkCopy

Fast SQL-Insert with C# and SqlBulkCopy

In .NET, there is a very fast and easy way to pump a variety of entities into an SQL database: SqlBulkCopy public void BulkInsert<TEntity>(stri

Load an image into a byte-array with C#

Load an image into a byte-array with C#

This pretty simply snippet exports your Image into a byte-array. public static byte[] ToByteArray(this System.Drawing.Image image) { using(Memory

Download a file with .NET

Download a file with .NET

The most current and currently recommended way to download .NET Framework, .NET Standard or .NET Core files from the Internet is the HttpClient class

Einfaches WCF-Beispiel ohne komplizierte Config

Einfaches WCF-Beispiel ohne komplizierte Config

Unter anderem durch die Aktivität im myCSharp.de-Forum ist mir aufgefallen, dass viele Entwickler doch Probleme mit der Konfiguration von WCF-Dienste

Unit-Testen von internen Klassen in C#

Unit-Testen von internen Klassen in C#

Die Zeit am Flughafen möchte ich dazu nutzen einer meiner Anfragen per E-Mail zu beantworten. Hallo Benjamin, wie testest du Quellcode, der mit inte

C# - Eigene Events - Beispiel anhand einer E-Mail-Überwachung

C# - Eigene Events - Beispiel anhand einer E-Mail-Überwachung

Dieser Codeschnippsel soll exemplarisch zeigen, wie man in C# eigene Events definiert. Als Beispiel dient hier die Überwachung von E-Mails in der Kon

C# Warteschlangen – Die BlockingCollection

C# Warteschlangen – Die BlockingCollection

Oft werden Warteschlangen benötigt, um Aufgaben zu Verwalten oder durch etwaige Parallelität die Performance zu Steigern. Mit .NET 4.0 hat Microsoft

Magic Strings in C# vermeiden

Magic Strings in C# vermeiden

Ich wurde schon öfter im Zusammenhang gefragt (insbesondere im Forum myCSharp.de), wie ich sogenannte Magic Strings vermeide. Was ist ein Magic Strin