Replies: 2 comments 2 replies
-
I am also migrating my 10 year old Xamarin Forms app to .Net Maui. It has been about 6 weeks now. I tried different upgrade paths. But what worked for me was 1) Use the upgrade tool to auto upgrade multiple projects 2) Then create a blank Maui Blazor Hybrid project and move components and layers one by one from the upgraded project. Hybrid because Syncfusion RichTextEditor (Maui) needed a WebView. You may want to use the CheckBox and RadioButton controls which are part of Maui. 2 days back even I replaced my custom check box control ( swapping 2 images - checked and unchecked) with the default CheckBox control. Regarding performance, last night I was really angry at Microsoft to the extent that I wanted to convey to them to stop trying their hands on mobile frameworks. They have ruined Xamarin Forms. And they will ruin anything they touch with their current philosophy and current management team. Today, I built my app in release mode and the performance was much better. What took 4-5 seconds in debug mode, took only 1 second in release mode. You may want to check this too. Thanks. Just wanted to share my experience. |
Beta Was this translation helpful? Give feedback.
-
Welcome to Maui land!!!! Things are way better than used to be but
Push notifications forget those using iOS xamarin components Etc... |
Beta Was this translation helpful? Give feedback.
-
There are so many great things about .NET Maui, but the other side of the coin is hidious! I have been converting a xamarin app a piece at a time. I began with the data layer, then the internal services layer, and finally then the display and presentation layer. It seem the deeper I get into the project, things seem to go from bad to worse... and not in a small way.
Case in point. This one specific app is a personal productivity app. I built it with Xamarin about 10 years ago. Through the years, and with each itteration, it has gotten better and more sophisticated, but more importantly, it has allowed me to expand my knowledge and invent a few new things.
Several months ago I decided, after reading that Xamarin was becoming EOL this year, I would deep dive .NET Maui. I've build some small apps with it, but nothing with any substance. I decided to begin the transformation. My first swag was to try the upgrade path... well, that didn't work at all. So, I planned for the conversion. This is not a big app, but many of the features are necessary for anyone I would think... Custom controls, custom styling, API data push/pull. After about 3 weeks of try/fail I have decided to give up. There are just too many obstacles. The two biggest low lights I will list:
Custom controls. I built a very basic "checkbox" like control in xamarin. It works fantastic. It's a simple label encompassed by a frame. When you "tap" on it, it inverts background and text colors. You can set the foreground, background, checkedforeground, checkedbackground, and it handles Command and CommandParameter for MVVM. I have used this on numerous projects for other things. I recreated this control for Maui. and it works fine... as long as it is not embedded in any deep XAML structure. Put it in a stacklayout or flexlayout in Maui within a page or view and it works just fine. Put that same flexlayout in a grid cell and it no longer responds to tap gestures. The only way to make it work is to extremely SIMPLIFY the interface. For this purpose that is a non-starter.
The second thing is performance. One of the features of the app requires me to custom build the entire display based on how you select the option. I have to change layout, show/hide features, etc. The main thing is the custom control can appear perhaps 150 times on a given page. It is created by having lists of strings as options like: -- Select One: A B C D E -- In Xamarin the screen appears instantly. With Maui, it literally takes 5 to 10 seconds to render. Aside from that I have a fully build Xamarin app and it's about 12 MB. The less than complete Maui version is nearly twice that, and it's very slow and sometimes crashes during view rendering.
I could detail this further, but I just wanted to give a heads-up to anyone attempting to do anything more than a monkey app!
Beta Was this translation helpful? Give feedback.
All reactions