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,178 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 →

    469 comments

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

        @Mike-EEE

        Based on mono support for WASM. Would it be correct that there is no xaml GUI in mono?

        Only moonlight that didn't make it to full SL4?

        Why wouldn't the interested people on this forum pick up moonlight for development?

        Surely, it would be relatively easy for third party controls vendors to port controls to moonlight.

        If Moonlight supported SL + .net standard etc. would there be anything superior out there for WASM?

      • Philippe Monteil commented  ·   ·  Flag as inappropriate

        A WASM version of Noesis would be oustanding.
        As far as 3D is concerned, the ability to inject GPU produced surfaces in a UI would be sufficient.
        Also, the licensing page of Noesis mentions an optional access to the source code.

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        @Anonymous, that is sort of the request here. There are all sorts of "here and there" endeavors, especially on the JS/HTML5 front with CSHTML5 and Bridge.NET that do "some" of the things we're looking for here, but not all. Noesis is another example. It's got a lot going for it, but it doesn't offer the 3D component. Additionally, it also suffers from the same problem of UWP and doesn't support Markup Extensions ATM. Which to me you might as well say you support XML, not Xaml. :P

        In any case, we're looking for a comprehensive, authoritative vision and offering from MSFT that says "this is the platform." Once you have that, you'll get vendors such as ComponentOne jumping onboard and contributing their goods.

        We're close. All the pieces are there now that Mono is being ported to WebAssembly. My feeling is that //build2017 is going to be all about .NET Standard 2.0 (the terrain), and then //build2018 will be this new platform (the highways). Then it will all about finding the right API (the cars) to best utilize it.

        BTW, EF Core already works on Xamarin in some capacity: https://xamarinhelp.com/entity-framework-core-xamarin-forms/

      • Anonymous commented  ·   ·  Flag as inappropriate

        @Mike-EEE

        http://www.noesisengine.com/

        Looks very impressive! I think it's more fine for them to charge for the platform especially for LOB projects and games.

        Would be nice perhaps to see a free version for non-commercial use or a license model similar to Xamarin.

        Has anyone converted a WPF, SL project to Neosis who can comment on its viability, releiabiliy and ease of migration?

        Also, I don't see any third party component support from the likes of Telerik, Component One etc.

        Do you know if it'll support things like EF?

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Indeed, @birbilis. Xaml is simply a (powerful) serialization/data format that allows you to expressively describe .NET objects while leveraging key features that vastly improve the developer (read: tooling) experience when compared with other data formats. You can describe anything in it, whether it is UI, your application domain model, or as you point out, 3D objects. If it's a .NET object, you can describe it in Xaml.

        Anyways, on with our regular Friday morning programming here. :)

        ---

        Weekly Friday morning check-in: 90 votes were cast for this idea last week, bringing the total to 45,280 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/835098020643471360

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

      • birbilis commented  ·   ·  Flag as inappropriate

        Btw WPF also had 3D in XAML. It's not impossible to envision 3D scene graphs in XML, see VRML97 format's evolution as X3D for example

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Right Philippe, it doesn't support any 3D, but is a cross-platform vector-based .NET rendering solution, which is still impressive in its own right. You might already know this, but just in case, you can pair Noesis with Unity3D to achieve what you are looking for today. In fact Unity currently runs in the web browser via Flash control, so there's that. I am sure they too will be supporting WebAssembly in the next year or so.

        Unity also now support .NET4.5, which is pretty impressive. The only drawback with Unity is that it is a commercial product like Noesis, but more notably does suffer from very un-.NET design in its integration. For instance you are required to create classes that have convention-based methods. So if you misspell a method name it doesn't work. Additionally you get no intellisense around this sort of design (and impacts discoverability).

        You can find an example of this here (look for the "Start" and "Update" methods):
        https://forum.unity3d.com/threads/step-by-step-tutorial-for-c-net-dll-and-unity3d-pro-only.99427/

      • Philippe Monteil commented  ·   ·  Flag as inappropriate

        <<http://www.noesisengine.com/
        Interesting technology indeed, thanks for the URL, but as you mention, it is closed source:
        such a core technology should be made open source and multiplatform / multilangage.
        Also, it is based on XAML, designed more than 10 years ago. How about
        a graphics / UI engine designed with a more advanced support for 3D, AR/VR, multithreading ...
        in mind, as I tried to explain in a previous message in this thread?

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        @Anony, 100% agree. UWP is a tragic, terrible joke. The lack of adoption is proof of its disaster. The group in charge of it continues to be old skool, terribly managed, and still Windows-centric. It is still mired in closed-source thinking and very few parts of it are on GitHub. The only good use for it is a rendering host for another API such as Avalonia, as you suggest.

        Another good candidate, is Noesis. They are top on my list currently. The owners are very engaging and they care about Xaml, unlike the UWP group:
        http://www.noesisengine.com/

        The downside is that they are commerical/licensed/paid. However, considering options it might be worth the investment.

      • Anony commented  ·   ·  Flag as inappropriate

        Lets see if the below gets a response!

        Microsoft appear to be reverting to building a walled garden around their products and services. They know they have superior tech to build apps, so why allow competitors to take advantage of it? What other reason do they have not to open source Silverlight - .NET core is?

        I understand the $$$ benefits around this strategy. It also hinders good developers from building apps quickly that run cross platform and disrupt their Dynamics/ Office 365 product set - The ASP.NET/ JavaScript mess is just too difficult and costly.

        It seems to me that we're all complaining / hoping for MS to go against the grain and do something innovative and in support of creativity and entrepreneurism. Yes they've done it with .NET Core and SQL Server and started to support cross platform again - so maybe there is some hope.

        I think our best approach as developers is not to buy into their sales pitch to build UWP apps. Instead we should hold our ground and whilst waiting get involved with Avalonia. Imagine what a non-Microsoft cross platform C#/XAML alternative would do to their walled garden strategy.

        Ultimately, it should be their Windows strategy to get as many apps on their app store as possible. It's too late to be an Apple 2.0 especially without a Steve Jobs to help do it. Instead they should try to compete with Google Play and look towards their dwindling die hard developer base to help them do it. So what if you can run a .NET app on droid. It's better this than have a sparse Windows store and a virtually useless Windows 10 cloud offering.

        It's time they pulled their head from the sand and engaged with us via this forum. The lack of any response should tell us all that they are either completely lost or supporting their developers goes against their $$$ strategy.

        I think the 24th should mark the date we all walk away from UWP, stop allowing them to play games with us and start to work on an alternative with Avalonia? I'd be interested in other ideas on none MS alternatives? The last thing they want is a fast cross platform web assembly alternative to their Dynamics, Office 365 and Power BI etc offerings.

        "Innovation distinguishes between a leader and a follower." - Steve Jobs

        "[?]" - Satya Nadella (please fill in the blank space provided)

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Oh heyyyyyyy look at that. One year ago today someone got drunk @ MSFT and accidentally hit the "Under Review" button for this issue. ;) ;) ;)

        @Anonee, forget all those links (although they are very nice, yes), the only one that matters is the one below where Mr. de Icaza confirms that Mono is currently being ported to WASM. Incidentally, this should give provide a tremendous sense of relief to MSFT management as now they can focus their valuable resources on getting .NET working on toasters. Or whatever else they currently feel is more important than a ~3.5 billion device install market. Gotta "brag" about "something" for next year's Connect(); after all.

        @Anonymous: that has nothing to do with this issue. ;) It's actually the antithesis of this concept. But thank you for sharing. :)

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Still blazing along here. We are now over 6k votes and going strong!

        --

        Weekly Friday morning check-in: 136 votes were cast for this idea last week, bringing the total to 45,171 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/832565033859178496

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

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        Digging the conversation here @Anonee, @Anonymous (with a profile picture, LOL), and @Marc. Finding myself nodding. :) Very encouraged about the future here.

      • Anonee commented  ·   ·  Flag as inappropriate

        @anonymous, totally agree with you.

        Microsoft can build a basic (virtual) windows GUI engine, draw every thing from scratch.
        The windows engine is responsible for draw window, button, checkbox, list-box (every windows widgets), Then, consume different operating system (or runtime)'s (such as Android, iOS, Windows legacy, windows 10 (for store app), as well as HTML5 canvas) draw 2D functions, MS can build a common GUI system, that can share everything for different OS/runtime and keep the same look and feel of the UI.
        They have 30+ years experience (since MS-Window 1.0) for build GUI system + message system, this is not difficult for them.

      • Anonymous commented  ·   ·  Flag as inappropriate

        Also, XAML WPF could be published as a WebApp, run on Azure, and render on a HTML5 canvas, and receive input from the canvas.

      • Marc Roussel commented  ·   ·  Flag as inappropriate

        DRAG & DROP yes a must have but is this possible with MVC today ? Will we see a merge of XAML, C#, MVC or we will just see something with again 15 libraries and 6 syntaxes ?
        I'm on the floor. I want to quit as a developer.

      Feedback and Knowledge Base