LK DevConf 2020: Building for the Cloud-Native Era

Last weekend I presented at LK DevConf 2020 in Letterkenny. The theme this year was cloud-native development, and the energy was incredible. My Session: Kubernetes for .NET Developers I showed how to take a .NET Core application from local development to production on Kubernetes: Dockerfile best practices for .NET Kubernetes manifests and Helm charts Health […]

Read more โ†’

React Testing Best Practices in 2020

The React testing landscape has shifted dramatically. In 2018, Enzyme was the standard, allowing developers to manipulate component internals (state, props). In 2020, React Testing Library (RTL) is the undisputed champion. The philosophy “The more your tests resemble the way your software is used, the more confidence they can give you” drives this shift. Enzyme […]

Read more โ†’

Entity Framework Core 3.1: Performance and LINQ Improvements

EF Core 3.1 finally addresses the major criticism of previous versions: the implicit client-side evaluation of LINQ queries. In versions 1.x and 2.x, if EF couldn’t translate a C# expression to SQL, it would silently fetch ALL rows and filter in memory. This caused massive production outages. EF Core 3.1 breaks this behavior by throwing […]

Read more โ†’

Azure Landing Zones: Enterprise-Scale Architecture

Moving to the cloud is easy; managing it at scale is hard. “Azure Landing Zones” is the Microsoft-recommended architecture for building a scalable, secure, and compliant foundation. It moves away from the “single subscription” model to a “subscription democratization” model managed by Management Groups and Azure Policy. This guide explores the “Enterprise-Scale” reference architecture. The […]

Read more โ†’

TypeScript 3.8: Private Fields and Top-Level Await

TypeScript 3.8 brings one of the most awaited features from the ECMAScript Proposal stage 3: Hash-names for private fields. Unlike the private keyword in TypeScript which is erased at compile time, hard private fields (#field) are enforced by the JavaScript runtime (V8), offering true encapsulation. Hard Private Fields (#) vs ‘private’ Top-Level Await You can […]

Read more โ†’