Home About Eric Topics SourceGear

Posts about: .NET Native AOT

The samples from these chapters are available at:


Wednesday, 18 January 2023

Native AOT Overview

A different approach, where .NET code is compiled Ahead of Time (AOT), directly to native code, skipping the Intermediate Language (IL) step.

Wednesday, 18 January 2023


Using Native AOT to build libraries can open many opportunities for interop.

Wednesday, 18 January 2023

Trivial example

A very simplistic C# library, with one function that multiplies two integers

Wednesday, 18 January 2023

Multiplying two integers from Rust

Calling the multiply() function from Rust (Windows, dynamic)

Wednesday, 18 January 2023


Calling the multiply() function using P/Invoke from C#

Monday, 23 January 2023

Static libraries

Calling the multiply() function in a static library from C++

Wednesday, 25 January 2023


Using object references across Native AOT

Tuesday, 31 January 2023

A "gotcha" with object handles

When multiple Native AOT libraries are in play, we cannot share objects between them.

Thursday, 9 February 2023

Must follow C rules, no exceptions

Error handling for a Native AOT library needs special attention

Wednesday, 15 February 2023

Looking ahead: QuestPDF/Rust demo

We're going to want binding generators.

Thursday, 2 March 2023


Bridging between the world of C function pointers and #dotnet delegates

Monday, 10 April 2023

Binding Generator Preview Release

Preview release of a Native AOT binding generator with Rust support

Wednesday, 3 May 2023

Native AOT libraries with TypeScript

Musings about the potential viability of TypeScript/.NET interop