Not really a goodbye to Xamarin – One .Net and MAUI
Grand vision
Microsoft had one grand vision to have unified user interface, which is simpler, small, easier, cross platform and open source and .Net core was part of the journey. In all the versions of .Net core so far Microsoft has added more and more API’s into it. But it still had two other beasts to add, they are .Net Framework and Xamarin to really call it a One .Net.
One .Net will be know as .Net 5 for one year with support and then moved to .Net 6 with long term support. One .Net will really be as below:
- One SDK,
- One BCL
- One toolchain
One SDK:
Single SDK really meaning that One .Net will contain all the SDK’s of .Net Framework, .Net Core and Xamarin. Some of them will be available in . Net 5 and most will be available in .Net 6. We can build WinForms, WPF, Mobile (Xamarin), ASP.Net, Console and more using one single installation of .Net. So no more .Net framework or .Net core or Xamarin to install. One single installation will do all. Also, providing the option to selectively installing the required parts of SDK.
One BCL:
With lots of SDK’s comes with lots of base class libraries too. Meaning .Net core have its own BCL and Xamarin have its own BCL, Microsoft wants to unify those BCL’s into one BCL, so no matter what kind of app we are creating using One .Net we will always be using one single BCL. It will help developers to learn once and use it everywhere.
One toolchain
When we open command prompt, we can use same set of commands to run on all types of Apps as they are part of same SDK
Comparing Xamarin and MAUI
As a Xamarin dev I was very confident that it will hang for sometime as it is one of the best ways to build pure native apps for mobiles. But when watching Build2020, my heart sank when I heard about MAUI. I was in great shock and I was mentally preparing myself to start reading whole new .Net to build mobile apps.
Immediately I have downloaded MAUI to start understanding this new thing. After first few minutes scary look at MAUI, then it started look more like Xamarin.Forms repo I had downloaded ages ago. Then fired up Xamarin.Forms repo in visual studio for mac and started to compare Page class in Xamarin.Forms and MAUI, they look exactly same except namespace, then I dig deep into inheriting classes until I reach BindableObject class, they all looked the same. Comparing below screenshots will tells us all, line by line they are all same.
Page class in MAUI
Page class in Xamarin Forms
So we can still reuse our exiting Xamarin skills to continue developing mobile applications as usual with benefit of creating other types of apps using same SDK and knowledge. Cant wait to for preview release in Nov 2020.
Converting Xamarin Apps to MAUI
This is one of the biggest concern, but we don’t have to worry now. As I am sure we can convert Xamarin apps to MAUI apps easily.