Create a Ubiquitous .NET Client Application Development Model
This vote is for developers who wish to see the idea of a ubiquitous .NET client application development model created by Microsoft and the Visual Studio team.
A ubiquitous .NET client application development model is a model that is defined in .NET-based technologies and is able to run in a multitude of runtime environments -- both native-compiled (store-hosted) and web-hosted.
A *very* rough image of the vision can be found here:
The goal is to enable *one* .NET Client Application Project to build deliverables for the following platforms:
1) Windows 10
2) Legacy Windows
3) *nix (Unix/Linux)
8) ??? (Extendible to different, future platforms)
In order to achieve the above, a ubiquitous .NET client application development model should strive to possess the following qualities:
1) Native Cross-Platform Capable - For native-compiled/store-hosted scenarios (iOS/Droid/Windows Store)
3) Consistent User Experience - For brand recognition, reinforcement, and optimal usability across all known scenarios
4) Cross-Boundary Accessibility - For shared code/assemblies between server and client boundaries
5) Xaml-Powered - Harnessing one of the greatest inventions in Microsoft's great history
6) Object Serialization Congruence - Markup used to describe serialized objects is what is created in memory
7) Holistic Development Consistency - The same guidelines and conventions are used in both client and server scenarios
For more information around this idea and the qualities above, a series of articles has been created to discuss the notion of a ubiquitous .NET client application development model at length. You can view that series here:
Finally, this is intended to be a starting point for discussion, and not a final solution. THAT is meant for the experts there at Microsoft. :) Thank you for any support, dialogue, and feedback around this idea!
I appreciate that you appreciate, @Olumide. :D Thank you for that.
Unfortunately, if you are not aware, the Xaml Standard is dead. UWP group simply does not play well with others, or at all for that matter. UWP has hijacked Xaml and for whatever reason someone continues to allow their questionable management maintain power despite the fact that they are the primary reason Windows has lost its relevance during the past 5 years. More "discussion" here: https://github.com/Microsoft/xaml-standard/issues/230
(I denote "discussion" because all of "management" has abstained from any communication with the members they have been delegated to serve. Perfect example of UWP at "work.")
I especially like the "new" XamlDirect "feature", which is basically a wrapper around System.Activator... a nifty class that has been around since v1.0.
Also, I respect and understand what you have to say about the web. It *IS* the common denominator. Taken in the context of a few more years, however, it will be even closer to native technologies than what it is today.
ALSO consider (in my opinion) that "amazing" applications really do not need that much technology to be amazing. I am more of a minimalist in my style, however. I think less is more. If you are looking for super graphics intensive power and/or a game, you are 100% correct. However, for about 95% of LOB's out there (Windows Forms, even), the web currently has you covered.
The issue of course is that it is a total pain to work with, especially when .NET is involved, and that is what we are aiming to fix here.
First off, I appreciate your work here and everywhere, sir.
I checked the link. But no matter how productive and efficient it can be to satisfy the Web by compelling native platforms, a truth is that the front-end Web will keep being the one to slow others down. Against my deepest wishes, I see a future where the front-end Web, albeit advanced enough too, would only keep being a common ground and/or interface between various proprietary and public technologies but where no one will be willing to wait for the front-end Web to match up.
If we examine things critically, so far, the front-end Web has slowed down innovations. With time, other platforms are going to be evolving really faster than the front-end Web can catch up. There are many features on native platforms now that the browser and Operating Systems (OS) built on the front-end Web will not match in a long time, or that it will struggle to match.
Web Assembly will do a lot but it will possibly not catch up with native platforms because of the limitations of the browser, even though it can be made to run elsewhere.
In the end, a way forward I see here is to see the outcome of the XAML standard, and also let Blazor and ASP.NET Core keep doing their thing to satisfy the Web. With Blazor, .NET developers won't need much of all the complicated front-end Web framework fragmentations (i.e. Angular, React, etc.).
We have to let Xamarin.Forms keep trying its best with being cross-platform. And let the precious UWP keep evolving to great extents, even beyond Xamarin, which brings me to why I sometimes think that the XAML standard is not necessary because it's unlike how HTML emulates XML and its predecessor(s) by simply respecting their syntax and stuff but not like the XAML standard is intended to be a word-for-word unification of XAML for both UWP and Xamarin.Forms, which I think is going to hinder the growth and evolution of UWP.
I believe that Microsoft cannot afford to comform their native platforms to the limitations of the Web. It's dangerous for innovation. So, we should try to live with having Blazor & ASP.NET Core, Xamarin.Forms and UWP if we want to give room for great innovations to happen.
Sounds good but its not that simple, all MS controls are inside the OS not in .Net or in Was.
My favorite solution would be to:
1. Have .NET Core 3.0 working in WebAssembly, excluding the subsets that need system services like File IO.
2. Complete open source WPF so that the DirectX layer can be replaced with WebGL or OpenGL equivalents.
Xamarin can be and is already being used for this. Microsoft cannot/will not/should not do this using the main proprietary platforms, e.g. Windows UWP, for example, which is bound to evolve in a direction that other non-Microsoft platform may not.
Xamarin is enough to sacrifice for the cross-platform course.
Xaml sucks, so no.
@Mike-EEE I asked friends and colleagues to vote because of this announcement:
Hope it can bring change.
Suddenly we're only 300 votes away from 10,000... did something happen or something? An event or something? ;)
exactly what standard do you have in mind? please don't tell me Java, we've seen what Google did with Android, they're still fighting on this with Oracle in courts
If you want compatibility, there's .Net for that. Muddling with .NET Core cross-platformness will just taint its reputation. Younger programmer might not know what Microsoft did in 1990s but I remember when they lie to us about "embracing" such standard just to muddle with it later on.
on the contrary, it's very good news: the power of Microsoft was all these years that they'd strive for backwards compatibility and interop with older tech (can still run Win16 in 32-bit Windows for example and would hope they also had it in x64 since there are some nice older 16-bit educational apps that need a VM to run), not ditch a technology for the latest trendy stuff and tell you to write all your stuff from scratch
btw, interesting reading on what happens at the world of trendy that's called web development currently:
I feel pessimistic after their most recent announcement on .NET Core 3 and Support for Windows Desktop Applications. Seems like Microsoft is reverting back to their old embrace-extend-extinguish behavior...
FWIW we're discussing the dumpster fire of Xaml Standard and //build 2018 here (skipping to an interesting post, if I do say so myself):
Worth an investigation: http://platform.uno/
Microsoft, you haven't yet lost the mobile space if you make this happen. You will have a LOT of usage if you created a cross-platform XAML implementation. Developers will pay for it and are asking for it. All you need to do is listen to your customers. As you used to realize, being the middle man is very lucrative. It's also not too difficult either. Just write a rendering backend in OpenGL and call it a day. There are a handful of projects already trying to do this in one form or another. Give Miguel de Icaza a ***** at it if no one else is going to step up to the plate.
Jack Bond commented
Hey Microsoft. It's been three days since your last poll. Quick, do another, maybe this time the top request won't be exactly the same as the last 100 polls.
Whoop Dee Doo. You can now run WPF on top of .netcore, but only on Windows.
The level of incompetence is staggering.
Lots of mention of "ubiquitous" in //build currently, but meaning all the wrong things. ;)
WebAssembly + Xaml is here:
Paul Sinclair commented
A QT like GUI/Form designer for C# please... that can just work on all platforms.
MS used to provide good tooling for windows that all went down hill after windows 8.. time to get back to good tooling no?
With .net core stuff and multi platform support and proper tooling for GUI layouts they could surely do alot better than half dozen JS libraries built on poor foundations.