Announcing .NET MAUI in .NET 8 Preview 3

David Ortinau

The third preview of .NET Multi-platform App UI (MAUI) in .NET 8 is now available. This release we are focusing on improving the quality of the UI controls, layout, and memory management. Also new in .NET 8 we are introducing NuGet packages for your flexibility to preview future builds and lock your applications to a specific version.

.NET MAUI is one of the most active projects in the .NET Foundation. When you combine Android, iOS, and .NET MAUI together, it’s far and away the most active for issues and pull requests. In less than a year .NET MAUI usage has grown 450%. Our goal in .NET 8 is to make you even more successful using .NET to build apps for Android, iOS, macOS, and Windows with .NET MAUI.

image of tweet by Shaun Walker

Improving Quality

The main focus for our .NET 8 release is improving the quality and stability of the entire product. We have been prioritizing the highest impact issues on the most used controls. Those receiving the most attention have been layout, CollectionView, Shell, and drawing (shapes, shadows, clipping).

Thus far in .NET 8 we have now resolved 303 issues and merged 713 pull requests. We’d like to say a huge thank you to the over 50 contributors that have taken part in making .NET MAUI successful!

graphic of contributors

Among some of the most high-impact improvements touch on keyboard with Entry and Editor interactions (#13499), Grid helper methods (#13408), and Shell lifecycle events (#13177).

Those are just a few highlights. For complete details, check out the release notes.

Improving Memory Management

You need and expect .NET MAUI apps to make efficient use of memory so they remain performant and safely operate for extended periods of time. In .NET 8 we’ve been on the hunt for memory leaks, and one of our senior engineers, Jonathan Peppers, has been documenting the progress. He found that when navigating forward and back repeatedly the memory would grow ~2.45KB each time. By implementing a WeakList<T> to keep track of references, he was able to make sure the memory is properly released.

Other areas improved include Button (#14280), Page and Layout (#14108), Window(#14073), Shadow (#13960), Clip (#13806), Background brush (#13656), BindableLayout (#13550), and more. Additional work is underway to improve memory management in CollectionView (#14329).

Several of these have been backported to .NET 7.

NuGet Packages

While .NET MAUI continues to be a .NET workload that you install via Visual Studio or the dotnet command line, you can now layer specific versions of NuGet packages into your project. This is great for:

  • reviewing a pull request
  • previewing unreleased or experimental builds
  • pinning a project to specific version

From any pull request and branch at dotnet/maui you can navigate to the Azure build pipeline by clicking the green checkmark and locating the build artifacts.

image of GitHub pull request checkmark image of GitHub pull request checkmark image of Azure pipeline build artifacts

Download the NuGet artifacts and extract them to a local directory. Within Visual Studio set a NuGet source path to that same directory, or use a nuget.config file. Then within your project’s csproj file you can specify the version (e.g. 8.0.0-ci.net8.11560) of that build:

<PropertyGroup>
    <MauiVersion>8.0.0-ci.net8.11560</MauiVersion>
</PropertyGroup>

Additional work is happening to improve your workloads experience in general. For more details, read up on GitHub.

Getting Started

To begin previewing .NET MAUI in .NET 8 today, install .NET 8 Preview 3 on Linux, macOS, or Windows. Once installed, run the workload installation command from your favorite CLI.

dotnet workload install maui

Full Visual Studio 2022 support for .NET 8 previews will come in a future release. For a more complete look at the .NET 8 roadmap for .NET MAUI, check out themesof.net.

Feedback Welcome

We’d love to hear your feedback. As you encounter issues in the release or have suggestions, please open an issue on GitHub.

13 comments

Discussion is closed. Login to edit/delete existing comments.

  • Eder Cardoso 3

    Congratulations, it’s good to see this bunch of fixes on Preview 3.
    I just wonder if we could have all the same fixes to .NET MAUI that it’s present here based on the .NET 7 (Current Stable).
    I don’t know how hard it would be to have it but it will be very welcomed for users like me that wants to try out all these bug fixes but without having to deal with possible new bugs introduced by .NET vNext (8 in this case).

    • Joris Kommeren 1

      There’s a new Service Release for .net 7 that’s been released simultaneously 🙂 it has many of the fixes

      https://github.com/dotnet/maui/releases/tag/7.0.81

      I’m waiting for a new vs2022 release that includes it!

      Update: 17.5.4 has just been released with this new SR4!

  • Qui Bono 0

    Quality improvements can’t come soon enough.
    Is there an approximate time window for the .NET 8 MAUI production release?

    • David OrtinauMicrosoft employee 0

      November 2023 is the target for releasing .NET 8. Release candidates just before also usually have a “go live” production license.

      • Qui Bono 0

        Thanks!

  • Tony Henrique 1

    Keep up the great work!
    I am working as an architect on a squad and I proposed the team to build a new version of their application using .NET 8 Blazor and MAUI.

    • anonymous 0

      this comment has been deleted.

    • Darko 0

      MAUI is still loaded with bugs plus has no Linux support.
      Combining that with heavy weight Blazor was brave decision.
      Good luck, you will need it.

  • Ken Kohler 3

    .NET MAUI as a workload should be abandoned going forward!

    I have NEVER agreed with the workload approach for MAUI. Reasoning is very simple:
    1. It is much more difficult to determine MAUI version used for a project than Xamarin.Forms version. You can’t just look at the nuget packages and get your answer.
    2. Over the years, I’ve had a number of Xamarin.Forms updates break features/functionality in my app. While it may be a fair statement that in many of these cases, I needed to make changes in my app to address the issue going forward, the point is that framework updates can break things. If I have multiple MAUI projects and an update breaks something, I want to back out the MAUI version until either there is a fix for MAUI or if it is something with my code that needs to change, then I have time to diagnose and fix the issue. An issue with one app should in no way force using a different version of MAUI for all apps I am working on. This was NOT the case with Xamarin.Forms, since that is nuget based, not workload based. The workload format does NOT support this.
    3. I do NOT have control over the build process at work as this is handled by someone else. With Xamarin.Forms, this is not an issue, since I control Xamarin.Forms version for my projects via nuget packages. I do NOT have this control for my projects with the workload approach, as this is outside the scope of the actual MAUI projects.

  • Max Mustermueller 0

    Thank you for adding the nuget option. This is definitely helpful, especially as MAUI still have some core bugs or introducing core bugs on newer versions I often felt that I either wanted to stay on a specific MAUI version or that I looked forward to a specific (not released) MAUI version. Now we can easily do that, thats super cool.

  • JinShil 4

    “To begin previewing .NET MAUI in .NET 8 today, install .NET 8 Preview 3 on Linux, macOS, or Windows.”

    Linux? Really? That would be nice, but I think that’s a typo.

  • Christian Roberto Zaragoza 0

    Soy uno de los que ha optado por confiar en Net Maui, pero al día de hoy veo que es muy lento el avance de errores. Actualmente estoy trabajando con net7 y hay muchas fallas todavía, hoy instale net8 ejecute un proyecto que esta funcional en net7 y no muestra los registros de los collection views (en windows) creo es un error de los converters. Es entendible que Maui esta en etapa de prueba, pero es muy frustrante cada vez que se actualiza una versión dar varios pasos para atrás. De todas formas sigo apostando y confiando que pronto habrá una versión estable.

  • Ravish Kumar 0

    We believe you and thank you for providing updates. My only concern is starting from Xamrin Forms to MAUI we are still stuck with basic user controls performance related issues. Will these ever be fixed for sure?

Feedback usabilla icon