Announcing .NET MAUI in .NET 8 Preview 5

David Ortinau

Hello everyone! I’m thrilled to announce that .NET MAUI in .NET 8 Preview 5 is now available with lots of bug fixes and performance improvements for cross-platform app development. In this post, I’ll summarize some of the most important changes in this release and show you how to update your .NET MAUI project to use this release.

What’s fixed and improved in .NET MAUI

Preview 5 is another quality-focused update that fixes many issues and enhances the performance of the framework, including:

  • iOS Keyboard Scrolling: ContentInsets were added to improve the scrolling behavior of the iOS keyboard. #14371
  • Test Improvements: Various improvements and fixes were made to the tests, including the removal of the skip attribute from a test related to SearchBarHandler. #14852
  • Performance Enhancements: Performance improvements were made to the {Binding} mechanism and the layout performance of labels on Android. #14830, #14933, #14980
  • Bug Fixes: Several bug fixes were implemented, addressing issues such as gestures in Label Spans, Entry issues with the keyboard, Label truncation on iOS, CollectionView issues, ContentView RTL, and more. #14410, #14382, #14453, #14391, #11763, #15114, #12909

These are just some of the highlights of this release. For a complete list of changes, please check out the release notes.

How to update

Visual Studio 2022 on Windows now includes .NET 8 previews and the .NET MAUI preview workload. Download the latest preview version 17.7 Preview 2, select the .NET Multi-platform App UI workload, and then check the optional component “.NET MAUI (.NET 8 Preview)”.

Visual Studio installer checkbox for .NET MAUI and .NET 8 previews

If you are on macOS, you may download the .NET 8 preview 5 installer, and then install .NET MAUI from the command line:

dotnet workload install maui

To verify that everything is installed correctly, you can run the following command:

dotnet --list-sdks

You should see something like this:

8.0.100-preview.5.23303.2 [C:\Program Files\dotnet\sdk]

And to verify you have the correct .NET MAUI workload, run the command:

dotnet workload list

You should see something like this:

Installed Workload Id      Manifest Version                            Installation Source
-----------------------------------------------------------------------------------------------------------
maui-windows               8.0.0-preview.5.8529/8.0.100-preview.5      VS 17.5.33627.172, VS 17.7.33808.371
maui-maccatalyst           8.0.0-preview.5.8529/8.0.100-preview.5      VS 17.5.33627.172, VS 17.7.33808.371
maccatalyst                16.4.8525-net8-p5/8.0.100-preview.5         VS 17.5.33627.172, VS 17.7.33808.371
maui-ios                   8.0.0-preview.5.8529/8.0.100-preview.5      VS 17.5.33627.172, VS 17.7.33808.371
ios                        16.4.8525-net8-p5/8.0.100-preview.5         VS 17.5.33627.172, VS 17.7.33808.371
maui-android               8.0.0-preview.5.8529/8.0.100-preview.5      VS 17.5.33627.172, VS 17.7.33808.371
android                    34.0.0-preview.5.312/8.0.100-preview.5      VS 17.5.33627.172, VS 17.7.33808.371

Updating existing projects

To update your .NET MAUI project to use 8.0.0-preview.5.8529, you first need to install the .NET 8 Preview 5 SDK and then update the .NET MAUI NuGet packages in your project. You can use Visual Studio or Visual Studio for Mac to manage your NuGet packages or edit your project file manually.

To use Visual Studio or Visual Studio for Mac, right-click on your project and select “Manage NuGet Packages…” then select the “Include prerelease” option and search for Microsoft.Maui. packages. Update all the packages to version 8.0.0-preview.5.8529. To edit your project file manually, open it in a text editor and find the ItemGroup element that contains the PackageReference elements for Microsoft.Maui. packages. Update all the Version attributes to 8.0.0-preview.5.8529.

Your project file should have an ItemGroup that looks something like this:

<ItemGroup>
    <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0-preview.5.23280.8" />
</ItemGroup>

Now you can build and run your project using Visual Studio or Visual Studio for Mac or use the dotnet build command with the -t:Run target:

dotnet build -t:Run -f net8-android MyMauiApp.csproj

This will build and launch your app on an Android emulator or device.

Feedback Welcome

We appreciate your feedback and contributions to .NET MAUI. You can report issues, suggest features, or submit pull requests on our GitHub repository. You can also join our Discord server or follow us on Twitter to stay in touch with the latest news and updates.

Thank you for your support and happy coding!

56 comments

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

  • Eder Cardoso 17

    All of these fixes was supposed to be on .NET 7 Releases!
    When are you going to start listening your fellow customers ???

    • David OrtinauMicrosoft employee 2

      Hi Eder, I hear you and I wish we could ship all the fixes to all the versions. We are optimizing for fixing the most impactful issues and that means limiting most all of our focus to ensuring .NET 8 is the best possible release.

      • Eder Cardoso 10

        All bug fixes matters David. Bug fixes is what matters the most for us as .NET MAUI developers.
        Please change this bug fix merge and delivery policy/process. Bugs damages the framework’s image a lot, specially for those who are touching MAUI for the very first time.

      • Bernhard Pollerspöck 14

        Problem is go get Apps to GA requires a Stable Framework. and waiting for crucial fixes for now 5 Month until we can ship to a customer just plainly cancels projects due to timelines.
        Currently the MAUI repo feels pretty stale. Fixes and Issues that are critical to operate just idle for 6-12 month without anyone from the team touching. Its not only frustrating. it costs money and customers that may never come back. 🙁

        • Eder Cardoso 14

          Exactly, that’s what I’m trying to make .NET MAUI team to understand. Companies doesn’t care about .NET 8 until it reaches GA.
          But we all do care a lot about bugs not being delivered to the current “Stable” version of MAUI that today it’s .NET 7.
          Nobody who is creating a new app or migrating from XF would like to deal with .NET vNEXT (8) own bugs right now. We just want the CURRENT version of MAUI that is based on .NET 7 to have their bugs squashed and released right now. I do follow the almost every day PR’s merged to MAUI’s master branch and I clearly see that there are a ton of bug fixes that was already merged to the master branch since de begining of the year and they are holding for the flufy .NET 8 party. Come on guys, we need these bug fixes to be released on the stable version of MAUI. I would say that around 90+% of the companies doesn’t allow devs to run their project development using Preview versions.

        • Eder Cardoso 10

          They need to understand the real meaning of Continuous Delivery:
          – If a bug was discovered, then fix it on the current release branch, test it well and release it to your client.
          – Then backport it to your current development branch.
          Simple like that.

          • Jens Jährig 9

            @eder
            With most of the current maui team nothing will change. I held these kind of conversation with one or another dev of them too. And i observed other people doing the same in github issues.
            And the maui team has zero insight of changing their way. There attitude is only “maui is so AWSOME!!!! If you are not happy, simply use something else.”, neglecting the overwhelming amount of fundamental flaws, from QA, architecture, rendering issues, dotnet workloads, VS Mac, etc.. You just cannot use one piece of this framework without stumbling over an endless stream of problems.

            For me, MAUI/X.F is the new UWP, a fundamentally broken design (driven by it’s team members, which refuse to acknowledge and change these things), up to a point where even the last developer is put of by it and has moved away. This will go on for a few years, and then MSFT will silently cancel it.

          • Bernhard Pollerspöck 2

            I am in my Weekend now(no Access to my work git). After mondays Weekly i will message you.
            But none the less everyone needs another fix so delaying them is always hitting someone.

      • Eder Cardoso 8

        With all respect to you and to the whole MAUI team David, but this vision is totally wrong!
        limiting most all of our focus to ensuring .NET 8 is the best possible release.
        The focus IMO should be from the very beggining, right after MAUI 7 was released, to squash bugs on the current version as fast as we can.
        Delaying bug fixes release on current stable version just make people to abort MAUI adoption and switch to any other technology and that bad first impression about MAUI will certainly make them market MAUI as a crappy framework to other devs and they will never give it another try.

        • David OrtinauMicrosoft employee 1

          Eder, we have discussed this before. I hear you and understand the impact to you and others. This is a point in time decision to optimize the number of issues we are able to resolve by focusing on a specific release just a few months away now.

          • Jura B 5

            Hey everyone, seriously, it’s your own fault, why are you still staying with MAUI? Port all apps to Flutter and you’re done. Microsoft had its time to prove itself and what happened? a version that has many bugs. Microsoft only realizes it when it’s too late.

          • Eder Cardoso 8

            David, for you it’s “just a few months away”, for us it’s an eternity. I´ve been complaining about this release policy about bug fixes ALREADY MERGED to master has been a long time. I remember that when the very first version of MAUI (.NET 6.x) was released as GA, we were already complaining about the speed to release bug fixes and from that time until now, nothing has changed and the worst part is that it seems like that you (the team) doesn’t wanna see the issue with it and change.

          • John 6

            Hi David, ‘just a few months’ is actually 5 months at best, which only gives us a further 5 months to migrate from Xamarin.
            Im interested to know why the decision was made to fix .NET 8, not current production, when we have a hard deadline to migrate away from Xamarin? We can’t start migrating to Maui with .NET 7 in its current state. No other dev team Ive worked with work like that, you are betraying all your long term supporters.

            If MS reversed its decision of not including Xcode 15 support in Xamarin, then this problem largely goes away. Most of us can probably wait for a stable Maui.

            FYI anyone reading this, Xamarin won’t support Xcode 15, and Apple will stop signing Xcode 14 builds on May 1st 2024. You need to have completed your migration from Xamarin to .NET Maui by end of April.

          • Jonathan Rosanowski 7

            Hi David, given the way the Maui project is being released/managed how are developers supposed to be assured that Maui will be usable when Maui .Net 8 releases? If there’s bugs in Maui .Net 8 how long will developers have to wait for fixes? Is the clock going to run out on our ability to migrate?
            Thanks.

      • Alessia Mantovani 9

        Hi David! We absolutely need these fixes in .net7, our customers complain that we are delaying too much with the migration from xamarin to maui… We have been starting for months and we are always at the same point because we are unable to show them even a single page of ours application that is free from bugs. Please don’t make us wait so long for fixed bugs.

    • Jens Jährig 14

      Definitely these fixes should have been in net7.
      The team does the same fairytale every year “everything will be so AWSOME with the next major release (5,6,7,8,9,10), we fixed so many bugs”.
      But what we always get is a broken current version, and a next version which fixes one thing and brakes another.

      I see no positive change in this scheme in the last years.

      • Eder Cardoso 9

        I absolutely agree with you Jens, The MAUI team needs to understand that bug fixes must target the current stable version and should be delivered as soon as possible, I would say at a weekly frequency or at least on every Patch Tuesday as it’s specified on MAUI’s docs. But no they are holding almost everything in terms of bug fixes to the .NET 8 launch, which is VERY VERY FAR from now and we keep suffering with a bad quality framework for the time being. David already told me, that there’s an extra effort for them to backport bug fixes to the current “stable” (not so much stable I would call it) version of MAUI and I understand that. However there’s probably a misunderstanding or something really weird in their process because from what I understand is that Bug Fixes should, from the beginning, target the current version release branch and then it should be backported to the dev branch. The way that the MAUI team is dealing with bug fixes is what seems to be wrong IMO and I hope that David and the others on MAUI team explain in more details and change it if possible, so we doesn’t have to wait until big major releases goes out 1 time per year.

      • Schmidt, Helmut 7

        Couldn’t agree more.
        .Net 7 branch is left dead in the water and we are supposed to migrate to the beta versions of .Net 8 to receive critical fixes :/
        Add the complexity from workload-versioning and it becomes hard to even properly test those beta versions.
        There were plans to switch back distribution of MAUI via NuGet but that hasn’t materialized yet, or has it?

        • David OrtinauMicrosoft employee 0

          As you see in this blog post, .NET 8 re-introduces PackageReferences for the .NET MAUI piece for greater flexibility choosing new versions and even pre-release versions from Pull Requests and branch builds.

      • Stefan Hinterhegger 7

        I totally agree with you. Another release which adds more and more regressions to MAUI – with preview 5 iOS apps don’t launch at all. Do you even test the stuff you put out? With this pace and this size of the development team MAUI is a dead end! I hate to say it but in its current state .NET MAUI sucks! I’m wondering if one of the PMs even tried to build an app with it, what are you doing? No one is active in issues and discussions on GitHub, it’s all left to the development and engineering team which is doing their best.

        PMs and marketing are making promises and nice showcase from time to time but the reality for the majority of developers is the one that I and others in this comment section already described.

        Doing mobile development for >10 years and hate to say it but MAUI is broken promise – should make our developer life’s easier but just adds additional time needed to implement workaround after workaround. And I’m not even talking about new innovations coming to the framework i.e. complete iOS framework bindings, transitions, app bar, MVU and so on…..

        I really want to see MAUI succeed, but right now it’s just frustrating to have to use this stuff

      • Qui Bono 1

        I got really burnt by MAUI. It cost me 4 months of lost time which I’ll never be able to get back.
        I’ve since switched to Flutter and am now being productive.
        Sad to see MSFT drop the ball on tools development. I used their tools for many years and they served me well until MAUI.

  • Tony Henrique 0

    Good to be able to use the Visual Studio (Preview) installer to install the .NET 8 MAUI (preview) workload.

  • Nikolay Pavlov 7

    Please kill MAUI. Adopt PlatformUno, focus on WinUI 3 and WASDK, and create a clear, solid road towards native apps. MAUI just adds distraction and will end up being only a host for Blazor Native.

    • Dario Bagatella 8

      I agree Nikolay

      .NET 8 MAUI release notes show me that MAUI is already dead:
      It will be only used for mantaining old xamarin.forms projects and blazor hybrid embedding.

      Microsoft has no intention to invest in a flutter like alternative. It’s really sad.

      Time to consider Uno or Avalonia or … Flutter

      • Happypig375 1

        We already have Uno and Avalonia to fight Flutter. Don’t rely on MAUI.

        Use Avalonia for pixel perfect Skia-drawn controls and Uno for native platform controls. Simple as that.

    • Michael Taylor 3

      @Nikolay then don’t use it. I’m sure there are many technologies you’re not using but are still fully supported. Just because you see no use in it doesn’t mean it isn’t used by others.

      @Dario, please post the section(s) in the release notes that indicate to you that MAUI is dead. Or are you just stating your opinion and, if so, then please indicate how much, if any, investment in MAUI you actually have. I’m also curious about whether your “it will only be used” comes from some documentation somewhere or is, again, your opinion.

      • Someone 2

        It feels like it does not have a future such as other technologies. Also lack of Linux support is not that what cross-platform solution should be. In addition to it I think there are too many different solutions such as Xamarin, MAUI, WinForms, WPF, Blazor, Blazor WASM, Blazor Server-Side Rendering, so devs are confused about stuff.

    • W L 2

      Obviously this is impossible, they need a new project to get KPI, and then get the opportunity to be promoted, this is the whole meaning of MAUI.

  • jack bonlay 4

    Good news. .net Maui is maturing fast. Can’t wait for the full release on November 2023. I use .net Maui every day and have no major complaints. .net MAUI is a great product and a large community is already using it.

    • Jens Jährig 8

      Working every day with Maui and having no complaints. This was a good joke.

      • anonymous 0

        this comment has been deleted.

    • anonymous 0

      this comment has been deleted.

    • George Karabin 0

      MAUI and Xamarin.Forms before it gets the job done for my team. The grass isn’t any greener in the React Native or Flutter worlds. Building a cross-OS UI framework is hard, given how much churn there is in the OSes. Looking forward to seeing more incremental improvement!

  • Roger Briggen 5

    Hi David,
    I also think bugs should be fixed in the released branch and not in unstable branches only.
    Pre4 I could not use because of errors with the dotnet runtime, Pre5 I cannot compile my maui app because of https://github.com/xamarin/xamarin-android/pull/8091 so I have to wait for Pre6 until I just simply can compile my app and get the fixes, some which were done in December 22 but still are only available in the dotnet8 branch.

    • Eder Cardoso 7

      This is crasy, having to wait for a fix that was implemented on December 2022 until November 2023 just because the MAUI team doesn’t want to release it’s crazy (trying to be polyte here 🤬)

      • Chris Podmore 4

        Eder I’ve just tried the latest preview and it’s worse than the current release. You really don’t want that mess being merged in to .NET 7

        For me .NET 8 preview has more things broken for Android and when I started, lots of my views are now all over the place, really messed up

    • akshay chaudhary 0

      I couldn’t agree more. Releasing an unfinished product is a bad idea. I think all the bugs need to be fixed asap in both released and unstable branches.
      Even I had same issues with the Pre5 https://github.com/xamarin/xamarin-android/pull/8091, hence I waited for Pre6 to get all the fixes.

  • Francesca Latorella 9

    The framework was created to save development time by ensuring quality.
    Currently, as team, we spend most of time looking for workarounds for simple bugs that should have been fixed months ago.
    It’s getting frustrating.

  • Matteo (911) Maggiolini 4

    Hope this will not become the new silverlight. We need to fight flutter before is too late.

    • Happypig375 2

      We already have Uno and Avalonia to fight Flutter. Don’t rely on MAUI.

      Use Avalonia for pixel perfect Skia-drawn controls and Uno for native platform controls. Simple as that.

      • Matteo (911) Maggiolini 0

        too far behind compared to Flutter

  • Peny Fast 1

    Does we have long press support finally ? 😅

  • Max Miller 8

    Port bug fixes to .NET 7! Right now MAUI has broken, laggy and useless CollectionView, a control that used almost in every product app! We can not wait 6 months untill .NET 8 released!

    • Thanh Nguyen 1

      Lol, CollectionView. Former Xamarin dev here, CollectionView still scares me. As long as they keep that guy, (Heznandes? Hartez?), the nightmare goes on.

  • John 0

    Im tempted to try the preview! However with Visual Studio 17.7 Preview 2, are you aware of the new hard dependency that some nuget packages need to include Arm64 simulator slice when running VS in Parallels on Arm Macs?
    We have had to remove AppCenter crash and analytics and Xamarin UITest nugets to be able to compile. We can’t work with technology that introduces such breaking changes without workarounds so have had to revert to 17.6.

Feedback usabilla icon