Reputation: 3026
So, What happens to Xamarin.Forms?
What is Multi-platform App UI?
What are the key differences or advantages that MAUI offers over Xamarin for cross-platform app development?
Where can developers generate and work on Multi-platform App UI (MAUI) projects efficiently
Upvotes: 45
Views: 33594
Reputation: 17422
What happens to Xamarin.Forms ?
Xamarin.Forms
is deprecated, it is takes over by .NET MAUI
, a newly created open source framework for developing mobile and desktop application.
What is MAUI ?
MAUI (Multi Platform App UI) is a framework by Microsoft for developing native mobile application for Android, iOS, mac and windows. It uses .NET Core
and all its features like Dependency Injection, Hot reload etc. Its advanced version of Xamarin.Forms
when we compare performance and ease of development.
What is differences between MAUI and Xamarin ?
MAUI has a single project which we can execute/run across the platforms based on selected Build Target
. Keeping resources, fonts all simplified
.NET
hot reload included
Modern app pattern like .NET Core
applications, we have startup/program class where we can use .NET built in dependency injection, fonts, resources and lots of other feature
MAUI is part of .NET
Base Class Library (BCL)
There are plenty of Nuget packages are available for MVVM, Custom Controls and other devices related functionalities.
Where can we generate MAUI projects ?
Use Visual Studio 2022
for creating MAUI projects. Go to File -> New -> Project -> Select/Search .NET MAUI App
-> Click next and generate project.
Upvotes: 2
Reputation: 3173
With .NET 5 Microsoft begins the journey of unifying the .NET platform, bringing .NET Core and Mono/Xamarin together in one base class library (BCL) and toolchain (SDK), more about it here.
.NET MAUI is a name for a new upgraded solution as a Multi-platform App UI framework for building native cross-platform apps with .NET for Android, iOS, macOS, and Windows. It is the evolution of Xamarin.Forms, built on top of it, becoming and being a new flagship .NET solution for building native cross-platform apps.
For me personally it is great that .NET team will be more focused on development of this framework with already great Xamarin.Forms team which made a huge difference and improvement to the platform in the last year or two.
For now, the GitHub repository (July 2020), is pretty much the same as XF one, all the namespaces are System.Maui
, but in future things will be very different. As they promised on keynote and other sources:
It will also provide you support for building the apps in different modern patterns and frameworks such as:
Tools to create and develop apps with .NET MAUI are:
Since .NET Maui will be more involved in whole .NET development tooling, there will be support added for .NET Core CLI. In other words that means we will be able to create a new project from the command line with:
dotnet new maui
Main goals of .NET Maui are:
In last year or two Xamarin.Forms had a very frequent cycle of new releases and that will surely continue. The team will continue to work on it but also side by side .NET Maui will grow more mature and around the release with .NET 6, Xamarin.Forms will stop with features and new stuff.
After .NET Maui is fully available and ready Xamarin.Forms will continue to receive support for 12 months. More about the road map and development state of it can be found on the official GitHub page here and the whole wiki page is full of helpful info about future development.
Also here is a nice Q&A about .NET MAUI with David Ortinau on InfoQ here.
UPDATE: On September 15, 2021:
"The .NET team has been working hard with the community in the open on its development and we are committed to its release. Unfortunately, .NET MAUI will not be ready for production with .NET 6 GA in November. We want to provide the best experience, performance, and quality on day 1 to our users and to do that, we need to slip the schedule. We are now targeting early Q2 of 2022 for .NET MAUI GA." Source: https://devblogs.microsoft.com/dotnet/update-on-dotnet-maui/
Upvotes: 52
Reputation: 89102
MAUI is the next generation of Xamarin Forms with broader platform support. The first preview will be available in .NET 5 in Nov 2020, and the first production release will come with .NET 6 in Nov 2021.
BEFORE
Xamarin Forms will be supported for one year after MAUI is introduced in 2021, then will be deprecated in favor of MAUI.
Upvotes: 5
Reputation: 9990
UPDATE: This is the old answer which was correct at the time. MAUI is now launched. I think that the most notable difference is that MAUI is based on the latest .NET 6.
At this point Xamarin.Forms is a mature framework while MAUI is a blog post. That makes them hard to be objectively compared.
In general the idea for MAUI is to be a further evolution of Xamarin.Forms. Personally I don't see anything revolutionary (and even important) announced. The main difference will be that MAUI will be a single project with multiple outputs instead of multiple projects for each platform. There should be also some improvements in managing common assets as it was usual to place assets in platform projects and not in the common project, but most of that is possible in Xamarin even now so it is hard to say whether it is some kind of improvement or just a marketing trick.
Also support for macOS should go from beta to production. Again it is hard to say whether it will be some significant boost of fairly low quality in beta or just a marketing trick.
Upvotes: 17
Reputation: 4649
Let's start with Architecture and History, which can resolve most of the differences.
Xamarin And MAUI History
What Xamarin can do
Now Come to MAUI
.Net Multi Platform App UI
Similar to Xamarin, MAUI apps are written using XAML and C#.
Use the same code that can be used across the platforms.
In Xamarin, we create separate projects for Andriod or IOS, but in MAUI, you can use the single project structure combined with the shared project.
It is possible to write the Native specific code as well for Andriod or IOS in MAUI even though it has single project structure.
MAUI Architecture and Project Structure: (If Image not loading: use this: https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui)
Xamarin Architecture: (If Image not loading: use this: https://learn.microsoft.com/en-us/xamarin/get-started/what-is-xamarin)
Upvotes: 12