The new inter-language interoperability in .NET 5 and 6

EN / Day 1 / Track 1

In this new era of cross-platform and multiple CPU architectures, interoperating with other languages is more important than ever. While C-style exports are immortal, they are too basic and do not offer lifecycle management or a rich type system. Since C++ does not provide a standard Application Binary Interface (ABI), Microsoft rejuvenated the ABI used in WinRT to allow multiple languages to interoperate as components, at a higher level of abstraction. Instead of letting the burden to implement the ABI to the developers, Microsoft created code generators for C++, Python, Rust, and C# allowing the old dream to call into library written in different languages.

In this session we will see the most important .NET-centric scenarios, how can we replace C++/CLI code and what can we expect from future evolutions of these generators.