I suggest you ...

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:
http://i0.wp.com/blog.developers.win/wp-content/uploads/2015/09/Vision.png

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)
4) Droid
5) iOS
6) Macintosh
7) HTML5
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)
2) HTML5-Compliant - For web-hosted scenarios, via .NET-to-JavaScript transpilation
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:
http://blog.developers.win/series/bridge-to-dotnet-ubiquity/

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!

10,998 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Developers Win! shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    490 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • Marc Roussel commented  ·   ·  Flag as inappropriate

        I just hope we don't have some kind of library needed that resemble C#. We need pure C# both sides client and server. That's all we need and specially a good interface designer.

        That's as simple as that. Nothing more.

        What is interesting is how we, programmers, want to do web application without having all kinds of anonymous objects on client side with no intellisense as it is the case with JavaScript. Developing is so much fun when you have Client-Server understanding each other in the same development environment and same language thus you create your classes on the server side and the client knows about them (PROXY) but please understand that we need to avoid adding a Service Reference and updating it each time when necessary. This was not interesting in Silverlight so to my opinion we need to abstract that work which the futur development environment should do intelligently and silently.

      • Roger J. Wilco commented  ·   ·  Flag as inappropriate

        @Christian, you say this is a confusing request, yet over 5,000 votes seem to understand it well enough. You also immediately say after that it is clear what is needed, so make up your mind! ;)

        Also, food for thought: if WebAssembly is considered HTML5-compliant, then a WebAssembly-based solution or application becomes HTML5-compliant by virtue.

        Otherwise, a MSFT-backed JSIL-type framework would still be perfectly acceptable. A small team out of France has been working on it for a full year now and is constantly making performance improvements. Imagine if a full MSFT division had been working on it since 2011 when Silverlight was put to bed? That's a full five years now, if you aren't keeping track of time:
        http://cshtml5.com
        http://jsil.org

      • Christian Findlay commented  ·   ·  Flag as inappropriate

        And, a reminder is that Silverlight already achieved this goal. So another option would be for Microsoft to simply Open Source Silverlight so that it can be modified to be deployed upon WebAssembly

      • Christian Findlay commented  ·   ·  Flag as inappropriate

        I think that this request is very confusing and needs to be cleaned up. It's clear what is needed. We need a runtime environment, and a Xaml based graphics library that will run on all platforms. That runtime environment is .NET Core. We just need the graphics library now. That library may be Avalonia. As for HTML5 compliancy - that is just a pipe dream that will never come to fruition. A better idea would be to deploy .NET Core apps via the browser using a wrapper for something like WebAssembly.

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Couple of links to note:

        Telerik has created a NativeScript that allows you to code in TypeScript/JavaScript native applications. This essentially makes JavaScript the only language you need to know to create ubiquitous applications, meaning you no longer need to know objective-c, java, or even .NET. :P
        http://searchcloudapplications.techtarget.com/podcast/NativeScript-framework-eases-cross-platform-app-development-woes

        Also, Avalonia seems to be picking up steam. Maybe the answer here is to put official, authoritative support (and resources) from MSFT behind this project, which would include implementing 3D and WebAssembly support? By doing so, you will have effectively created a truly ubiquitous .NET client application development model:
        https://github.com/AvaloniaUI/Avalonia

      • Anonymous commented  ·   ·  Flag as inappropriate

        winforms has the best UI designer, XAML the best UI text markup editing.. could you make a mix of both, simplicity of dragdop winforms and events and powerful editing of XAML for web?

      • Anonymous commented  ·   ·  Flag as inappropriate

        Don't forget all the Winforms program that are out there. So View.Designer.cs to xaml (or similar) will need to be part of this. I wholly support a uniform Microsoft UI that can work across web and any device.

      • Aaron Huang commented  ·   ·  Flag as inappropriate

        The good news is the number of this vote is growing quickly, the bad news is Microsoft did not give any direct answer yet, except mark it as "UNDER REVIEW".

        @shimmy, No, Xamarin is far from perfect, there's a lot of work need to do. At first the Xamarin Forms still has a lot a feature/component/API missing (compared to WPF XAML), Second is the XAMLs for WPF/UWP/Xamarin is not compatible, the UI language is fragmented, I believe what we need is a unique UI framework.

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Hey, would you look at that? This idea is over 5,000 votes as of today. I am personally humbled and amazed to see the success it has received over the past year. Thank you to all who have shown and continue to show their support!

      • shimmy commented  ·   ·  Flag as inappropriate

        Looks like iOS and Android have been targeted by Xamarin which has now been made completely free for the community.
        The real important thing left here is making a .NET client for web, thus having a compiler that emits HTML5+CSS3+JavaScript from XAML+C#.

      • Adam commented  ·   ·  Flag as inappropriate

        I have been chasing the moving target that is the .NET Framework ( and all the parts of the framework ) since that time years ago when I fell in love with C#. The .NET Framework is now so complex that it can't be easily described to someone who has no concept of it already. C#, which was my favorite language for years, has become arguably more complex than Java (this makes it much harder for developers to come to understand and ultimately become able to use the language to solve a problem that they could easily code a solution for in their favorite language, but because C# is so large now, and so complex, it has lost the elegance and simplicity that the C# I learned initially.
        I am all for this proposal. A .NET executable *should* be able to run on any machine for which the framework has been implemented, just like the JVM with Java. .NET should mean write once, compile once, run everywhere, Instead of the cluster duck that is .NET. You need an expert just to make sure that I refer to each part (be it a subset of the .NET framework or a superset (or even some other set)) by the precisely correct name. Most software is low quality, quickly written, and barely adequate as far as functionality and speed. There is a very good reason for this too: It is hard to write good code.
        What we is simply for those who decide they need to invent a new language, runtime, framework, or application software stack that is coded to a contract. Ideally, that contract would be a document generated by the governing standards association, such as IEEE, or an ISO standard document. That way, instead of everybody reinventing the wheel all the time, we could actually use a wheel that we or someone else already created. We could do that with other parts too, and we would know that after assembly was complete that the whole system would work properly. We would know that because each and every piece of software in each and every sub-system or component parts would be written to a standard.

      • Shawn Alexander commented  ·   ·  Flag as inappropriate

        Would you buy a car that had two engines, and each engine had to be taken to a different repair shop for maintenance and repair? That's exactly what MS has done with combining .NET and JS, and requiring JS to create web applications. Truly maddening that they cancel the one technology that would keep a single engine in the car, Silverlight, and then replace it with this two-headed cluster that we have had to endure for over half a decade now.

        This also explains why every shop I know is switching over to NodeJS and getting rid of .NET altogether. NodeJS is a highly functioning, one-engine car and works everywhere. Everyone else is driving around in two-engine cars looking like a bunch of overpaying and clueless idiots, courtesy of MS!

      Feedback and Knowledge Base