简体   繁体   中英

Best approach for cross-platform rich client development

I have many years experience using WPF/C# to develop client and server apps. I'm currently thinking about the best choice of technologies for a rich client app that is capable of fairly dynamic, animating data visualizations; preferably with efficiency measures such as UI virtualization so I can be efficient with memory.

WPF and XAML is great for this sort of work; sadly, in wishing to have a data visualization client run on Android and iOS, as well as Windows, I would rather not have to go through developing clients for each particular platform and so I'm seeking a very good, cross-platform client library with these sorts of capabilities.

There seems to be two main options for this, both with disadvantages:

  • Build a web client. HTML5 I lack experience with, but it seems to lack the richness of WPF and doesn't seem to yet be fully supported. Because of this, it isn't yet a de-facto universal client markup standard. Bog standard HTML 4 and CSS is extremely difficult to produce rich animating UIs with. Happy to be challenged on this opinion if those with experience of HTML5/JS have comments.
  • Use a cross-platform UI library such as Xamarin.Forms - which supports XAML/WPF. The main advantage is I could use the amazing C#/.NET framework with a cross-compatible client - but I'm not sure in choosing this technology that I will be missing out on developments in HTML5, and don't know if the platform has issues or complications.

Macromedia Flash seems to be dying a slow death. Does anyone have any advice, who has created a rich client app that works on Android, Mac and Windows? Was trying to go for a cross-platform solution more trouble than it was worth and is it preferable then to spend time developing the same client views natively on each platform?

Thanks

Here are my two cents - I think you won't find a perfect solution, because there isn't one available yet. You should aim to find the best possible solution while realizing it won't be perfect.

HTML5 based cross platform solutions (PhoneGap is probably the most mature) - if your app is rich with animations and graphics, that's probably not the way to go. On older devices, and also in some of the new ones, the results won't be good (especially on Android devices). I think HTML5 solutions are OK for static apps (static in the visual aspect).

Regarding Xamarin - I'm not very familiar with Xamarin Forms, it seems quite interesting, but I don't think it's mature yet and you should take into consideration that with a relatively new product you will spend a lot of time finding answers for which in Native development you'll find in seconds.

That said, I like Xamarin, as the performance of the apps (at least Xamarin.iOS in which I've developed a few apps) is as good as native. You can consider developing with Xamarin, partially cross platform - in which you create the UI for each platform, and can share the business logic of your app - this way you can probably share 50% precent of the code.

Bonus point also to the fact that you're already ac# developer.

Flash/Flex is actually quite good for apps with animations, so if you're familiar with action script, it's not a bad choice. Though if you plan for the future it's not the best investment, as you probably benefit more from other technologies.

If I needed to make this choice, and you don't want to develop the apps natively, I would go with Xamarin.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM