-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap (0.10) #2239
Comments
HI! I see that it is quite easy to add new runtime engines to your platform. So I wonder if it would be possible / make sense to render AvaloniaUI applications via WebAssembly on a web browser. This way one could develop applications for Desktop, Mobile and Web. :-) |
See #1387 (comment) |
I am new to Avaloniaui, but very excited about possibility to build multi-platform applications with mmore than full power of WPF. My question is when are you moving to .net core 3.1? Currently the application is still using .netstandard2.0 from what I see. I bet a lot of code and dependencies can be removed if .net core 3.1 is utilized. |
An upgrade to .netstandard2.1 will permanently break compatibility with .net framework. I am not sure if that is a good idea before the release of .net 5.0 |
It should be possible to multi-target |
My point of view may not be correct, I just hope to exchange it. First of all, the. Net framework is not worthy of attention in cross platform UI, and the focus should be NETCORE. WPF has met all the needs. If it needs a complete cross platform, it should also turn to NETCORE. It's what Microsoft does now to discard the burden, and Microsoft doesn't insist on all synchronization. In addition, whether there can be related branches to let some people who are good at it complete common controls, such as ribbon, dockpanel or vs common components, especially chart controls. I also agree with developers from companies like devexpress to work together to develop on the basis of avaloniaui, or directly draw on OpenGL and integrate it into avaloniaui. I feel that Microsoft always wants to bind things of windos. Can we open up a forum area in the official (http://avaloniaui.net/docs/) for people to exchange views directly instead of just various issues. |
I absolutely agree - .Net framework is increasingly a thing of the past - and frankly if Avalonia did not support it at all, there would be little detriment. All focus should be on .Net Core moving forward, whether v3.1 or v5.0. If I were using .Net framework, I'd (un)happily go back to my days of WPF. |
AFAIK the targets for netframework are for Xamarin support and not necessarily a support for the legacy .NET framework. When .NET5 drops then we can happily switch to whatever target .NET5 would be. |
So, I don't mean to upgrade to netstandard 2.1, but to NETCORE 3.1 directly |
all of this TFM stuff will be sorted out when .NET 5 is up, so please be patient @jinyuttt :) |
Half a year has passed. When will 1.0 be released? |
We are most likely do the React thing at some point and switch from 0.X.Y numbering to X.Y.Z numbering while keeping the X number. The overall quality of the product was sufficient for "1.0" for quite a while, but there are known areas with inevitable breaking API changes in the future. Changing the major number from zero will require us to implement more strict API review process and keep more obsolete APIs for compatibility, so breaking changes will only occur when absolutely inevitable. All of that requires automatic tooling that I hope to get going in 0.10-0.11 timeframe. |
Any plans for .NET 5 support? |
.NET 5 should work with 0.9 out of the box. Window background blur effect from 0.10 isn't yet supported with .NET 5 on Windows |
I was wondering what the current state is for mobile platforms and when they might be finished? Thanks for the work on avalonia. |
0.11, next year |
@NHodgesVFX there is active work happening on iOS. |
Unfortunately I can't get a project running with dotnet 5.0: What do I have to do to use dotnet 5.0? |
this is fixed on master... you can either use a nightly build i.e. Or simply for now add a package reference to |
May I ask whether Avalonia on iOS will be faster or slower than Xamarin (cold start, page swipe), generally speaking? then Android? |
Hello, I think Avalonia now supports NET 5. |
Yes.
Avalonia is equivalent of WinUI, it's not supposed to support it. Still you can use native controls like WebView2 using NativeControlHost. But it's not cross platform way obviously.
ListBox |
Hey guys! |
CJK text display works if you set an appropriate font, like this:
IME support for X11 is done, macOS and Windows are currently supported without cursor rectangle tracking, proper windows support is being worked on in #6223 For screen reader support progress see #5177 |
@kekekeks can you share which release/timeline is being targeted for X11/Screen Reader support? |
@sid-dahiya we were hoping for the next release, but unfortunately I'm busy with something else until end of year, so we may not make that. |
Could the OP be updated? It seems to be very out of date. It mentions release 0.9 What are the net goals and directions for the project. |
The major milestone is switching to x.0.0 release scheme, which requires a somewhat stable API/ABI. We are quite happy with API stability measures we've taken since 0.9 and our current "backport everything valuable" policy, so the idea is to do the last batch of breaking changes and finally leave that It is important because API/ABI stability greatly affects the ecosystem. If everything has to be recompiled for the new release, it puts a huge burden on 3rd party library maintainers which isn't something that we want. Other major major steps would be WASM support (we are waiting for .NET 6 for this one) and renderer rework (I need to finally recover from post-covid complications), accessibility support and finishing mobile backends but they shouldn't affect API/ABI stability. |
In regards to WASM support, are you guys looking to render to the browser DOM / Canvas API? |
Hey Kieran, as far as I understand, the WASM will be creating the visuals using OpenGL - though I am not sure. Nikita, can you confirm or deny. Will there also be an API for manipulating HTML DOM? |
We are planning to use OpenGLES provided by Canvas with some invisible textbox overlays for text input. It should be possible to export our visual tree to DOM at some point essentially using Avalonia visuals as some kind of virtual DOM, but there are no plans for that yet. |
SkiaSharp works now on WASM using dotnet 6 rc, does it make it easier to take Avalonia to WASM? |
SkiaSharp works on WASM since .Net Core 3.1 We don't have a WASM backend because no one had time to work on the glue code yet. The backend itself will work like any other mobile backend. .Net 5.0 and onwards will make things easier because we can work with function pointers etc. |
Does it mean that we shall be able to embed some Avalonia applets within a web page but in the beginning it will not be able to interact with the rest of the HTML/JavaScript of the page? |
Not through Avalonia APIs. There are existing interop primitives in Mono that could be used for invoking JS and exporting functions to JS. We are also likely to add "native embedding" support just like we have on desktop platforms, so one could have some div synchronized with embedding host, but it will suffer from airspace issues just like on desktop. |
WebAssembly early demo - https://blaze.avaloniaui.net/ It's just something we've scraped together in a day. Keyboard doesn't work yet, everything is redrawn on every frame, stuff crashes sometimes, but it's a good estimate of the expected performance. |
Is this using AOT compilation? Also, does this mean that WASM is now confirmed to be coming in the future or is it still on the table? |
really impressive!!! |
@KieranDevvs |
hi, is the wasm version stable now? |
More or less, yes. You might encounter some problems with shader compilation due to the old Skia version shipped by SkiaSharp, but that doesn't affect most apps |
Hi @kekekeks I found this page by chance, trying to understand where things got to with wasm. Your comment in response to @inaryart sounds positive. Current documentation says
Would you say the documentation is too behind reality now? What would you call its current state? |
If you want to try wasm, use the preview packages. Or even better nightly builds. WASM was improved a lot, but not in current stable release. Stay tuned for 11.0 release 🙂 |
Thanks @timunie , sounds like this is going in the direction I was hoping it would! Do you have any pointers for someone who's trying to wrap their head around how a wasm deployment would work? A sample app, or documentation? I'm especially curious about how jsintrop (briefly mentioned in the documentation I linked above) and calls to rest api endpoints would work. |
Sorry, I only know some basics about WASM. I know that @wieslawsoltes has several apps online. Maybe you can check out his GitHub repos. |
Check out MAUI Blazor in the meantime. That might help you understand certain areas of .NET under WASM until v11 is stable. |
People (including myself) are really looking forward to version 11! |
Is there a rough timeline for when version 11 will be finalized? Not asking because I am impatient but because of Caliburn-Micro/Caliburn.Micro#556 (comment) We'd like to know if we should immediately go for 11 or stick with 10 for the time being. |
My last information is, that the next preview release may be already a RC-version. So I think v11 hopefully drops soon. But there is no guarantee as always in Open Source software. If you feel confident to use it already in production is up to you. ATM I've two branches of my App, so I can already prepare for v11, but still 0.10 is in the released version used. |
Since people are asking where we currently are and what is planned next, here is a somewhat updated roadmap for the immediate future. I hope that here it would be more visible and get updates more often.
Current state
Project is ready for use on Desktop platforms for projects targeting systems with "west-friendly" locales (CJK text input and RTL text aren't supported yet) and people who are able to see (screen readers aren't supported yet either).
For the list of issues to be addressed for mobile platform support see Mobile section below.
0.9 release
1.0 release
We don't want people to get
TypeLoadException
when using 3rd party controls and components, so the main focus there would be ensuring future API/ABI stability.So we will most likely focus on features that would break API compatibility when implementedl. Notable examples are IME support currently planned for 0.9 release and Wayland backend for Linux that will probably require some rework of Popup API.
We'll also need to integrate some API diff to our CI process, something like Mono's API diff tool that generates nice API diffs for PRs
Mobile
For running properly on mobile platforms we still lack several features. They aren't tied to a particular release because of the general lack of manpower. But we are getting there.
General infrastructure:
Missing bits in mobile backends:
WebAssembly
I've spent a weekend tinkering with WASM using Blazor and SVG render target to avoid Skia linking issues. It turned out that while our ControlCatalog being somewhat operational, the current performance of Mono interpreter is way too slow.
It also might be the fault of our layout algorithms or me missing something since the debugging story on WASM is currently non-existant.
You can see the incomplete demo here: http://testapp.keks-n.net/ don't even try to open calendar or datagrid pages, they take ages to load.
So, for now we are waiting for SkiaSharp to be updated to a more-recent release of Skia, our core framework becoming faster and Mono optimizing its interpreter.
Historically writing a new backend for Avalonia has taken a week or two, it was usually the lack of features in the core framework that prevented us from utilizing platform features before.
The text was updated successfully, but these errors were encountered: