-1

I want to port my existing WPF application to the Uno Platform for the Linux operating system. What are the step-by-step processes I need to follow for this? Which APIs are incompatible, and how can I resolve these issues? Which parts of the code will be different, and how can I address them? Additionally, how can I compare its performance aspect to others like Avalonia, MAUI, and WinUI? I would appreciate your assistance.

I tried to glanced at uno platform resources about that. But actually, I could not to make a decision where I should start on.

2 Answers2

1

Uno is a trap. It will take just as much effort to convert to Avalonia, which is what you should do if you want it to remain a desktop app. We tried all of them, and Avalonia is that one that truly felt like a spiritual successor to WPF, plus the maintainers are practically non-toxic and willing to help people, which in this day and age of arrogance in FOSS is really truly rare. With the release of v11, the product has really become mature and stable/fast. The styling system is more CSS like, but once you get a hang of it (specially if you use animations), it actually makes more sense than the WPF one.

But the biggest issue you will have is not really the technical complexity of different toolsets, its the lack of 3rd party support. If you use and depend heavily on 3rd party controls like Telerik/Devexpress/Infragistics/etc for WPF, you will be in a pickle no matter which path you choose. There is simply no interest in porting their WPF products to other similar platforms by any of them (at least at the time of writing this, in case they decide to wake up in the future). Even Uno support is very limited and scarce. Its the penalty we accepted by migrating, there are (pretty good) community alternatives for the most critical components but you will have to give up on some visualization depending on the nature of your app.

mmix
  • 6,057
  • 3
  • 39
  • 65
  • Worth mentioning that Avalonia has more built-in controls than WPF (to this day I don't understand why they couldn't just include a numeric spinner rather than forcing everyone to make their own). A lot of the time the things you want from the 3rd party packages in WPF are already there. Though Avalonia is also missing some things WPF does have and you will have to author them yourself, but this is not as many as what it adds. – Tarazed Aug 23 '23 at 18:30
0

The overarching answer is that you should try all possible solutions with a Proof of Concept and see what works the best for you.

The steps to convert a WPF app to Web are outlined here https://platform.uno/docs/articles/wpf-migration.html . While that is not Linux, a good part of that documentation applies - your WPF code will need to be converted to a WinUI (or UWP) one first. After that your application can run on all platforms by using Uno Platform as a 'bridge' technology.

You can see the list of implemented views here https://platform.uno/docs/articles/implemented-views.html#implemented---android--ios-only .

Sasha

sasha_krsmanovic
  • 210
  • 2
  • 10