Hello! I’ve been programming primarily with js and react since March and recently i’ve been forced to learn the full Microsoft stack for about a year and i stumbled upon the news that Xamarin Forms will be deprecated in Nov 2021 and replaced with .NET MAUI.
I’m still really new to C# (2 weeks in) and i have yet to dip my feet into Xamarin so here are my questions because i’m really confused.
What exactly is the difference between Xamarin and Xamarin Forms?
Is learning Xamarin now useless with .NET MAUI being released and replacing it?
Will the syntax for writing code in .NET MAUI be built on top of the current Xamarin or completely different, rendering all Xamarin knowledge useless?
Lastly, it’s really hard for me to know what to do with a Microsoft Stack since i can’t find as many updated courses or videos related to Blazor, Xamarin, MSSQL as compared to everything surrounding JS. I’m already confused with Microsoft’s naming conventions of .NET, .NET CORE, .NET 5, ASP.NET CORE and i don’t really know how to connect the dots with everything and know what exactly i can do with C# so i’d appreciate some advice here!
Forms is one UI code base for multiple platforms plus 1 code base for the business logic. Xamarin native does not share UI logic
No
No
The terminology you’re using is making it sound like you’re not excited to learn c#. Microsoft has made huge strides over the last decade to integrate with other systems and create an open source platform. .net 5 is a huge step with Microsoft that is consolidating the features of .net core and .net framework as a single supported, os independent framework moving forward.
There’s a very bright future for dotnet and I personally believe there’s not a better time to learn it.
I joined a mostly Microsoft shop a couple of years ago and for some reason I had the impression that .net was a bloated, archaic technology that could only run on Windows machine and was a dead end for the future of my career. I could not have been more wrong.
Welcome to the Microsoft stack! If you spend more than a year here, you’ll get used to Microsoft discontinuing or renaming whatever you’re using on a whim. It doesn’t mean your tech stops working. It means some MS team lead got promoted or quit, and the new team lead thinks it’s easier to get promoted by releasing a new product than maintaining someone else’s project. Google works the same way.
Sorry if my tone comes off as harsh or salty. I’ve answered this question at least once a day for months. It’s not your fault for being confused, it’s Microsoft’s for not promoting loud, clear messaging about what will happen. It’s also indirectly the fault of random internet posters who misunderstand that messaging then dispense it as advice.
Xamarin Forms is not deprecated. Windows Forms, WPF, and UWP are deprecated. But “deprecated” is the wrong word, I can’t think of one that has the right sense. Read on.
“What’s the difference between a toolbox and a hammer?” Xamarin consists of many products: that start with the word Xamarin, for short they are Mac, iOS, Android, and Forms. The ones that aren’t forms are what they sound like: they wrap the native API for one single platform and use whatever GUI tools that platform uses. So the Mac product presents the Cocoa library (among others) and you (usually) use XCode’s Interface Builder to make your GUI with Storyboards and other Mac concepts.
Xamarin Forms is for writing cross-platform mobile applications that work on iOS, Android, and Windows (through UWP). It uses XAML, like WPF, for the UI so you don’t have to use three different tools to create your UI. It presents abstractions for common concepts so you don’t have to use 3 different native libraries to write all of your code.
No. MAUI is Xamarin Forms 6 with a new name because marketing. There are a lot of big changes in 6, but the biggest is Xamarin Forms will finally support Mac. Microsoft first promised this in 2018, and it’s technically available in preview now.
After MAUI releases, MS swears this will be the LAST time (until the next MIX or Build) they tell everyone to stop using other desktop frameworks and move to the new one. MAUI will use UWP to target Windows and the Xamarin products for everthing else. Combined with WinUI 3, another hard-to-define product, MS asserts developers will agree MAUI is the preferred way to write applications and abandon WPF and Windows Forms.
But in 2022 when they announce what replaces MAUI, it will still be useful to know it. Each new framework is secretly just a better version of the last: Silverlight came from WPF, so did Windows Phone. MWAs were built on something similar to Windows Phone. UWP is built on the MWA framework. Xamarin Forms is based on WPF. If you know how to use one, it takes less than a month to figure out how to use another. So if you’re going to write desktop applications in the future, it’s worth learning at least one of these frameworks.
MAUI is Xamarin Forms 6. It’d be silly if they dramatically changed the syntax.
.NET 6 may introduce something that does change things a little, but not in a way that breaks existing knowledge. Currently, all the WPF-likes use a pattern for UI/logic separation called MVVM that works a lot like how frameworks like React work. MVVM sort of requires you to be using a markup language (XAML) and for a framework to have data binding support. .NET 6 will be introducing new stuff to enable a pattern called MVU that is basically the same thing without “you need XAML”. In MVU, you design your UI in C# code.
But you won’t have to start using MVU the moment MAUI releases, nor do you even have to update a Xamarin Forms 5 project to MAUI immediately. There are likely to be bugs in the new bits. Plan to take your time learning what’s new before updating all of your projects.
So nothing’s really “deprecated”. MAUI is just a naming hack for Xamarin Forms 6. Microsoft hopes to convince people to stop writing UWP, WPF, or WinForms apps and instead use MAUI. Under the hood, MAUI will use UWP. I imagine both of the people writing UWP-only apps won’t see a great benefit to updating their project if they don’t need cross-platform support. I don’t think anyone who has a current WinForms or WPF project is going to bother attempting to port. Xamarin people not using Forms also won’t upgrade. Some people don’t like Forms, others don’t care about multi-platform support. People using Forms eventually won’t have a choice (XF versions only support so many versions of XCode or the Android SDK) and for them it’s “just” a version bump from 5 to 6. 5 years from now, people are going to be asking if it’s worth learning MAUI since MAUI 2 is going to have a name like “DeNiM” (for “Do Not MAUI”).
!remindme 1 day