Metalama Status Update, November 2024

by Gael Fraiteur on 01 Dec 2024

The focus this month for the whole community was on Microsoft’s release of .NET 9. Almost immediately, we published the RC builds of Metalama and PostSharp 2025.0 to support the new stacks. After running our reference performance test suite, we’re thrilled to announce significant performance improvements in Metalama 2025.0.

Metalama 2025.0 RC

As is now tradition in our development community, Microsoft released the new version of the .NET stack on the first day of .NET Conf. A few days later, we released the first release candidate of Metalama 2025.0.

Here’s a short list of features in Metalama 2025.0. New features from this month are marked with stars (✨).

  • Support for .NET 9 SDK and C# 13.
  • Support for Roslyn interceptors.
  • Dramatic performance improvement: 30-40% faster than 2024.2 under typical load.
  • Async and background WPF commands.
  • Implementation of generic interfaces.
  • Creation of generic instances of introduced types.
  • Define local variables dynamically using the new meta.DefineLocalVariable method.
  • Introduction of static virtual, abstract, and partial members. ✨
  • Support for this parameters in introduced methods. ✨
  • Suppression of some irrelevant warnings on aspects. ✨

For more details, check out the Metalama 2025.0 release notes, or the individual changelogs for versions 2025.0.6-rc and 2025.0.5-preview.

We don’t release on Fridays, nor in the week before Christmas, so we plan to announce the general availability of Metalama 2025.0 in the very first days of the year. In the meantime, we will publish another RC build.

Metalama 2024.2

We’ve merged Roslyn 4.12 (part of .NET 9) into Metalama 2024.2. Although using the new C# language features requires an update to Metalama 2025.0, we want to ensure you’re getting the latest Roslyn fixes with all currently supported versions of Metalama.

See the changelog for Metalama 2024.2.30.

PostSharp 2025.0 RC

Along with Metalama, we’ve released the first RC build of PostSharp 2025.0 with the following additional features:

  • Support for .NET 9 SDK and C# 13.
  • Long path support in projects targeting .NET Framework.
  • Improved Windows PDB support.

We plan to announce the GA of PostSharp 2025.0 in early 2025, with a new RC in the meantime.

Roadmap

In December, we plan to slow down due to the holiday season. We will focus on fixing bugs, targeting both 2024.2 and 2025.0.

We are planning to uncommission the online Metalama Sandbox because of its high maintenance and operation costs but insignificant usage. This web app was a fork of .NET Try, which is no longer maintained by Microsoft.

Talking code quality at BuildStuff

Overcoming the Broken Window Syndrome at Build Stuff.

I had the privilege to talk about code quality at Build Stuff 2024 in Vilnius, delivering my talk: Overcoming the Broken Window Syndrome: Code Verification Techniques for .NET Developers.

Getting back on stage after a long hiatus that started with Covid and continued until we completed Metalama’s first version felt like returning to the village after years in a cave. I loved interacting with the audience and speakers. It’s the first time I was thanked with a hug for a talk! Well, that was after the party, and we were all a bit less inhibited than usual…

Build Stuff is a great conference: informative, inspirational, and fun. And Vilnius is a beautiful city, even under the cold November rain, which, I overheard, doesn’t last forever.

The talk recordings aren’t available yet. Follow Build Stuff on YouTube to get notified when they are.

Five Published Articles

This month, we published five articles in the Timeless .NET Engineer series, all related to WPF.

Implement ICommand with Metalama 4 Ways to Implement ICommand Implementing WPF Dependency Properties with Metalama Implementing Custom WPF Dependency Properties WPF Best Practices

Summary

We are ready to launch Metalama and PostSharp 2025.0 in the first days of the new year. Metalama 2025.0 is an exciting release: not only does it support .NET 9; it also brings dramatic performance improvements, removes previous constraints on implementing interfaces or using introduced types in generic types, and brings long-anticipated features like the introduction of partial, abstract, or static virtual members.

Happy meta-programming!

This article was first published on a https://blog.postsharp.net under the title Metalama Status Update, November 2024.