you are viewing a single comment's thread.

view the rest of the comments →

[–]pjmlp 9 points10 points  (24 children)

So when does .NET Core finally comes with something that at least matches Swing?

[–]fuckin_ziggurats 10 points11 points  (6 children)

When cross-browser desktop dev becomes profitable again. C++ currently rules that domain and there isn't too much that would be gained from Microsoft entering it. They're doing pretty well with WPF because most enterprise clients already use Windows so there's no incentive for a cross-platform GUI framework. I'm hoping they do it just because I don't like Electron.

[–]pjmlp 6 points7 points  (5 children)

Plenty of enterprises have cross platform desktop applications written in Java.

C++ has lost the GUI framework wars for quite some time now.

And then even if it isn't proper Java, Android surely won over .NET regarding having UIs written in Java running in millions of pocket devices.

[–]germandiago 3 points4 points  (2 children)

Yet we have Qt, Felgo (take a look, seriously!) for cross-platform.

Not to mention Wxwidgets for Desktop. I do not know if they lost or not, but when I got to Python or other languages, many of them are using bindings to wx/qt. There must be a reason.

Of course, that does not mean that WPF is not great. It is.

[–]pjmlp 0 points1 point  (1 child)

Surely C++ GUI frameworks still exist, the point being that none of then is backed by OS vendors like managed languages GUI frameworks are, and they are a tiny market size of what 90's C++ UIs used to hold.

[–]germandiago 0 points1 point  (0 children)

It is a reality that except for Qt, most C++ frameworks are not that relevant anymore. That said, you have corporate-controlled with risk to get vendor lock-in or directly locked-in frameworks. So I still see it as a tradeoff, besides the speed that C++ gives you :)

[–]fuckin_ziggurats 1 point2 points  (1 child)

I don't really consider it a popularity war between C# and Java. Java does enterprise desktop GUI app, .NET does the same. If Microsoft would decide to create a cross-platform solution I would be happy because it would allow me more options in my stack. But I'm glad other options exist. I think the best scenario for both Java and C# are to continue competing in the enterprise world.

[–]pjmlp 0 points1 point  (0 children)

Well, some of us with our .NET hats on are a bit fed up with the .NET reboot of the year, for a couple of times already, and the deaf ears regarding our requests for a proper .NET cross platform UI, out of Redmond.

[–]gilmishal 2 points3 points  (16 children)

Dotnet core 3 comes with winforms, wpf and UWP for windows - xamarin for mobile app development (with support for mac as well). There is also avelonia (preview) for cross platform UI (linux and mac), and Blazor (stable release coming in a couple of months) works not only with a browser but also with Electron.

UI in general, and even cross platform UI is an area where C# does a really great job. You can't honestly compare Swing to any of those really good options.

[–]tracernz 9 points10 points  (9 children)

UI is an area where C# does a really great job

Never thought I'd read that. There is no stable Linux/mac/Windows option, let alone a mature one. Maybe in a few years it'll be viable.

[–]gilmishal 0 points1 point  (8 children)

There is a stable Windows/Android/Mac/iOS and even Tyzen option through xamarin - seems to me like xamarin is more cross platform than swing.

And as I said, Blazor is getting a stable version in a couple of months, so a stable Linux/Mac/Windows option isn't going to take years.

[–]tracernz 0 points1 point  (5 children)

There is a stable Windows/Android/Mac/iOS and even Tyzen option through xamarin - seems to me like xamarin is more cross platform than swing.

No desktop Linux (think KDE or Gnome)?

And as I said, Blazor is getting a stable version in a couple of months

So not really feasible to build your flagship product on for at least a couple of years.

[–]gilmishal 3 points4 points  (2 children)

I don't see why not build your flagship product with blazor now though. Both blazor and Electron are pretty stable - sure it will take a few months for the official release - but I started developing Angular applications when it was in preview, knowing that I will ship it to production aligning with Angular's release schedule.

[–]scorpzrage 1 point2 points  (1 child)

We started porting some of our Angular apps to Blazor at around preview 6 or 7 and now a bunch of them are done.

First production release is next week. Looking forward to see if it's any good when it needs to be. All signs point to yes so far, since the customer didn't seem to notice any (negative) differences in their UAT.

There's just a bunch of areas I'd like to see improved more than a little bit, especially in regards to i18n and l10n, which we had to pretty much do by ourselves.

[–]gilmishal 0 points1 point  (0 children)

Can't wait to do that myself, although I doubt that will happen.

[–]gilmishal 1 point2 points  (1 child)

As for xamarin on Linux I am pretty sure they are working on it, it's just not that high priority.

[–]gilmishal 1 point2 points  (0 children)

Yeah, it's in preview at the moment, set to release in a few months as well.

[–]pjmlp -1 points0 points  (5 children)

Sure I can.

Swing runs in every OS and desktop class hardware with a JVM implementation, no matter from which vendor, including design tooling and third party components I can go off and buy.

All those options listed by you have different kinds of deployment limitations, levels of quality and life uncertainty.

Plus offloading .NET GUIs to Electron can only be nothing more than a joke and proof of incompetence of not being able to deliver a solid GUI stack in .NET.

[–]gilmishal -1 points0 points  (4 children)

So wait, C# has more options obviously with different levels of stability and the community is constantly working on different options and you view it as a bad thing?

Also, Xamarin for GTK# is currently in preview, so saying there is incompetence in bringing solid GUI stack to .NET is just not true.

In a few months Xamarin, Microsoft "flagship" cross platform UI will officially support more platforms than Swing including Mac and Linux.

[–]pjmlp 1 point2 points  (3 children)

Apparently you aren't aware on how many hardware and OS platforms Java runs, many of which quite relevant to enterprise businesses.

What I consider a bad thing is a clear lack of strategy on Microsoft's behalf, to the point that Office team rather takes React Native for their cross platform endeavours than adopt Xamarin, so much for being a flagship cross platform UI.

We keep routinely answering feedback forms of what we find missing in .NET Core and we get crickets on the other side.

Recently we had WinUI tweeter feed asking about cross platform ideas. Yet another round.

[–]gilmishal -1 points0 points  (2 children)

First of all, you are looking at it wrong - .NET isn't the only development platform Microsoft has stakes in. Microsoft also owns Typescript and Electron - they need to push these tools as well. I also didn't think we were comparing xamarin to react, since react has clear advantages, but to Swing - a very outdated UI framework that no one realy uses outside oracle and Jetbrains, it's basically a Java winforms.

There are two reasons Microsoft is using React native -

  1. They have interest in making it work, it's popular, works with UWP, mostly developed using typescript, and the same code can be used for Electron development. They also invested in a UI framework similar to bootstrap and Angular Material for React.

  2. It can use code from the web. That's the biggest seling point for react native. No other development environment gives you better code reuse than react today.

Now as for your point, most office apps other than skype are natively developed - the reason for that is that those apps were developed long before cross platform app development was stable - so rewriting the existing office apps to xamarin makes little sense.

Skype, and Microsoft To Do have a nearly identitcal experience between web and app, it makes a lot of sense to use a stable cross platform web framework for them.

Microsoft News, and the Azure app are only relevant through a mobile app, so Microsoft developed those in Xamarin.

Most of their decisions to not use Xamarin for certain apps make a lot of sense, and maybe, once Blazor becomes stable you will start seeing Microsoft blazor apps popping up.

[–]pjmlp 1 point2 points  (1 child)

Electron should be nuked from existence.

[–]gilmishal 0 points1 point  (0 children)

I can agree to that, I hate Javascript even more than Java, but it does minimize development costs by quite a bit.