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!

7,230 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Developers Win!Developers Win! shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    324 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        FWIW, looks like there are bindings for Qt here: https://github.com/ddobrev/QtSharp

        My money is still on Noesis at this point, however. It is based on Xaml and better Xaml than UWP "Xaml." :P

        ---

        Weekly Friday morning check-in: 31 votes were cast for this idea last week, bringing the total to 45,940 combined votes across 10 similar ideas asking for a ubiquitous .NET. Please feel free to like and/or retweet to show your support to the "Big Three" here:
        https://twitter.com/DevelopersWin/status/855414653526167552

        Thank you all who have shown and continue to show your support!

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        @Anonymous, correct the best solution in that regard is http://www.noesisengine.com/

        I've heard Mono/WebAssembly could be as soon as a few months, but I am skeptical. I was also told that this is more for games than for "applications" which is a good starting point (see: Noesis) for my purposes. The concern is that the Mono framework will be a 3-4MB download.

        Which is not as bad as it would have been 5-6 years ago. Doing a quick check, the CSHTML5 control demo is already 2.3MB.

        In any case, if anyone wants more information and wants to further elevate awareness to this, please send a mail to dotnet@microsoft.com and reference this issue. Really from .NET's perspective "no one is talking about WebAssembly" because no one from .NET is reading Visual Studio's UserVoice.

        Not even anyone from Visual Studio is reading Visual Studio's UserVoice. ;)

      • AnonymousAnonymous commented  ·   ·  Flag as inappropriate

        what is the status of mono and webassembly? once is completed is xamarin.forms going to add browser target? what ui components will they use? browser is not like android, ios that have standard controls you can map against. Just running mono on webassembly doesnt solve much without an UI controls/framework.

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        Weekly Friday morning check-in: 39 votes were cast for this idea last week, bringing the total to 45,897 combined votes across 10 similar ideas asking for a ubiquitous .NET. Please feel free to like and/or retweet to show your support to the "Big Three" here:
        https://twitter.com/DevelopersWin/status/852854044855066624

        Thank you all who have shown and continue to show your support!

      • AnoneeAnonee commented  ·   ·  Flag as inappropriate

        And, can you give us a clear answer, MS, even you say "NO", so that we can decide to move to phonegap + innoc/React Native, or stay with C#.

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        @Anonee.... In other words: "Rather than spend time innovating and getting Xamarin to work on the web, we decided to take the easy shortcut and saddle .NET developers with another incompatible codebase for their solutions."

        Truly infuriating. ;)

        Feel free to upvote/add your voice here:
        https://github.com/Microsoft/reactxp/issues/28

      • AnoneeAnonee commented  ·   ·  Flag as inappropriate

        ReactXP is good, that's the js+css cross-platform solution from MS, and so we ask for C# + xaml solution, please, MS.
        Time is urgent, once js+css dominated cross-platform development, there's no opportunity for C#.

      • AnoneeAnonee commented  ·   ·  Flag as inappropriate

        Historically, the UI for each Skype client was written from scratch in the “native” language of each platform (Objective C on iOS, Java on Android, HTML and javascript on the web, etc.). About a year ago, we embarked on an effort to reinvent Skype. We decided that we needed to take a fresh approach to client development - one that would maximize our engineering efficiency and agility. We wanted to move away from implementing each new feature multiple times in different code bases. We wanted to minimize duplication of effort. We explored a number of available options. Web wrappers like Cordova (PhoneGap) didn’t provide the performance or “native feel” we were looking for. Xamarin, which is a great solution for cross-platform mobile development, didn’t help us on the web. We ultimately decided to build our new client on top of React JS and React Native. ReactXP was our attempt to unify the behaviors and interfaces across React JS and the various React Native implementations
        ----------------------------------------------------
        From https://microsoft.github.io/reactxp/blog/

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        MSFT builds a React framework, known as ReactXP. I do not see any .NET integration points, however. Perhaps that is the goal of WebSharp?

        This still does not solve the "web page" problem of being able to build an app in this technology and push it out as a web page that is accessible by URL (that I can see):

        https://microsoft.github.io/reactxp/

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        @birbilis, Sounds like I should take a look at what Electron is, first. ;) And yeah, the whole DOM/W3C makes me weary. I guess if they are exposing the host like they do with iOS and Droid, then that makes sense. I just don't want to be building an app where it renders a certain way for iOS/Droid/Windows and then for the "web" it has to be in an HTML5 page, because, well it's the web, duh. ;)

        That sounds pretty ridiculous until you consider that is exactly the quagmire we find ourselves in now as .NET developers.

        --

        Weekly Friday morning check-in: 40 votes were cast for this idea last week, bringing the total to 45,832 combined votes across 10 similar ideas asking for a ubiquitous .NET. Please feel free to like and/or retweet to show your support to the "Big Three" here:
        https://twitter.com/DevelopersWin/status/850309304406167552

        Thank you all who have shown and continue to show your support!

      • birbilisbirbilis commented  ·   ·  Flag as inappropriate

        Not in a browser process, only in the Electron process, side-by-side with the browser stuff, with two-way communication so that the browser API is exposed to .NET too.

        However they write there that their work on the strongly-typed Typescript-based DOM (W3C) API would be helpful for the work they're doing or planning (no code published yet I guess on that one) on running Mono in the browser via WebAssembly.

        Mostly interesting is that they plan to reuse some code from Moonlight for the Browser API. However, Moonlight was NPAPI-based I think (like Silverlight) and browsers are phasing-off NPAPI plugins in favor of PPAPI etc., so maybe they haven't though of that very well (unless NPAPI has lot of similarity on how it models the browser with PPAPI that is [haven't checked])

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        Indeed, @birbilis, there is a lot to process. It still looks as if it can host in a web page? It does look more geared towards desktop development, which doesn't make sense as it is hosted in a browser? In any case, I plan on checking it out when I get the chance. I have been in contact with Mr. Pouncey there and he says that this should compile PCLs. If that is the case, and it can be hosted in the browser process, that would essentially check off all the necessary boxes to take this to the next step.

        ---

        Weekly Friday morning check-in: 50 votes were cast for this idea last week, bringing the total to 45,777 combined votes across 10 similar ideas asking for a ubiquitous .NET. Please feel free to like and/or retweet to show your support to the "Big Three" here:
        https://twitter.com/DevelopersWin/status/847776712226197504

        Thank you all who have shown and continue to show your support!

      • birbilisbirbilis commented  ·   ·  Flag as inappropriate

        these parts are interesting though:

        "Xamarin.W3C.dll API bindings that will provide access to the browser APIs, built on top of Xamarin.PepperSharp.dll
        System.Windows.Browser this API surfaces the DOM tree to C# as a strongly typed set of objects. An MIT licensed implementation of this is part of Moonlight that could be refactored.
        For the Xamarin.W3C APIs, we intend to use the TypeScript type definitions to generate a strongly typed .NET API."

        "We hope that the Xamarin.W3C API would be used in the future when we compile .NET code to WebAssembly."

      • birbilisbirbilis commented  ·   ·  Flag as inappropriate

        Not exactly, Electron is for desktop apps. This is a plugin for it for binding two-ways to .net

      • AnoneeAnonee commented  ·   ·  Flag as inappropriate

        Personally I loves UWP application model to support Windows store, desktop, iOS, Android more than extent Xamarin Forms to support more targets.

      • Néstor Sánchez A.Néstor Sánchez A. commented  ·   ·  Flag as inappropriate

        I just wanted to suggest a strong support for Web-Assembly, in order to get rid of javascript (with related transpiler techniques) and have it as C# compilation target.

      • Mike-EEEMike-EEE commented  ·   ·  Flag as inappropriate

        Weekly Friday morning check-in: 40 votes were cast for this idea last week, bringing the total to 45,718 combined votes across 10 similar ideas asking for a ubiquitous .NET. Please feel free to like and/or retweet to show your support to the "Big Three" here:
        https://twitter.com/DevelopersWin/status/845239306671308800

        Thank you all who have shown and continue to show your support!

      Feedback and Knowledge Base