Announcing .NET MAUI Preview 10

David

.NET Multi-platform App UI (MAUI) Preview 10 is now available atop the stable release of .NET 6, and you can acquire it today in the preview channel of Visual Studio 2022. This new release includes the merging of the remaining Windows App SDK dependencies, and ongoing progress to complete the remaining controls and control features.

Installing .NET MAUI

Now to install .NET MAUI, you will want to make sure you are using the preview version of Visual Studio 2022 (17.1) which ships today alongside the stable 17.0 release. When installing, all you need is the “Mobile development with .NET” workload which by default provides the “.NET MAUI (Preview)” dependencies. In a future release, .NET MAUI will be promoted to its own top-level workload.

Visual Studio installation with Mobile development with .NET checked

That’s it! No more additional extensions are needed, and you’re ready to begin developing with .NET MAUI.

Update on controls and features

New in this release are handler implementations of CollectionView and IndicatorView. Other controls have also seen properties implement for VerticalTextAlignment, TextTransform, and more. For a complete list of the changes and improvements, see the release notes.

CollectionView covers most of the same virtualized list based scenarios as ListView and adds support for other layouts such as horizontal and grid. Here is a vertical scrolling grid spanning two columns:

grid of monkeys displayed by a CollectionView control

<CollectionView ItemsSource="{Binding Monkeys}"
                ItemsLayout="VerticalGrid, 2">
    <CollectionView.ItemTemplate>
        <DataTemplate>
            <Grid Padding="10" RowDefinitions="60" ColumnDefinitions="70,*">
                <Image Grid.RowSpan="2" 
                        Source="{Binding ImageUrl}" 
                        Aspect="AspectFill"
                        HeightRequest="60" 
                        WidthRequest="60">
                    <Image.Clip>
                        <RectangleGeometry Rect="0,0,160,160"/>
                    </Image.Clip>
                </Image>
                <Label Grid.Column="1" 
                        Text="{Binding Name}" 
                        FontAttributes="Bold"
                        TextColor="White"
                        VerticalOptions="Start"
                        LineBreakMode="TailTruncation" />
                <Label Grid.Column="1" 
                        Text="{Binding Location}"
                        LineBreakMode="TailTruncation"
                        FontAttributes="Italic" 
                        TextColor="White"
                        VerticalOptions="End" />
            </Grid>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

For more information on how to use these controls, check out our documentation:

Get Started Today

First thing’s first, install Visual Studio 2022 Preview (17.1 Preview 1) and confirm .NET MAUI (preview) is checked under the “Mobile Development with .NET workload”. Ready? Open Visual Studio 2022 and create a new project. Search for and select .NET MAUI.

Preview 10 release notes are on GitHub and we have captured the top changes in a migration guide in the wiki. For additional information about getting started with .NET MAUI, refer to our documentation.

Feedback Welcome

Visual Studio 2022 previews are incrementally enabling new features for .NET MAUI. As you encounter any issues with debugging, deploying, and editor-related experiences, please use the Help > Send Feedback menu to report your experiences.

Please let us know about your experiences using .NET MAUI to create new applications by engaging with us on GitHub at dotnet/maui.

For a look at what is coming in future releases, visit our product roadmap, and for a status of feature completeness visit our status wiki.

34 comments

Leave a comment

  • Nogginbox

    Thanks for the latest release. I’m enjoying Maui so far. I was wondering though: How do I update an existing preview 9 app to use the latest? I thought the project file would have some nuget references in it, but it doesn’t seem to work that way.

    • David OrtinauMicrosoft employee

      When you install preview VS22 version 17.1, then your environment will update to .NET 6 GA and Preview 10 of .NET MAUI. You can confirm you are now using that version by looking at the dependencies in the Solution Explorer and expanding until you see a version of .NET MAUI.

      Correct, there are no NuGet package references for .NET MAUI because it’s actually a workload in .NET now instead of a separate thing like Xamarin was.

      • Nogginbox

        Thanks David. Preview 17.1 has just finished installing. I updated the project file to match the new templates as well just to be sure and it all seems to have worked.

        The new packages also show on the install packages tab in Nuget Explorer. You just can’t change the version.

        Does this mean if I open this solution in an earlier version of Visual Studio it will use an earlier version of Maui? Think I need to read up on workloads, because I keep hearing that term but not sure exactly what they are.

  • Rafael Veronezi

    I find it deeply sad that I simply can’t find any reference on how to do MAUI over the command line and on mac. This is a supported scenario and by the way it was one of the key points when the MAUI concept was presented. But Microsoft keep trying to push everyone to Visual Studio, acting like in the nineties. This doesn’t make sense!

    If you don’t want to push developers to strong competitors like Flutter you should really rethought how you approach to developers.

    • Thorsten Sommer

      I support this opinion and also find it inappropriate from Microsoft. It is not that this is not possible. We can install MAUI on macOS and Linux as follows:

      dotnet workload install maui

      Might need to setup the templates by:

      dotnet new -i Microsoft.Maui.Templates

      Afterwards, you can create a MAUI app by:

      dotnet new maui -n MyApp

      Update: After the templates are set up, the alternative IDE Jetbrains Rider also recognizes the MAUI templates, so everything else can be done in Rider.

      • David OrtinauMicrosoft employee

        We have been working through the acquisition of workloads and dependencies and reconciling conflicts between VS and CLI. VS is where you get the platform dependencies, and this the better path to success. I think we are there now with this 17.1 release.

        CLI is definitely supported, and thoroughly documented:

        https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet

        I can see that .NET MAUI specific documentation would be helpful. We originally had CLI commands in the getting started guide before we had a VS with .NET 6 support. We have this:

        https://github.com/dotnet/maui/wiki/CLI:-iOS-Simulator-Selection

        I’ll make a point to add this soon.

        • Rafael Veronezi

          Hey David, thanks for the reply.

          The thing is, if this is a supported scenario make it clear though!!, because the way you’re announcing MAUI leads to think that you need VS2022 to be able to develop on it.

          I’m a macOS user and I don’t have Windows environment available, even through Virtualization because VS for Windows doesn’t support ARM, so I don’t have a choice. I had a strong background on Xamarin.Forms but I’m starting to migrate to Flutter because their platform is presenting a more consistent developer experience through any environment. You’re doing a great job with MAUI, but you’ll start to lose ground and the momentum if you don’t pay attention to your developer base.

          So please! Make it clear that the platform is really supported elsewhere and provide us with decent docs!

  • Ali Aslan

    The Android device does not appear in the Visual Studio toolbox even though I have installed everything correctly. MAUI app only works on windows.

      • David OrtinauMicrosoft employee

        There is a bug in VS22 17.1 that can be addressed by reloading the solution as Vladislav says. It’s actively being address now for the next release.

        Ali, if you continue to have issues please file a Feedback report from VS so we can troubleshoot it.

  • John Hair

    Thanks David, preview 10 actually fixes a number of the issues I reported previously.

    Can you give an update on the future of Xamarin UITest for .NET Maui? We won’t be able to migrate until we have a UI test framework to also migrate to.

    • David OrtinauMicrosoft employee

      Glad to hear that! Me too. 🙂

      Xamarin UITests should continue to work as they are as a .NET Framework project. This is not actively being worked on (hence the reason I imagine you’re asking), so we are taking a fresh look at UI testing and testing at large with .NET MAUI. I don’t have future guidance for you just yet. When we do we’ll publish that in documentation and blog it. There are many ideas being discussed. Input welcome!

      • John

        Excellent news David, it is great that UI testing is still on the table. I didn’t think Xamarin UI Test would work for .NET Maui and I never tried, but of course under the hood it would be looking for native controls with the appropriate matching text / automation id, so that makes perfect sense!

        1 thing Ive seen mentioned a lot in the past is asking Xamarin UI Test to be open sourced. Mainly due to how long it usually takes to get bug fixes for breaking OS or Xamarin version changes through. I understand they don’t have a dedicated team so delays are to be expected. But speaking for my company, we spend quite a bit on AppCenter for device testing and the delays are just wasting money.

    • David OrtinauMicrosoft employee

      RC1 was Preview 8, right when we made the official decision to delay the GA release of .NET MAUI. We had already named our artifacts, and removing RC1 would have broken too many things. Preview 10 is newer. The base versioning also increased to maintain semver.

  • Theresia Hansson

    I am wondering how to use the new MVU-style MAUI features. Are they even in there? I only seem to find documentation of how to use it with XAML but I am trying to get away from XAML in general.

  • Sam Wheat

    Will we be able to publish MAUI Windows desktop apps to Windows store? Will there be a cost to the developer or the user? Also, will we be able to post a link to an app on a website or email and allow a user to directly download and install it on a Windows desktop machine?

    • David OrtinauMicrosoft employee

      Yes, you can publish to the Windows store. A .NET MAUI app on Windows is a WIndows App SDK (WinUI) app, so you have all the same options. You can also distribute outside the store.

  • Julien Richard

    Hi,

    It’s not the first time I had issues with the project templates not being up to date. It’s very misleading as it wasn’t compiling out of the box.

    I fixed it by running:

    dotnet new --update-apply

    After a fresh install of VS 17.1 Preview (alongside VS 17 installation), Microsoft.Maui.Templates version was 6.0.100-rc.1.1608 while the latest was 6.0.101-preview.10.2068.

    Also, it would be nice to see when you create a project from VS, what is the version of the template used. And maybe add a comment in the .csproj somewhere.

    Cheers !

    • David OrtinauMicrosoft employee

      There have been quite a few changes from preview to preview, and this means you may not always get the templates you expect. If you are able to get to a pristine state and start from 17.1 then your system will be on more stable footing even with side-by-side installs.

      If you expand your project dependencies in the solution explorer you’ll see which version of .NET MAUI is being used. This of course doesn’t necessarily correlate to the templates you have installed if you have other NuGet sources configured in your path.

      You can set the version for .NET MAUI in your csproj to restrict the version, however this again won’t correlate to the templates used to generate it. We are talking about adding workload and template versioning that you can see from CLI. That may happen for .NET 7.

      Currently the sure fire way to see the version of templates you are using is to look in c:\Program Files\dotnet and find the templates for .NET MAUI. Once we get to RC this “what version am I on” should be less of a concern I hope. Let us know if this doesn’t calm down though.