Build .NET Desktop Applications Using HTML, CSS and JavaScript
github.com
github.com
Electron.NET is relatively new and I just yesterday published what I think is the first boilerplate sample for it (using React/Typescript/MobX) [1] (note: my sample app currently looks terrible because there’s exactly zero CSS applied, I was hoping to get some of that added later this week having gotten the functional details working first. The demo in the Electron.NET repo replicates the stock Electron demo, if you’d like to start your explorations with pretty first).
[0] https://github.com/ElectronNET/Electron.NET
[1] https://github.com/yoDon/Electron.NET-React-Typescript-MobX
While I love the concept (and C#/.NET in general), this is yet another performance hit for end users.
For an app I'm working on, I'm exploring the possibility of a shared core in C#, with the UI layer rendered with the web stack on Windows, and with Xamarin.Mac (native binding for .NET) on MacOS.
You’re a couple years behind on cross platform support in dot net and completely missing the cross platform support in Electron/Electron.NET. Zero hoops to jump. Electron.NET apps just work, out of the the box, on macOS and Linux, in addition to on Windows. Today.
Cross Platform? (Closed): https://github.com/NeutroniumCore/Neutronium/issues/14
And it looks like all the examples reference .net 4.5, which isn't .net core: https://github.com/NeutroniumCore/Neutronium/search?p=1&q=NE...
Electron.Net: Build cross platform desktop apps using .NET core and ASP.NET core | https://news.ycombinator.com/item?id=15616638
Why? What's the advantage?
My first thought would be to skip the .NET and just use JavaScript all the way down. Or skip JavaScript and just go .NET all the way down.
Second thought would be to just go typical client-server, which is what I think I'm basically seeing here?
The advantages aren't clear to me.
I will gladly use Win Forms, WPF or UWP over anything resembling Electron.
VCL is also quite good, in spite of how things went for Delphi and C++ Builder.
Nothing prevents you to use WPF/UWP with visual designer and code-behind, just like Forms.
Where WPF/UWL loose in simplicity is when you want to start customizing L&F or use the standard DataGrid.
I'll admit though that the only IDE I've used that I like as much as Delphi 6 is Intellij.
Not at all, WPF is like having a monoid in the category of endofunctors for UI programming.
Its concepts of UI Lego style building blocks, with templates, commands, mvvm, multi-binding, storyboards..., might be hard to grasp if one is happy with plain code-behind snippets, but once one gets it, it is quite powerful way to write large scale UIs.
Takeaway: I will start using WPF right after I get a solid grasp on category theory. That will happen "very soon".
The only reason I stay away is because of the performance issues, and the opaque ways in which performance degrades.
Getting winforms to be pretty is not reasonable. With WPF, you can get the pretty, and then trying to get it to perform reasonably where no browser would break a sweat will drive you to distraction.
And UWP, well don't get me started. Perpetually half-baked, trying hard to push a design system (whatever they're calling metro these days) that isn't popular, isn't thought through, and is so low in information density that I can't even imagine pulling off Spotify with it. And you end up shackled to the Windows Store, the sandbox, and a mobile-style execution lifecycle.
10 years ago everyone was resiting Windows 7, any XP was the best OS on Earth.
Now 10 years later, it is the same song with Windows 10 and Windows 7 as protagonists.
Yes, sometimes the default template is not the best, but with a bit of game development skills it is quite easy to improve it, all the way down to metal.
With the browser one needs to find the magic browser specific CSS properties incantation, with the hope of having a set of divs accelerated by the browser engine, without any control how it actually happens.
Off the shelf, yes. But third party providers like Devexpress and Telerik have stepped into that gap and now produce some very polished component suites that sit on top of Winforms. At a cost, of course, and more geared towards the enterprise market.
I've used component suites like these in new .Net desktop products and without fail they're received well.
The two downsides that stop me using it now are poor high dpi support and lack of decent cross platform support.
https://docs.microsoft.com/en-us/dotnet/framework/winforms/h...
EDIT: Typo
And, unlike something like Electron.NET (which I wouldn't use either, because I'm not scared of TypeScript, but whatever, I get the reasoning), you're bolted to Windows and Windows alone. Maybe you have no MacOS users, but most folks would like to have those users. If only because they tend to spend more money on software.
.NET is one of the technology stacks with better UI designers.
Except for Anvil, there are hardly any Web tools able to compete with what Blend is capable of.
Now that I'm not working in the .NET world anymore, the one thing I really miss is WPF, as soon as I'm touching any html/css. Never had any issue with z-index or something not displaying the same way on another browser because whatever is not supported.
On the other hand of the coin a lot of developers in the frontend and design related space are experienced with HTML, CSS, and some javascript and therefore it gives the same advantage that Blend gave for WPF, it makes it easy for frontend folks make the application look good while the C# folks can make an application function well.
I agree with you, why would you want to go to the land were CSS is awesome (https://ih0.redbubble.net/image.30416963.4324/sticker,375x36...). The only reason I see is that you are already proficient in CSS quirks and special cases, I am not sure that it is a good reason.
I wrote a .Net assembly analyser/visualizer: https://github.com/NeutroniumCore/CodeDependencyScanner based on Neutronium and D3.js, sincerelly writing a similar software shoudld be an herculean task.