Hacker News new | ask | show | jobs
by manilafolder 3159 days ago
Regarding native cross-platform UI frameworks, isn't this what Xwt is supposed to be (https://github.com/mono/xwt)? There's no XAML non-sense and it's an object-oriented approach to building your UI, similar to Windows.Forms.

The primary benefit to it over something browser-based is start-up time. Since it's ultimately using native assemblies and there's no web server that needs to be spun up causing start-time lag.

Is anyone using Xwt? The NuGet packages for it are up-to-date (but don't have very many downloads), and the official forum for it seems very dead.

2 comments

Not XWT, but it's worth checking out Eto.Forms as it's very robust, uses native components, and you can build UIs using straight C#.
I just spent some time working with Eto.Forms (based upon your recommendation, thanks!). It looks pretty nice and seems straight-forward. I also appreciate that it officially supports F# in addition to the regular C# and VB.NET.

Unfortunately, it doesn't support .NET Core/Standard yet. The lead dev, Curtis Wensley (@cwensley), is currently working on supporting it and said that he hopes to have to completed in time for the Eto 2.4 release, per their Gitter chat (https://gitter.im/picoe/Eto?at=59d65ab4177fb9fe7e41ff9e).

Another interesting detail is that Avalonia seems to be using Eto's parser implementation. And Eto is (will?) using AvaloniaUI's (the parent of Avalonia) monomac implementation.

Maybe non-Xamarin-employee interest has declined sine the announcement of Xamarin Forms coming to the desktop?

https://blog.xamarin.com/glimpse-future-xamarin-forms-3-0/ (2017May)

That's good point.

But one big difference between Xwt and Xamarin Forms is that Xwt supports Linux via GTK (GTK1, GTK2 & GTK3) whereas Xamarin Forms does not.

Xamarin Forms also requires different code for different targets, such as:

   // Android
   Forms.Init(this, null);
   var androidFragment = new MyFormsPage().CreateFragment(this);
 
   // iOS
   Forms.Init()
   var iosViewController = new MyFormsPage().CreateViewController();
 
   // UWP
   Forms.Init(e);
   var uwpElement = new MyFormsPage().CreateFrameworkElement();
From the roadmap linked in that blog post:

Xamarin Forms Gtk# Backend - https://github.com/xamarin/Xamarin.Forms/pull/1174

It's all floating out there right now but maybe by end-of-year ("Q4 2017") there will be something solid. This uncertainty promises enough to keep people like me from evaluating alternatives.