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!

11,209 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...
      • Eric Bl commented  ·   ·  Flag as inappropriate

        completely approve the necessity of such an ubiquitous .NET platform.

        We want a .NET Core which really becomes the common core of all .NET variants!

        Main goal is consistency: ensure that the same code will always have the same behavior. The current situation with separate implementations might lead to different behavior of the same shared code…

        MS bought Xamarin in February 2016: what about a real merge on Xamarin and .NET Core? Or better said, where are we in the merge of Mono and .NET Core? Wasn’t it the goal of buying Xamarin? Xamarin is based on Mono, all efforts on mono should be put in .NET Core to gain a better visibility and understanding among the developer.
        Currently (VS2015), one developer targeting a cross platform app should go on Xamarin for iOS and Android, and deal with .NET Core/UWP for Windows 10 (Desktop/Mobile/Xbox). These branches should become one!

        An even bigger merge would be to have the full .NET Framework becoming another layer on top of .NET Core.
        Thus, we could develop our main class library / code logic targeting .NET Core 2.0/3,0 and then, having different project referencing the very same dll: on one side Windows full app (e.g. WPF/ .NET 4.x, cmd line tool, on other side mobile/cross platform dev (iOS/Android/ Windows Mobile if it still goes somewhere…)
        The current situation (VS2015) with “shared project” and maybe precompiler stuff is not that clear to build this kind of multi platform apps (even if quite possible with interfaces and dependency injection).

        (cross comment from the .NET Core Roadmap)
        https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/

      • Anonymous commented  ·   ·  Flag as inappropriate

        Beside code sharing between client/server, HTML/Javascript is also slow and lack of rich designer and components. HTML/Javascript is fine for designers to create a website but not for LOB real applications.

        MSFT should embrace a .NET browser client solution with rich UI designer ( like winforms, WPF, Silverlight, etc had ), controls and allow 3rd party control from telerik,devexpress,etc. And you will see how much adoption you get from net developers versus that UWP fiasco and javascript for UWP that nobody is using, apache cordova integration, and all those things .net developers are not interested in , etc.

        I dont know how MSFT doesnt realize how many developers want the silverlight model back instead of that javascript failure. Just invest in a silverlight model without browser plugin.

      • Anonymous commented  ·   ·  Flag as inappropriate

        Its amazing how MSFT fails to see the need for sharing code between client and server. Javascript creaps into server applications just for this reason.

        .Net Core is a great thing. But if there is no way for easy code sharing with browser clients, iOS and Droid Apps, it will have a hard stand.

      • Anonee commented  ·   ·  Flag as inappropriate

        Why Microsoft not put Silverlight Runtime (or another .Net Rumtime) into the Edge browser at the beginning? if they did, the world may different, we could run UWP applications directly in the browser.

      • Anonee commented  ·   ·  Flag as inappropriate

        +1 @Roger good point!
        Yes, we need single codebase that can run everywhere (or as many as it can).

      • Anonymous commented  ·   ·  Flag as inappropriate

        Microsoft was famous years ago with Visual Basic that allowed any person to create applications very fast. Later winforms, wpf, silverlight etc.. We need same simple and fast approach to create Web UI applications in C# using designer and mark-up for advanced usage.

        My wishlist for creating web applications:
        1) C# Client and server
        2) Excellent UI designer ( layout, docking, click events, drag&drop, 3rd party controls, etc )

      • Roger J. Wilco commented  ·   ·  Flag as inappropriate

        @Hakan, what's the problem? The problem with TypeScript is that it is incompatible with .NET. You basically have to write (and manage/maintain) two different code bases: one in .NET and one in TypeScript (JavaScript). This is very expensive for developers and organizations because they are solving the same sort of problems in both codebases but cannot easily share/leverage the knowledge between the two. With Silverlight you could use the same code between client and server and it saved a lot of time (and money).

      • Håkan commented  ·   ·  Flag as inappropriate

        Just implement SilverLight in TypeScript and it would go a long way. Everything you have is there! HTML canvas, websockets, hardware accelerated graphics. What is the problem? Just do it!

      • Marc Roussel commented  ·   ·  Flag as inappropriate

        Can't wait :)

        1) C# Client and server
        2) UI DESIGNER not just mark-up writing.
        3) Superb BINDING system like Silverlight
        4) A conversion tool for existing Silverlight APP is absolutely necessary (if possible)

        We need to do beautiful interface these days and I find it very hard labor to do interface in Razor
        I'm actually redoing a HUGE Silverlight app and it's painful believe me.

      • Anonymous commented  ·   ·  Flag as inappropriate

        +1 WPF XAML, integrate Xamarin.Forms and UWP and run on WebAssembly! Will be a dream to create web applications UX/UI in .NET again.

        For websites we can use html/bootstrap etc but for large LOB webapps we need .NET back to UI/client side!

      • Anonee commented  ·   ·  Flag as inappropriate

        Windows Phone failed as Satya Nadella admits (http://www.deccanchronicle.com/technology/in-other-news/180616/microsoft-ceo-satya-nadella-admits-windows-phone-a-failure.html ), so *may* ***'s time for MS to do their plan B, create their own Android brand, something like Microsoft Android, the MS android is based on Android open source OS, and has a windows API layer that can run all UWP applications and support download apps from android and windows app stores.

        I know MS is design their Surface Phone, but if they insist target for business users with high price, obviously Surface Phone cannot save windows 10 mobile.
        I'm in China, mainstream Android Devices in price range of 1000-3000 RMB (about 160$ - 500$), and the 160$ phones has very high hardware equipped and can run any business apps, who will buy a 600-900$ surface phone with less apps ready to run?
        The world is change quickly, many people do not use PCs anymore and take a smart phone for daily works instead. If MS lost mobile OS, it will become a new SUN after 10 years.

      • Roger J. Wilco commented  ·   ·  Flag as inappropriate

        +1 @ Anoymous. Xamarin (or rather, Xamarin.Forms) took their best stab at a very complicated problem, but the developer experience is less than ideal. For every new control you create you need to create 3 different renderers for it, which is very labor intensive. Their Xaml system is better than UWP in a lot of ways (markup extensions), but it is closed/internal and not very extensible.

        UWP has a strong modern client application model, but their Xaml system is terrible, really truly terrible. As in they deliberately worked to make it that bad. The ideal would be to take UWP's client model, and give it a good Xaml system (based on WPF's, ideally) and then make it cross platform via the new Xamarin magic.

        Once you get it working on WebAssembly, .NET will be unstoppable!

      • Anonee commented  ·   ·  Flag as inappropriate

        Xamarin's cross platform solution is good, but is far from perfect. There's still a lot of work need to do, I hope MS can integrate Xamarin forms into UWP in the roadmap of .Net Core 2.0, a really UWP that target different OSes much more smoothly with just one project only, and select build to Windows/iOS/Android/Linux as easy as we target different CLR (.net 4.0/.net 4.5) currently, that needs MS to build an universal .Net runtime/API for all the supported OSes.
        So, I believe acquisition Xamarin is not the end, but a new start point.

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        @Gavin, yeah the original ask can be seen as a little ambitious, but we're actually very close to the heart and soul of what this is after. iOS, Droid, and Windows 10 (really the only Windows to consider) are covered now after the Xamarin acquisition. The only platform that needs the MSFT luv is WebAssembly (which pretty much every comment except yours has been asking for. ;)).

        Making sure that it can account for future platforms would be nice, too. Since there are now 3 with Miguel de Icaza saying that WebAssembly should be "simple" to add, this appears to be accounted for:
        https://www.reddit.com/r/programmerchat/comments/4dxpcp/i_am_miguel_de_icaza_i_started_xamarin_mono_gnome/d1v9xyd

        Finally, if you truly feel that MSFT doesn't have "infinite development potential"... maybe you're in the wrong crowd? Perhaps go learn Java or JavaScript, instead? ;) ;) ;)

      • Gavin Williams commented  ·   ·  Flag as inappropriate

        This is way too ambitious, and unnecessary. For instance, Legacy Windows should absolutely not be supported. I don't want Microsoft wasting time and money supporting and integrated current and new technologies into Windows XP/7 etc. Microsoft doesn't have infinite development potential. There's still so much work to do on the platforms they support now. This list is just a ridiculous burden to put on them with very minimal returns.

      • Anonymous commented  ·   ·  Flag as inappropriate

        As many already pointed, having client side web .net code (as silverlight used to do) is much more productive for LOBs project, helping reduce costs and time to prototype and develop. We want to develop UI with a designer like winforms/wpf/silverlight.

        I hope MS can implement next client side "silverlight" technology as webassembly that doesnt require plugins and run on all browsers cross-plat.

      • Anonymous commented  ·   ·  Flag as inappropriate

        Looks like next windows update you will be able to open a UWP app when visiting a website, not many information about how it will work or how will download the app is not installed. It would be great if when visiting the website the app is download if necessary and also if it is hosted in the browser not opened as a different window.

        http://www.winbuzzer.com/2016/05/06/microsoft-readying-apps-website-feature-open-apps-websites-windows-10-xcxwbn/

      • Mike-EEE commented  ·   ·  Flag as inappropriate

        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):
        https://github.com/Perspex/Perspex

      • shimmy commented  ·   ·  Flag as inappropriate

        This is now partially achieved with Microsoft acquisition and open-sourcing of Xamarin. Anyway, Xamarin doesn't provide a solution for web browser yet.

      Feedback and Knowledge Base