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!

6,524 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 →

    265 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

        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!

      • birbilisbirbilis 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-EEEMike-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 MonteilPhilippe 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-EEEMike-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.

      • AnonyAnony 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-EEEMike-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-EEEMike-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-EEEMike-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.

      • AnoneeAnonee 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.

      • AnonymousAnonymous 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 RousselMarc 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.

      • AnonymousAnonymous commented  ·   ·  Flag as inappropriate

        great to hear mono will support webassembly! So we will see Xamarin.Forms on webassembly? Hope they also create a good drag&drop designer and not just the code previewer they have now.

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

        45k total votes... next stop, 50k. :) We're also a little less than two weeks away from this vote being "Under Review" for an entire year. Whatever that means. :)

        ---

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

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

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

        55 more votes and we'll be at a cool 45k collective votes for this idea. Additionally, this idea in particular is looking to ***** 6k on its own soon.

        ---

        Weekly check-in: 85 votes were cast for this idea last week, bringing the total to 44,945 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/827492561497518080

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

      Feedback and Knowledge Base