Create a Ubiquitous .NET Client Application Development Model
This suggestion is migrated to Developer Community. Please use below link to view the current status.
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!
Roger J. Wilco commented
Yes it is interesting to say the least that this idea was only marked as Under Review without a single comment from our Visual Studio overlords. Did someone accidentally hit the wrong button when they were drunk or something? What say you Visual Studio team? It's been over 6 months now without a peep. Please tell us you are working on something good!
Marc Roussel commented
How long this will stay in UNDER REVIEW state ?
+1 port silverlight to run on webassembly canvas without plugin.
React Native for Web, doing exactly what MSFT should be doing for .NET. :P
Xamarin is a great solution but without Windows 7/8 support it is impossible to accept. This has to be a minor amount of effort to address the legacy platforms!
Chad Pesterwick commented
Over 4,000 votes as of today! Thank you so much to everyone that has supported this.
@Anonymous I was like you and was getting concerned that I haven't heard anything in a while in WebAssembly, so I contacted my Google contact who has been working with this. This is very much in play, and the Git repo is pretty active:
MSFT Edge has already declared support for it so in SOME fashion we should ultimately see SOMETHING... SOMEWHERE. LOL. Of course the end result remains the key here.
It does appear the IL efforts in the Git repo have waned. That doesn't mean that MSFT isn't working on their own efforts. The fact that this vote is Under Review, along with Miguel's Reddit comments below make me cautiously optimistic here.
MSFT makes announcements every November (connect(); ) and Mayish (//build). So I am looking forward this November for the first signs of anything, if anything. :P
is webassemnly a real thing yet? I havent heard any news about it since april.b
Eric Bl commented
completely approve the necessity of such an ubiquitous .NET platform.
We want a .NET Core which really becomes the common core of all .NET variants!
Main goal is consistency: ensure that the same code will always have the same behavior. The current situation with separate implementations might lead to different behavior of the same shared code…
MS bought Xamarin in February 2016: what about a real merge on Xamarin and .NET Core? Or better said, where are we in the merge of Mono and .NET Core? Wasn’t it the goal of buying Xamarin? Xamarin is based on Mono, all efforts on mono should be put in .NET Core to gain a better visibility and understanding among the developer.
Currently (VS2015), one developer targeting a cross platform app should go on Xamarin for iOS and Android, and deal with .NET Core/UWP for Windows 10 (Desktop/Mobile/Xbox). These branches should become one!
An even bigger merge would be to have the full .NET Framework becoming another layer on top of .NET Core.
Thus, we could develop our main class library / code logic targeting .NET Core 2.0/3,0 and then, having different project referencing the very same dll: on one side Windows full app (e.g. WPF/ .NET 4.x, cmd line tool, on other side mobile/cross platform dev (iOS/Android/ Windows Mobile if it still goes somewhere…)
The current situation (VS2015) with “shared project” and maybe precompiler stuff is not that clear to build this kind of multi platform apps (even if quite possible with interfaces and dependency injection).
(cross comment from the .NET Core Roadmap)
.Net Core is a great thing. But if there is no way for easy code sharing with browser clients, iOS and Droid Apps, it will have a hard stand.
Why Microsoft not put Silverlight Runtime (or another .Net Rumtime) into the Edge browser at the beginning? if they did, the world may different, we could run UWP applications directly in the browser.
+1 @Roger good point!
Yes, we need single codebase that can run everywhere (or as many as it can).
Microsoft was famous years ago with Visual Basic that allowed any person to create applications very fast. Later winforms, wpf, silverlight etc.. We need same simple and fast approach to create Web UI applications in C# using designer and mark-up for advanced usage.
My wishlist for creating web applications:
1) C# Client and server
2) Excellent UI designer ( layout, docking, click events, drag&drop, 3rd party controls, etc )
Roger J. Wilco commented
Just implement SilverLight in TypeScript and it would go a long way. Everything you have is there! HTML canvas, websockets, hardware accelerated graphics. What is the problem? Just do it!
Marc Roussel commented
Can't wait :)
1) C# Client and server
2) UI DESIGNER not just mark-up writing.
3) Superb BINDING system like Silverlight
4) A conversion tool for existing Silverlight APP is absolutely necessary (if possible)
We need to do beautiful interface these days and I find it very hard labor to do interface in Razor
I'm actually redoing a HUGE Silverlight app and it's painful believe me.
+1 WPF XAML, integrate Xamarin.Forms and UWP and run on WebAssembly! Will be a dream to create web applications UX/UI in .NET again.
For websites we can use html/bootstrap etc but for large LOB webapps we need .NET back to UI/client side!
Windows Phone failed as Satya Nadella admits (http://www.deccanchronicle.com/technology/in-other-news/180616/microsoft-ceo-satya-nadella-admits-windows-phone-a-failure.html ), so *may* ***'s time for MS to do their plan B, create their own Android brand, something like Microsoft Android, the MS android is based on Android open source OS, and has a windows API layer that can run all UWP applications and support download apps from android and windows app stores.
I know MS is design their Surface Phone, but if they insist target for business users with high price, obviously Surface Phone cannot save windows 10 mobile.
I'm in China, mainstream Android Devices in price range of 1000-3000 RMB (about 160$ - 500$), and the 160$ phones has very high hardware equipped and can run any business apps, who will buy a 600-900$ surface phone with less apps ready to run?
The world is change quickly, many people do not use PCs anymore and take a smart phone for daily works instead. If MS lost mobile OS, it will become a new SUN after 10 years.