TypeScript 4.0 Beta: Variadic Tuple Types

TypeScript 4.0 is a major milestone. The headline feature is Variadic Tuple Types, which finally allows strong typing for high-order functions like `concat` or `curry`. We explore this and Labeled Tuple Elements. Variadic Tuple Types You can now use spread syntax in generic tuple logic. Labeled Tuple Elements Tuples can now provide descriptive labels for […]

Read more โ†’

Blazor Component Libraries: Building Reusable UI

Razor Class Libraries (RCLs) allow you to share Blazor components across multiple apps. With .NET Core 3.1 and upcoming .NET 5, they now support including static assets (CSS, JS, images) inside the NuGet package. This guide builds a reusable “Modal” component library. Project Structure Create a new RCL project: Static Web Assets Place CSS in […]

Read more โ†’

Microservices Observability with OpenTelemetry

OpenTelemetry (OTel) is the merger of OpenTracing and OpenCensus. In 2020, it is becoming the CNCF standard for collecting metrics and traces. This guide shows how to instrument a .NET Core app to send traces to Jaeger. Setup Manual Instrumentation Key Takeaways Vendor-neutral instrumentation prevents lock-in. “Activity” in .NET 5+ is the native implementation of […]

Read more โ†’

Kubernetes Operators in .NET: Getting Started

Operators extend Kubernetes with custom domain logic. While usually written in Go, the .NET ecosystem has matured with the `KubeOps` SDK. We can now write C# operators to manage custom resources like `DatabaseCluster` or `TenantNamespace`. The Operator Pattern Defining a CRD in C# The Reconciler Key Takeaways Operators encode operational knowledge into software. The Reconcile […]

Read more โ†’