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!
Correct, shimmy. All of the "Big Four" are accounted for, with the exception of the Web.
I would also like to share my appreciation for your comment along with Lukas and Alberto's comment. And by appreciation I mean 100% agreement and shared vision. :)
I also have to say I am a bit disappointed in //build and Evolve in that no cross-platform UWP was announced. Xamarin.Forms is a good stab, but has a lot of problems. I guess for the time being the best answer is Perspex, which is very much under development (and does not support web):
This is now partially achieved with Microsoft acquisition and open-sourcing of Xamarin. Anyway, Xamarin doesn't provide a solution for web browser yet.
UWP needs to be added to Xamarin so we can deploy an UWP app with the exact same UI definition to other platforms. Xamarin.Forms is not suited at all for consumer apps. We need a real UWP XAML runtime on Xamarin. Also a WebAssebly version of the UWP runtime should then be made, so we can deploy UWP apps directly to the web as well! This would be pure awesome.
Cross platform for mobile is covered with Xamarin, it just needs to improve and fix bugs and integrate in UWP.
What is needed is running this UWP/XamarinForms in browser without plugins to create LOB web applications that can run everywhere ( from mobile to browser). The HTML/JS model doesnt work for .NET developers, you need to hire different skills in your development group and it makes grow difficult and unproductive.
It is like if you need to hire a sysadmin that is an expert in linux and windows, there are some but they are difficult to find and expensive, usually there are windows professional and linux professional and they just want to stay in their comfort zone and grow in windows or linux.
Same is applied to .NET and HTML/JS, you will find expert in HTML/JS but they will prefer to use NodeJS on backend than learning that MS .NET thing. You will find .NET backend experts but they are not good/productive/passionate about HTML/JS.
At the end you dont have the flexibility to hire just a full stack .NET developer when you grow that can work full stack and move from UI to backend depending on company needs while growing.
As now applications need to be written for all mobiles and WEB, I see this unified application model broken until there is a good solution to develop as web applications that run on browser.
Even if MS just decided to support it for Edge browser it would be great because remember it is mainly for LOB applications, for just a website company content/newspaper/etc HTML/JS is fine. The problem is when you want to create modern apps that run everywhere.
Microsoft is getting more and more open so why not give the flexibility and embed this on Edge to give the choice. You will be endorsing standars HTML/JS as you are doing now but also being flexible and give a choice for developers to use your flagship NET/UWP modern apps platform that you want everyone to use for building windows/mobile apps.
How about creating open source project to create solution to run UWP 10 apps on Android and iOS. Right now I don't know how, something like Xamarin Forms but using UWP UI Layer,
so your UWP app without changes can compile for Android and iOS.
If somebody is already doing it or want to do it, I like to contribute. If not? May be I do some investigation, what it takes, do it. Any suggestions?
Pretty awesome... wonder if this can now be used to integrate WebAssembly somehow?
Another thread asking the same point 5 to run XAML/WPF on browser maybe using WebAssembly: http://forums.dotnetfoundation.org/t/does-compiling-net-code-including-ui-technology-to-webassembly-sound-reasonable/1414
Hope is not so long! silverlight dead 5 years ago, cant wait other 5 years to run "native" applications in the browser again.
I watched Webassembly demo running a game in browser and looks awesome. Hope MS is working in that direction to run UWP/XamarinForms apps in browser.
I think the first step is integrate Xamarin's XamarinForm into .Net Core, make the UWP appliation model really cross-platform ( the so called UAP(universal applicatoin platform)), this may take 1-2 year, then MS need another 2-3 years to make XAML/C# for web (hopefully works on WebAssembly). So, this is a long journey, be patient wating, guys. :-)
.NET developers want to create web applications in .net and design UI using designer drag-and-drop components, dock/stackpanel, grids, click/double-click events like it has being done always for years in visual basic/winforms/wpf/silverlight/blend, etc. Hope one day we get there again for the web with webassembly, wasm, xamarin, xaml, etc
Hope now that MS acquired Xamarin they can apply that techonology for web also, and allow use XAML for web and web deployment.
Nobody is interested in doing Windows Store applications for LOB applications.
Marc Roussel commented
A converter from Silverlight to MVC X is necessary! Whatever the cost because otherwise the cost will go to all those corporations which have lots of Silverlight applications currently running and far too HUGE to convert manually.
Eric Schneider commented
Well, if we just had a true cross platform drawing api, the community could build much of it. I have a whole user interface controls stack built in .net, but can't port it because I can't draw anything.
FWIW, this vote is mentioned in the following article: Azure, Xamarin, and ... a Ubiquitous .NET?
Indeed, Eder! Very VERY happy about that -- to say the least! Cannot thank everyone enough, including the Visual Studio team -- assuming someone didn't hit the wrong button over there or something, ha ha!
FWIW, here is a post I made about this very update here: http://blog.developers.win/2016/02/for-your-review-we-are-under-review/
Totally more than I ever expected when I started this vote 4 months ago and I am forever humbled and honored by all that has transpired since then. FWIW, at *best* I was expecting to reach 1,000 votes after one year, let alone two months. Getting 2,000+ votes after 4 months has just rocked my world! And of course I was expecting like 4 or 5 *YEARS* to get *any* sort of recognition/acknowledgement from MSFT, so that has been wonderful as well.
Granted, it's still just a simple update (without any explanation, no less) but to me that's like getting attention from the hottie in the room ha ha. Like I mentioned in other threads, I feel that question marks are starting to turn into exclamation marks and MSFT really is starting to feel like they are starting to move in the right direction again. :)
hey, have you noticed your idea is marked as "under review".
It's very good to know VS Team is looking carefully at this idea.
Marc Roussel commented
I was wrong about Bridge.NET sorry about that. It's an excellent idea and upon testing it I find it attractive. Should be integrated with MVC
Whoaaaa... thank you @Philippe Monteil for taking the time to elucidate this very new and emerging concept and technology. Outstanding, even! I do indeed think you have identified the preferred pathway here. I have known about WASM for a while now, but now that I have a better understanding of it I will be using it in my messaging going forward.
Let's call it... WASM.NET! :D
This pretty much sums me up right about now:
OK I will now take deep breaths and count to 10. :P
Philippe Monteil commented
@Mike-EEE: as explained here: http://moduscreate.com/webassembly-explained/
While C/C++ is the initial target language for WebAssembly, there is nothing that precludes implementation of virtually any language that compiles into the AST format.
One of the clever things about WebAssembly is that it allows for the late binding (or linking) of several WebAssembly modules once downloaded into the browser. This means there can (and will) be an ecosystem of modules that you can mash together to create applications. The late binding functionality allows a C++ module to link with and call functions in a different C module. Or a C++ module can provide a function that can be called from a Java module (assuming a Java to AST compiler).
Please educate us, good sir. :)