Converting Megabytes to Kilobytes Made Simple

Unlocking the mystery behind converting megabytes to kilobytes is like discovering the secret to a captivating magic trick. It’s a fundamental concept, yet its application may seem bewildering at first. Fortunately, with the right knowledge, you can unravel this seemingly complex puzzle with ease. In this article, we’ll delve into the seamless process of converting…

|

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…

| |

C# Access private property backing field using Unsafe Accessor

One less-known feature of the UnsafeAccessorAttribute is that it also allows you to access auto-generated backing fields of auto-properties – fields with unspeakable names. The way to access them is very similar to accesing fields, the only difference being the member name pattern, which looks like this: Let’s take the following class as an example:…

How to create a 2 column Flexbox layout in React Native

Creating a two column layout in React Native, given a list of items, is quite a common task. This react native 2 column layout can be achieved quite easily using flex. The examble below shows how to achieve the two-column layout with spacing between the elements. This is our view: And this is our style:…

| |

C# ZIP files to Stream

.NET 8 include new CreateFromDirectory overloads which enable you to create a ZIP file without writing them to disk. This is particularly useful in situations where you don’t want to store the zipped resources, you use the Zip content only for transfer. For example: if you were to provide an API allowing multi-file download. That…

Image showing GetGenericTypeDefinition performance numbers comparing .NET 7 and .NET 8. On .NET 7, the method takes on average 13 ns to execute, while on .NET 8 it only takes 1.6 ns.
| |

.NET 8 performance: 10x faster GetGenericTypeDefinition

.NET 8 brings some neat performance for existing APIs that handle type information. One such API that has seen a significant improvement is GetGenericTypeDefinition. In my benchmarks, the .NET 8 implementation is almost 10 times faster compared to the .NET 7 version. You can run this benchmark yourself if you’d like using BenchmarkDotNet: Or if…

Kebab case – everything about it and more

Kebab case is a naming convention used in programming to format variable, function, or file names by separating words with hyphens (“-“). It is also known as “kebab-case”, “hyphen-case”, or “spinal-case”. For example, if you have a variable representing a person’s first name, you would write it in kebab case as: In kebab case, all…

| |

C# How to update a readonly field using UnsafeAccessor

Unsafe accessors can be used to access private members of a class, just like you would with reflection. And the same can be said about changing the value of a readonly field. Let’s assume the following class: Let’s say that for some reason you want to change the value of that read-only field. You could…