ASE Home Page Products Download Purchase Support About ASE
ChartDirector General
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  UNO Platform support
Posted by Ole on Nov-17-2023 12:17
Hi,

We have a WPF application and are planning to move it to the web. The UNO Platform (https://platform.uno/) enables an easy way to port XAML based applications to the web.  We're using chart director and need the same functionality we currently have in WPF on the web with the UNO Platform, which as far as I can see is not supported by chart director, since it ties into WPF.

Are there any plans to support the UNO Platform in the future?

  Re: UNO Platform support
Posted by Peter Kwan on Nov-18-2023 01:12
Hi Ole,

We know that ChartDirector for .NET can be used in a MAUI project to generate and display all chart types. (MAUI is a Microsoft framework similar to UNO.) We simply include the ChartDirector.NET NuGet package in the project (without also including the desktop controls package). ChartDirector can generate charts in standard formats (such as PNG), and then use standard MAUI controls to display the chart.

However, it can only display the charts but there is no user interaction support (track cursor, hot spots, zoom/scroll, etc). Our thinking is that it should be possible to developer a MAUI "ChartViewer" the provides user interaction like the WPFChartViewer but we have not started yet.

For UNO, I will test it to see if ChartDirector can already generate and display charts in UNO and how much effort is required to create a WinUI "ChartViewer" workable in UNO. I will update this thread in a week.

Best Regards
Peter Kwan

  Re: UNO Platform support
Posted by Ole on Nov-21-2023 12:16
Hi Peter,

thanks for looking into this.

  Re: UNO Platform support
Posted by Ole on Dec-04-2023 17:40
Hi,

is there any update on this?

  Re: UNO Platform support
Posted by Peter Kwan on Dec-04-2023 18:23
Hi Ole,

With the existing ChartDirector for .NET, I can use it on UNO to display all charts types tested in a real Android machine using an image control.

However, whenever I display another chart in the same image control, the control will change to blank for a short time before displaying the new chart. So I when keep updating the chart in real-time, it will flicker a lot. The same occurs if we zoom in/out or pan the chart. So far we still have not found a way to work around. I suspect this is the limitation of UNO.

We also try .NET MAUI. We can get flicker free update, and it also has higher performance, in that we can update the chart at a higher rate. However, MAUI has its own issues in handling touch events. When we touch on the image and the moves in random directions (for panning the chart in x and y directions), MAUI will loss track of the touch (it will just stop sending touch events). I suspect this is one of the known MAUI known bugs. In this week, we will try using the latest .NET 8 to see if this problem is solved. If the problem is still there, we may create a test case and report to Microsoft.

We actually have an iOS App in the Apple App Store we written sometime ago to prove to ourselves that ChartDirector can be used for fast real-time charts with zoom/scroll:

https://apps.apple.com/bs/app/fast-ping-with-charts/id1611189717

You can try it if you like. The App is a native iOS App written on Apple XCode.

From our current experience of UNO and MAUI, we feel they still have some bugs and their performance is far from native.

Regards
Peter Kwan

  Re: UNO Platform support
Posted by Ole on Dec-06-2023 12:09
Thanks for the update!

  Re: UNO Platform support
Posted by Peter Kwan on Dec-06-2023 14:20
Hi Ole,

For the MAUI version, we are now able to draw all charts and support drag to scroll on Android with acceptable performance. We are currently implementing pinch to zoom.

According to UNO, they can use MAUI controls too. If we can port ChartDirector to MAUI, may be it can be used in UNO too. (In my UNO project, I found that it imports a lot MAUI packages. I am thinking, may be UNO is a layer on top of MAUI, so it should be able to use MAUI controls quite well.)

Regards
Peter Kwan