Avalonia Alpha 4 – A cross-platform .NET UI framework
grokys.github.io
grokys.github.io
Not to mention the interop with the amazing Windows.UI.Composition API's, which let you do expression animations, Direct2D effects, lighting, parallax, backdrop brushes (e.g., blur the content behind an element), etc.
WPF's version of XAML feels quite dated now.
Also, doing layout on the UI thread is a severe perf limitation that currently affects all versions of XAML. Consider having the UI framework just specify constraints and letting the compositor/render thread compute the absolute positions ;)
It's not x-plat either ;)
Obviously with Avalonia we have a long way to go (hence the Alpha) so we're getting the basics down first.
Layout on the UI thread is definitely a limitation too. I'd be interested to hear ideas as to how it could be done in a threaded manner.
I'd use it as the basis for Avalonia instead of WPF. If only to have x:Bind instead of {Binding}, which thanks to function bindings removes a lot of ViewModel boilerplate.
MS flubbed the launch and followup on Metro so hard (not to mention the shitware on the Store) it's really, really, turned me off from using or playing with it.
https://github.com/Microsoft/RTVS/blob/828b4e3919cbed507a4d0...
Obviously this is still more verbose, because it is a converter on a binding (although it could be shortened further by providing a custom Binding-derived class, I think).
I doubt WPF is going to make a big comeback, though.
Thankfully there are still plenty of use cases not covered by web UIs.
There's very little incentive for them to invest in making a cross-platform Desktop UI, most x-plat UI's suck and requires significant resources and offer little return given the most popular UI's are either Web/Mobile - which they've already got covered.
I'd expect the most likely UI for .NET Core is to host a .NET Core runtime with a cross-platform web-based shell using something like Electron or CEF.
It is a standard .NET base that maps to and updates the ECMA standard in a portable way.
Anything else is supposed to be made available via NuGET packages.
Microsoft acknowledged that using windows as a server is a big handicap for many companies. Making server-side .net components cross platform allows some to use their stack and maybe purchase other products like sql server.
However, the last thing microsoft wants is to make it possible for popular applications and games to run on other OSes. Hey, they need to sell you windows licenses.
How does it compare to Qt, Xamarin an Electron?