Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Andrew Lock
Andrew Lock | .NET Escapades Andrew Lock
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers May 19, 2026 ~10 min read Exploring the .NET 11 preview - Part 2 Unions are one of those features that have been requested for years, and in .NET 11 (or rather, C# 15) they're finally here. In this post I describe what that support looks like, how you can use them, how they're implemented, and how you can implement your own custom types.
The Windows File Explorer replacement, File Pilot, is awesome
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers January 13, 2026 ~10 min read In this post I show off the Windows File Explorer replacement tool I've been trying for the last couple of weeks, File Pilot. I discuss why you might want to replace File Explorer and show some of the many features File Pilot has (my number one feature: it's fast!).
Creating a .NET CLR profiler using C# and NativeAOT with Silhouette
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers December 16, 2025 ~14 min read In this post I take Kevin Gosse's Silhouette library for a spin, to see how easy it is to build a basic .NET CLR profiler. And when I say basic, I mean basic—in this post we'll simply log when an assembly is loaded and that's it. I was mostly interested in seeing how easy it was to get up and running.
Exploring the .NET boot process via host tracing
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers November 25, 2025 ~17 min read In this post we take a look a look at how you can enable diagnostics for the .NET host itself that you can use to debug issues running your .NET applications. We then use the tracing diagnostics to explore the boot process of a simple .NET application. The main focus of this post is to show the the host tracing feature available in modern .NET.
Easier reflection with [UnsafeAccessorType] in .NET 10
Sponsored by Dometrain CoursesâGet 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers November 04, 2025 ~12 min read Exploring the .NET 10 preview - Part 9 In this post I describe some of the improvements to the [UnsafeAccessor] mechanism that was introduced in .NET 8.
Understanding the worst .NET vulnerability ever: request smuggling and CVE-2025-55315
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers October 28, 2025 ~24 min read I admit, that's a very click-baity headline, but Microsoft have given the vulnerability a CVSS score of 9.9, their highest ever. Time to panic, right? In this post I try to provide a bit more context.
Publishing NuGet packages from GitHub actions the easy way with Trusted Publishing
Sponsored by Dometrain CoursesâGet 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers September 30, 2025 ~7 min read In this post I describe how you can use nuget.org's new Trusted Publishing feature to publish NuGet packages from a GitHub Actions workflow, without having to generate and store API keys, while simultaneously benefiting from improved security.
Supporting platform-specific .NET tools on old .NET SDKs
Sponsored by Dometrain CoursesβGet 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers September 16, 2025 ~21 min read Exploring the .NET 10 preview - Part 8 In this post I look in more depth at the platform-specific (self-contained or Native AOT) NuGet package support added in .NET 10, and in particular look at how you can continue to support users working with older versions of the .NET SDK.
Packaging self-contained and native AOT .NET tools for NuGet
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers September 09, 2025 ~16 min read Exploring the .NET 10 preview - Part 7 In this post we'll look at the support for platform-specific .NET tools feature added in .NET 10,. This new feature allows you to pack tools in a variety of different ways—including self-contained, trimmed, and using native AOT—mirroring the many different ways you can publish .NET apps today.
Using and authoring .NET tools
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers September 02, 2025 ~9 min read In this post I describe some of the complexities around authoring .NET tools, particularly where you don't know which version of the .NET runtime customers will have installed. Finally, I provide some tips for working with and testing .NET tools in a continuous integration (CI) environment.
Fixing an old .NET Core native library loading issue on Alpine
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers August 26, 2025 ~8 min read In this post I describe an issue I ran into at work when we were trying to test an app using Microsoft.Data.SQLite on Alpine Linux, and were running into this error: Unhandled exception. System.DllNotFoundException: Unable to load shared library 'e_sqlite3' or one of its dependencies.
Converting an xUnit test project to TUnit
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers August 19, 2025 ~11 min read In this post I discuss the new TUnit testing framework, why I ported one of my libraries to use it instead of xUnit, how I did that, and related issues I had to deal with. TUnit is a new testing library, similar to xUnit, NUnit, or MSTest, that you can use to write test suites for your .NET applications.
Running .NET in the browser without Blazor
In this post I show how you can run .NET in your browser without using Blazor, and instead rely only on the WASM base infrastructure that Blazor builds on top of. I also look at some of the improvements coming to this in .NET 10, primarily around client-side file fingerprinting. WebAssembly (WASM) leapt onto the .NET scene back in 2017 when Steve Sanderson showed off a tech demo of what would ultimately become Blazor.
Passkey support for ASP.NET Core identity
Sponsored by Dometrain Courses—Get 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers August 05, 2025 ~13 min read Exploring the .NET 10 preview - Part 6 In this post I look at the passkey support added to ASP.NET Core Identity in .NET 10 preview 6. I primarily focus on the changes included in the Blazor template, looking at what's been added and changed as part of the passkey support.
Running one-off .NET tools with dnx
In this post I briefly show the new dnx command for running one-off .NET tools without installing them. I show how to use the command, how the command works in practice, and how the command works behind the scenes in the .NET SDK. The Node.js ecosystem has had a tool called npx since 2017. Sitting alongside the npm package-manager tool, it allows running a Node.js tool from a package without having to installing it globally.
Solving the source generator 'marker attribute' problem in .NET 10
Sponsored by Dometrain CoursesâGet 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers July 22, 2025 ~11 min read Exploring the .NET 10 preview - Part 4 In this post I discuss the addition of a new API for source generators included in version 4.14 of the Roslyn compiler (included as part of the .NET 10 SDK). This provides a simple solution to an otherwise annoying problem associated with the "marker attributes" that often drive source generator behaviours.
C# 14 extension members; AKA extension everything
Sponsored by Dometrain CoursesâGet 30% off Dometrain Pro with code ANDREW30 and access the best courses for .NET Developers July 15, 2025 ~9 min read Exploring the .NET 10 preview - Part 3 In this post I take a short look at the C#14 extension members feature which is available in the latest .NET 10 previews. In this post I describe what the feature is, how it extends the existing capabilities of extension methods, and how to create extension members in .NET 10.
Working with stacked branches in git (Part 1)
Sponsored by Dometrain CoursesâGet 10% off your first month of Dometrain Pro with code ANDREW and access the best courses for .NET Developers June 17, 2025 ~13 min read In this post (and the subsequent post) I describe the Git workflow that I typically use when I'm working on medium-to-large features.
Converting a Microsoft XNA 3.1 game to MonoGame
Sponsored by Dometrain Courses—Get 10% off your first month of Dometrain Pro with code ANDREW and access the best courses for .NET Developers June 10, 2025 ~11 min read In this post I describe how I took a Microsoft XNA Framework 3.1 game, written over 15 years in 2009, and updated it to run using MonoGame, on .NET 8, in just a few hours. This is a follow on from my previous post in which I took a brief look at the history of XNA and MonoGame and the getting started story.
Machiavelli, Marketing and Management: Revisited
This second fascinating and cutting-edge text provides insight into the meaning and interpretation of Machiavelli and his works for management, marketing, and political thought and highlights their particular relevance to the manager and policymaker today.
Working with stacked branches in Git is easier with --update-refs
Sponsored by Dometrain Courses—Get 10% off your first month of Dometrain Pro with code ANDREW and access the best courses for .NET Developers November 08, 2022 ~8 min read In this post I discuss how to use a new Git rebasing feature, --update-refs, which was included in Git 2.38, in October 2022. This makes working with "stacked" branches a lot easier. I'm a big fan of small git commits. Especially when you're creating a big feature.
The movement potentiation scale and movement therapy - A study of three cases
Translate this page into: ARTICLE IN PRESS doi: 10.25259/JMSR_70_2024 , , , 1Department of Research, The Association of Musculoskeletal Sports Physiologists, Auckland, New Zealand 2Department of Research, The College of Functional Movement Clinicians, Brisbane, Australia *Corresponding author: Brogan Williams, EP, PhD, The Association of Musculoskeletal Sports Physiologists, Department of Research, Auckland, New Zealand.
Measuring one’s ability to alter, change, and reduce lumbar flexion under load: A case report
Translate this page into: ARTICLE IN PRESS doi: 10.25259/JMSR_5_2024 , , , 1Department of Research, College of Functional Movement Clinicians, Auckland, New Zealand *Corresponding author: Brogan Williams, Department of Research, College of Functional Movement Clinicians, Auckland, New Zealand. Email: brogan.s.williams@gmail.com Abstract One cannot completely avoid spinal flexion while deadlifting, but is it possible to reduce it?
Neurophysiological pre-training protocols for performance and pain - a case report
Translate this page into: ARTICLE IN PRESS doi: 10.25259/JMSR_268_2023 , 1Department of Research, College of Functional Movement Clinicians, Melbourne, Australia 2Department of Research, College of Functional Movement Clinicians, Auckland, New Zealand *Corresponding author: Brogan Williams, Department of Research, College of Functional Movement Clinicians, Auckland, New Zealand.
Understanding the .NET ecosystem: The evolution of .NET into .NET 7
I've been working hard on the latest edition of my book, ASP.NET Core in Action, Third Edition, working through the final review process. There's a lot of new content in this edition, so we chose to remove one of the appendices from the book, trying to make sense of the .NET ecosystem.
Building ASP.NET Core 2.0 preview 2 packages on AppVeyor
I was recently creating a new GitHub project and I wanted to target ASP.NET Core 2.0 preview 2. I like to use AppVeyor for the CI build and for publishing to MyGet/NuGet, as I can typically just copy and paste a single file between projects to get my standard build pipeline. Unfortunately, targeting the latest preview is easier said than done! In this post, I'll show how to update your appveyor.yml file so you can build your .NET Core preview libraries on AppVeyor.
Oxygen delivery using engineered microparticles
Significance The clinical treatment of profound oxygen deprivation (hypoxemia) is time sensitive and requires skill and specialized equipment. When the airways or lungs become incapacitated (e.g., due to airway obstruction or lung injury), resuscitation is ineffective until oxygenation is restored. Many critically ill patients suffer organ dysfunction, cardiac arrest, or death within minutes.
Small Business Web Tools: Help with WordPress Blogs
WEBINAR: On-Demand Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame WordPress University Do you use WordPress to publish a blog? If so, heres a neat resource that you may find useful: WordPress University. This free site offers a variety of tutorials and other information for WordPress users. Whether youre a beginner or an expert, WordPress University claims youll find all the training and resources you need in order to maximize your WordPress experience.
Running async tasks on app startup in ASP.NET Core 3.0
In this post I describe how a small change in the ASP.NET Core 3.0 WebHost makes it easier to run asynchronous tasks on app startup using IHostedService. Running asynchronous tasks on app startup. In a previous series I showed various ways you could run asynchronous tasks on app startup. There are many reasons you might want to do this - running database migrations, validating strongly-typed configuration, or populating a cache, for example.
Racing against the dark on Mt. Kanchenjunga
"Master of Thin Air" by Andrew Lock is a riveting, often thrilling account of what it takes to challenge the Earth's highest peaks and survive. Lock shares experiences on his journey to scale all 14 eight-thousanders, the largest mountains in the Himalayas. It is also the inspiring story of what motivates a person to achieve an extraordinary dream, a story of passion, resourcefulness, self-motivation, and hope—even in the most dire moments. I was in hell.
Interfacial Nanoprecipitation toward Stable and Responsive Microbubbles and Their Use as a Resuscitative Fluid
AbstractInjecting oxygen can be life-saving rather than lethal. In their Communication (DOI: 10.1002/anie.201711839), B.?D. Polizzotti and co-workers describe interfacial nanoprecipitation as a novel strategy to prepare stable and multifunctional polymeric microbubbles. pH-responsive oxygen microcarriers were created that both self-eliminate and rapidly oxygenate blood, and their potential as a resuscitation fluid for asphyxial cardiac arrest was also demonstrated.
Interfacial nanoprecipitation toward stable and responsive microbubbles and their use as a resuscitative fluid
Abstract: We report a new approach to prepare stable microbubbles (MBs) via interfacial nanoprecipitation of bioabsorbable polymers at air/liquid interface. This facile method offers robust control over MBs morphology and chemo-physical properties by simple chemical modifications. This approach is amenable to large-scale manufacturing, and is useful to develop functional MBs for advanced biomedical applications.
Christmas Catalogue
Founded as Melbourne University Press in 1922, Melbourne University Publishing proudly continues a strong tradition in Australian publishing both today, and into the future. MUP books provide important contributions to a broad range of non-fiction subjects, including: politics, current affairs, biographies, true crime, history, society, art and design, food and wine, self-help and sport.
Rehabilitation for Lumbar Spine Recovery: The Science and the Truth
So, Grasshopper, why are you sitting there contemplating your navel? Oh, right, because you hurt your back and the authorities told you to “pull your belly button in” and that until you could isolate your holy of holies – the mystical transverse abdominis (TVA) – you could not progress any further. I have the secret for you. The secret that will set you free. It is the answer to the age-old Buddhist question, “What is the sound of the one-hand clap?” I’m going to tell you the answer.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Andrew
Contact Andrew, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack