-4

I am working currently as software engineer in .NET team, taking care of support of already existing application or rewriting them to new base. I currently work with almost everything that has .NET as common denominator, so I sometimes do backend, sometimes frontend (web one; that's important, I will explain later).

When I was recruited to the company I felt that my experience with Xamarin.Forms mattered a lot, as team had issues developing for that platform, and now I am the main guy in rewriting of one of the applications we take care of to Xamarin.

While I enjoy the somewhat chill atmosphere of the tech support role, when tasks are often simple and fixing them gives a lot of opportunity for growth, I am also loving times when I am back onto the mobile/desktop area, developing for less web-based cases. I also like making mobile/desktop UI much better than the web one (HTML and CSS are painful to me), so I feel that I may want to change jobs for the one that focuses on Xamarin.Forms entirely.

BUT

The problem with XF is that it is obscure, obsolete and is going to be replaced soon with not-sure-how-it-will-turn-out .NET MAUI, and a web development related position gives me much more flexibility on future job offerings. At this time job offerings for XF are generous, but this is "we need someone to play with this tech while we still use it, but everybody knows it will die soon, so nobody wants to apply" kind of generous. I know that with the right management in right company I will be able to change area of work, but that is not given and switching to obscure tech may be a dead end.

Can you please give me your opinions on if this is worth a shot?

1
  • Do you have a choice to choose what technologies or applications you can work on at your current company ? Or is it true that only your manager will decide what you work on ? -- If you don't have a choice, and you want to work with a stable technology, then you have to look for a new job. May 15, 2022 at 20:41

2 Answers 2

2

In this particular case, the difference between Xamarin Forms 5 and .NET MAUI is not that big, according to Microsoft:

You don't need to rewrite your Xamarin.Forms apps to move them to .NET Multi-platform App UI (.NET MAUI). However, you will need to make a small amount of code changes to each app.

...

To migrate a Xamarin.Forms app to .NET 6 and update the code to .NET MAUI, you'll need to do the following:

  • Convert the projects from .NET Framework to .NET SDK style.
  • Update namespaces.
  • Update any incompatible NuGet packages.
  • Address any breaking API changes.
  • Run the converted app and verify that it functions correctly.

We use Xamarin Forms and are planning to upgrade to MAUI, and I'm more concerned about the .NET update (Framework → Core/SDK) itself rather than the Xamarin Forms to MAUI transition. If a company the size of Microsoft saying it's their prime focus for mobile development the coming years isn't convincing enough, I don't know what would help ...

Generally speaking, in my country (The Netherlands) the specific technology you're working with doesn't matter that much. I care as much about the mindset (front-end developers have a feeling for user experience which back-end developers often don't have) as the technology experience, especially when comparing two .NET development candidates I'd consider to hire.

0

Main decision is whether to stick with Microsoft/.Net/C#, which is increasingly supported cross-platform, or focus on Web-based technologies, as they spread everywhere. Also keep an eye on Flutter.

  • Obviously web-based standards can’t fail or go away. That is safest bet.

  • Flutter has been gaining popularity. I haven’t used, but may have avoided mistakes in Xamarin/Maui.

  • Personally, I love .Net programming, and hope Microsoft continues to enhance that.

I am concerned that Microsoft seems to be struggling with Maui (cross-platform UI); I think they have not committed enough development money to it.

But the core of .Net, the base libraries, cross-platform, is solid.

Some .Net UI will thrive.
(Maybe Unity, as they spread from gaming to VR/AR).

At worst, use each platform’s UI APIs - "Xamarin.Native" (Xamarin.iOS, Xamarin.Android) has worked very well, for at least nine years now. IMHO, based on personal experience, its one of the most productive ways to develop mobile apps. Because you program in one language, building on .Net base libraries. Just have to program UI twice.

That stable, proven, technology is now ".Net for iOS/Android".
And there are MacOS and Linux versions, though I have not used them.

———————————————

Xamarin.Forms (the OPTIONAL cross-platform UI part of Xamarin), although it improved every year, has fundamental performance issues, and is still too buggy on UWP.

Maui (the OPTIONAL cross-platform UI part of .Net everywhere) made some breaking changes, hopefully fixing the worst performance issues, via tighter integration with native control rendering.

It clearly was released to general availability before ready, but now, a year later, the problems seen in StackOverflow questions are getting narrower. Not as fundamental.

I am hopeful about its future.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .