|

C# language version history

C# 1.0 Introduced with .NET Framework 1.0 in January 2022, C# 1.0 established the foundation of the language with basic object-oriented programming features, including classes, structs, interfaces, events, properties, and delegates. The language had the following goals: C# 2.0 Introcudec in 2005, this version brought significant enhancements such as generics for type-safe data structures, anonymous…

Performance comparison of read operations between Dictionary and FrozenDictionary
|

.NET 8 performance: Dictionary vs. FrozenDictionary

With .NET 8 we are introduced to a new dictionary type which improves the performance of read operations. The catch: you are not allowed to make any changes to the keys and values once the collection is created. This type is particularly useful for collections that are populated on first use and then persisted for…

|

How to install .NET Aspire

.NET Aspire is a comprehensive, cloud-oriented framework designed for creating scalable, observable, and production-grade distributed applications. In this article we’ll look at the prerequisites of getting started with .NET Aspire. If you want an overview of .NET Aspire and what it brings to the table, check out our What is .NET Aspire article. There are…

|

What is .NET Aspire?

.NET Aspire is a comprehensive, cloud-oriented framework designed for creating scalable, observable, and production-grade distributed applications. It was introduced in preview part of the .NET 8 release. The framework is provided through a set of NuGet packages, each addressing different aspects of cloud-native application development, which are typically structured as a network of microservices rather…

|

How to publish container as tar.gz in .NET

Starting with .NET 8, it’s possible to directly generate a tar.gz container archive. This is particularly advantageous for more complex workflows where activities like scanning the images before pushing them are needed. After creating the archive, it can be transferred, scanned, or incorporated into your local Docker setup. For archiving during publication, integrate the ContainerArchiveOutputPath…

| |

MAUI: How to register handlers in a library

Whether you are developing a custom controls library or simply organizing your solution into multiple project, you will most likely end up in the situation where you want to register some view handlers and services from within a MAUI library. To start off, there’s no such thing as zero-configuration registration. MAUI uses a builder pattern…

|

How to fix: ‘Point’ does not have a predefined size, therefore sizeof can only be used in an unsafe context

The error you’re encountering is because in C#, sizeof can only be used with types that have a predefined size known at compile-time, and the Point structure is not one of those types unless you’re in an unsafe context. There are two ways you can resolve this. Use unsafe code This would allow the use…