Quantcast
Channel: Andrew Lock | .NET Escapades
Browsing all 743 articles
Browse latest View live
↧

Image may be NSFW.
Clik here to view.

Exploring the generated code: T[], Span, and Immutable collections: Behind...

This is the third post in the series: Behind the scenes of collection expressions. Part 1 - Introducing collection expressions in C#12 Part 2 - Exploring the generated code: List<T> and fallback...

View Article


Image may be NSFW.
Clik here to view.

Exploring the generated code: the spread element: Behind the scenes of...

This is the fourth post in the series: Behind the scenes of collection expressions. Part 1 - Introducing collection expressions in C#12 Part 2 - Exploring the generated code: List<T> and...

View Article


Image may be NSFW.
Clik here to view.

Adding support for collection expressions to your own types: Behind the...

This is the fifth post in the series: Behind the scenes of collection expressions. Part 1 - Introducing collection expressions in C#12 Part 2 - Exploring the generated code: List<T> and fallback...

View Article

Image may be NSFW.
Clik here to view.

Disambiguating types with the same name with extern alias

In this post I describe a relatively niche scenario, in which you have references to two libraries that both define a given type. This type has the same name in both libraries (the same type name and...

View Article

Image may be NSFW.
Clik here to view.

Creating source-only NuGet packages

In this post I describe how to create a source-only NuGet package. I discuss what source-only NuGet packages are, why you might want to create one, and how to build a project as a source-only package....

View Article


Image may be NSFW.
Clik here to view.

Simplifying [Theory] test data with Xunit.Combinatorial

In this post I show how you can simplify your xUnit [Theory] tests using the Xunit.Combinatorial package. This package has a bunch of features that can make it easier to generate the test data you...

View Article

Image may be NSFW.
Clik here to view.

Combining multiple docker images into a multi-arch image

In this post I show how you can create multi-arch docker images by combining separate x64 and arm46 images into a single docker image. I described an easy way to create multi-arch images in a previous...

View Article

Image may be NSFW.
Clik here to view.

Avoiding CDN supply-chain attacks with Subresource Integrity (SRI)

There's been a lot of tech on the news recently. There was the xz-utils backdoor in March, the Crowdstrike outage in July, and in the middle there was the Pollyfill.io supply chain attach. It's the...

View Article


Image may be NSFW.
Clik here to view.

Using Azure Storage Queue messages with Azure Functions and [QueueTrigger]

In this post I discuss the differences between the Azure Storage Queue message queue service and how it compares to Azure Service Bus in terms of functionality. After comparing the services, I...

View Article


Image may be NSFW.
Clik here to view.

Working with tar files in .NET 8

Back in 2022 .NET 7 gained support for natively working with tar files in the base class library. In this post I describe how to perform some basic operations on tar files, how I typically use the tar...

View Article

Image may be NSFW.
Clik here to view.

Preventing breaking changes in public APIs with PublicApiGenerator

In this post I shows how to use two open source libraries to keep track of the public API surface of any NuGet libraries (or any other code) you create. The approach shown in this post uses a unit...

View Article

Image may be NSFW.
Clik here to view.

Fixing MAX_PATH issues in GitLab

This post is a short reminder for my future self, for when I next have to fight with MAX_PATH issues and GitLab. Yes, it's 2024, and I'm still being sabotaged by Window's archaic MAX_PATH restriction....

View Article

Image may be NSFW.
Clik here to view.

Major updates to NetEscapades.​AspNetCore.​SecurityHeaders

In this post I provide an update on the NetEscapades.AspNetCore.SecurityHeaders project. I've just released a preview version of 1.0.0, which addresses some longstanding requests for extra...

View Article


Image may be NSFW.
Clik here to view.

Replacing Exceptions-as-flow-control with the result pattern: Working with...

This is the first post in the series: Working with the result pattern. Part 1 - Replacing Exceptions-as-flow-control with the result pattern (this post) In this post I provide a worked example of...

View Article

Image may be NSFW.
Clik here to view.

Safety and simplicity with LINQ: Working with the result pattern - Part 2

This is the second post in the series: Working with the result pattern. Part 1 - Replacing Exceptions-as-flow-control with the result pattern Part 2 - Safety and simplicity with LINQ (this post) This...

View Article


Image may be NSFW.
Clik here to view.

Adding more extensions to Result: Working with the result pattern - Part 3

This is the third post in the series: Working with the result pattern. Part 1 - Replacing Exceptions-as-flow-control with the result pattern Part 2 - Safety and simplicity with LINQ Part 3 - Adding...

View Article

Image may be NSFW.
Clik here to view.

Is the result pattern worth it?: Working with the result pattern - Part 4

This is the fourth post in the series: Working with the result pattern. Part 1 - Replacing Exceptions-as-flow-control with the result pattern Part 2 - Safety and simplicity with LINQ Part 3 - Adding...

View Article


Image may be NSFW.
Clik here to view.

Recent updates for NetEscapades.EnumGenerators: interceptors!

In this post I describe a recent update to the NetEscapades.EnumGenerators package. The big new feature introduced in 1.0.0-beta11 is experimental support for interceptors. Interceptors allow you to...

View Article

Image may be NSFW.
Clik here to view.

Cross-Origin-Opener-Policy: preventing attacks from popups: Understanding...

This is the first post in the series: Understanding cross-origin security headers. Part 1 - Cross-Origin-Opener-Policy: preventing attacks from popups (this post) In this post I describe the...

View Article

Image may be NSFW.
Clik here to view.

Cross-Origin-Resource-Policy: preventing hotlinking and XSSI attacks:...

This is the second post in the series: Understanding cross-origin security headers. Part 1 - Cross-Origin-Opener-Policy: preventing attacks from popups Part 2 - Cross-Origin-Resource-Policy:...

View Article
Browsing all 743 articles
Browse latest View live