These are chat archives for AvaloniaUI/Avalonia

20th
Jun 2017
hallelujah
Now I can finally use a proper IDE without a windows VM
Int32Overflow
@Int32Overflow
Jun 20 2017 10:02
Can I improve the performance in Avalonia? The startup time is very long on a raspberry pi...
Matthijs ter Woord
@mterwoord
Jun 20 2017 10:05
what .net environment are you using?
mono or net core?
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:07
1) OmniXAML is really slow
There is an ongoing effort of switching to Portable.Xaml
But for now it takes most of the startup time, I'm afraid
AvaloniaUI/Avalonia#916
Int32Overflow
@Int32Overflow
Jun 20 2017 10:11
Oh shit. I'm using Mono. On my Raspberry Pi 2 the application needs 35sec to start
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:13
.NET Core is a bit faster
But the problem is OmniXAML
Int32Overflow
@Int32Overflow
Jun 20 2017 10:14
But for RaPi there is no official .Net Core in the moment
Ok thank you

Can you take a look this issue?

AvaloniaUI/Avalonia#1027

Int32Overflow
@Int32Overflow
Jun 20 2017 10:16
And this?
AvaloniaUI/Avalonia#1028
Last time I tested the RaPi .Net Core port this was very unstable and buggy
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:18
Well, we are calling GdkWindow::Maximize
We probably need to call GtkWindow::Maximize instead...
Int32Overflow
@Int32Overflow
Jun 20 2017 10:21
I do not understand...
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:28
Yeah, gtk_window_maximize saves maximization status even when window isn't shown yet
So we should use it instead
Matthijs ter Woord
@mterwoord
Jun 20 2017 10:43
@Int32Overflow .net core 2.0 preview one is still preview, but it runs my test app in about 30 seconds
i'm expecting big improvements there
hmm, other otions would be a build step which converts the xaml to code initialization....
that is, on a pi3
but once the app runs it feels fast
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:51
omnixaml is the major bottleneck. It uses some slow library that allows you construct parsers using some LINQ-like DSL
Instead of using something proper
like ANTLR
That brings a major overhead
Matthijs ter Woord
@mterwoord
Jun 20 2017 10:52
makes sense.
@kekekeks Can you give any rough guestimation of improvement if the move is done?
Nikita Tsukanov
@kekekeks
Jun 20 2017 10:53
Honestly, no idea
You'd better ask
@donandren
Steven Kirk
@grokys
Jun 20 2017 10:55
tbh i don't think that's the reason for the slowness of OmniXAML - i think it's because it uses yield for almost _everything
which also makes it incredibly hard to debug...
MonkAlex
@MonkAlex
Jun 20 2017 14:38
Any plans to platform specific features? Tray icon, progress in taskbar, etc? Its has some realization on PC, no idea what about android\iOS
Weston
@ronnyek
Jun 20 2017 16:44
I saw mention above about .net core + avalonia I thought... is that something looking fairly feasible in the somewhat near future?
Weston
@ronnyek
Jun 20 2017 16:51
in having dealt with antlr, I feel like antlr adds considerable overhead as well
Nikita Tsukanov
@kekekeks
Jun 20 2017 17:31
@MonkAlex there is no problem with having PC-specific stuff. We don't support Window class on Android/iOS after all
NotifyIcon should be pretty straightforward even with platform differences (there is no right click on taskbar in Ubuntu and OS X, you also have to use platform-specific menus instead of custom-drawn ones, I think)
Progress in taskbar is pretty common across the operating systems, but the problem is that sometimes it's tied to the window and sometimes to application as a whole
And in case of Ubuntu it's really weird
Nikita Tsukanov
@kekekeks
Jun 20 2017 17:36
Also jumplists, taskbar thumbnails, etc
I'm not sure that those can be implemented in xplat way
Nikita Tsukanov
@kekekeks
Jun 20 2017 17:44
BTW, OSX has separate overlays for application and its windows in Dock
@ronnyek regarding .NET Core
Support for running on .NET Core is already shipped in 0.5 release
Window icon loading on win32 is a bit wonky and we can't properly run on Linux ARM devices because of the lack of prebuilt libSkiaSharp.so
But other than that it works fine
MonkAlex
@MonkAlex
Jun 20 2017 18:03
What main class with controls on Android\iOS? I think, its window
Weston
@ronnyek
Jun 20 2017 18:10
is the .netcore stuff build once and deploy in many places?
Johan Larsson
@JohanLarsson
Jun 20 2017 18:21
It is try building for hours, no deploy :)
Matthijs ter Woord
@mterwoord
Jun 20 2017 19:00
@JohanLarsson the avalonia parts worked fine for deploying onto a raspberry...
it was building skiasharp that took me ages
Nikita Tsukanov
@kekekeks
Jun 20 2017 19:33
@MonkAlex for Android/iOS it's AvaloniaView
Which is a native control with Content property
That can host avalonia's controls
We also provide helpers
But it's still embedding to a native view
Since there is no concept of an actual resizable window with decorations and stuff
@ronnyek you need to do dotnet publish -r RUNTIME
Where RUNTIME is win7-x64/win7-x86/osx.10.12-x64/ubuntu.16.04-x64/etc
Johan Larsson
@JohanLarsson
Jun 20 2017 20:28
@mterwoord I meant netcore/~standard~ in general, def not Avalonia.