I suggest you ...

One .NET Framework for One Microsoft

Proposal is to create a “One Framework” project at Microsoft to encompass both technology development and a consistent message for customer engagement. A developer should be able to fire up Visual Studio and use C# and Xaml to target Windows Desktop, Windows Store Apps, and Xbox One along with a cloud deployed “click once” option to all these targets. There should be clear guidance that all of these will be both supported and enhanced for a long time to come. It would be a nice extra to have a fully supported by Microsoft targeting of C# to Android and IOS for which a Xaml runtime is seriously needed. If there is a battery life and performance issue on small devices by using this sophisticated programming technology then that should become a tooling issue and not a “pull the rug out from under the developer” issue. The .NET framework is at the heart of this and needs to be the driving force since all possible solutions flow upward from a solid cross-platform framework. The PCL effort leads to the LCD which feels like a return to .NET 1.0. Instead each platform needs the full 4.5 framework either native or via extension DLL exported by tooling. Persistent data is vital to any serious application and every target needs a universal System.Data or new cross-platform data core to cover common always offline scenarios along with cached scenarios to Azure etc. It creates a cognitive breach when developing a Windows Store App and a Windows Desktop Application becomes cross-platform programming! “One Framework” would restore the beauty of C# Xaml development for millions of developers and restore confidence in enterprise investment in the Microsoft development stack. The WPF in .NET 4.5 should be harmonized with the WinRT Xaml runtime via either a O/S update or tooling extensions that could create a harmonized virtual “One Framework” layer. The Blend tool needs improved promotion to the developer community and could be extensively enhanced for the One Framework. The Entity Framework could be enhanced with both fundamentals and tooling to support all targets, and also NoSQL and Object Graph serializations as a universal One Framework Data Persistence.Currently disenfranchised Silverlight LOB developers can be given a clear upgrade path to this single One Framework target particularly if tooling for Android and IOS targets are added. The scope implied by this proposal will hopefully not be a deterrent to consideration of the technical enhancements listed here.

1,657 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…)
    DonDon shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    23 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...
      • martinmartin commented  ·   ·  Flag as inappropriate

        Hi don, I agree that html would lead to a bad experience for the user but equally I think a common xaml framework would lead to a bad experience. If cost overrides quality then I go for HTML over xaml as I would also get a website for my money. Besides I feel that the variation of screen size on mobile devices would make it difficult to share the same code across all different screen sizes. Especially for a lob app. I also wonder how much embedding a xaml stack and all of the supporting rendering stack would increase the application size and decrese performance. I can't see apple or Google allowing Microsoft to install a shared os component on their platforms. It might prove very difficult to optimize the performance of a rendering stack that is not a integral part of the operating system. If you know pascal or c++ then I recommend you try embarcadero firemonkey who took the write once run anywhere approach which in my opinion ends up being bad on all devices.

        Having said that it is just my opinion and by the number of votes you have for this you might get lucky. I wouldn't hold my breath thoiugh as this would be a challenge for any company to pull off.

      • DonDon commented  ·   ·  Flag as inappropriate

        martin - One of my ideas behind Cross-Platform XAML is to remove some barriers to universal uptake of .NET technology. If for example you show your enterprise management a prototype LOB App and then show it running right out of the box on everything, the dollar savings and time to market savings will make for an overwhelming case.

        I think it's actually important to have a quick and dirty Bad UI on IOS and ANdroid (for example) just tin order to get the App working. After that, you can provide hooks in the framework to make it as Native feeling as you want, similar to how you move things in and out of the "shared" category in Universal Apps.

        Right now, that idea that XAML prevents Native UI across platforms is blinding everyone to the obvious.

        And for some LOB Apps, a Native UI might not even be needed. In those cases the danger is .NET being discarded for JavaScript and I think that most people would like a Fast and Fluid XAML non-native UI over a clunky "universal" JavaScript UI if given a choice.

        Let's enable developers with the choice to decide what is best for them!

      • martinmartin commented  ·   ·  Flag as inappropriate

        The first part of this (common winrt/phone/xbox) seems to be solved with the latest release of visual studio and with the next addition to win 8 you will get store apps on the desktop (ala modernmix) for win 8 so at least for the latest versions of windows/phone/xbox we will get what I feel we need on those platforms.

        It's a start at least and as programmers I guess we are all used to the idea of ship dates. The last one went well for us so fingers crossed for the dot net v next.

        Here's hoping we get an MS supported C# on iOS and droid that wont cost $2000 dollars a year (Xamarin) on top of VS.

        I am not sure about the idea of xaml support for iOS and droid. If it was a xaml wrapper around the existing iOS/droid user interface objects it would be acceptable - especially with the data binding features but trying to replicate the windows rendering stack on iOS/droid would in my opinion lead to apps that did not feel right on those devices.

        Anyway success for the first part is not a bad thing. Thanks to all involved for their hard work...

      • DonDon commented  ·   ·  Flag as inappropriate

        DirectX 12 has been announced for 4Q of 2015.

        http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx

        and:

        http://www.zdnet.com/microsoft-apps-and-games-with-directx-12-interface-support-due-by-holiday-2015-7000027541/

        "DirectX 12 will be supported across phones, tablets/PCs and Xbox One. The Direct3D 12 piece, which is what Microsoft disclosed today, will be supported in "Holiday 2015 games," meaning games delivered in the Q4 2015 timeframe."

        Missing from all that is any plan to address XNA, or a translation layer for XNA.

        And also missing is IOS and Android.

        If DirectX 12 could have an optional translation layer on OpenGL, then One .NET could use a properly designed DirectX 12 as it's rendering layer.

        Then XAML can be directly targeted to DirectX 12 for a nice performance bump and also a great universal UI for 3D Apps and Games.

        XAML could have reach and impact as a supported UI for DirectX and would permit "native" 3D data visualization Apps etc.

        Another possible part of the One .NET architecture diagram.

      • DonDon commented  ·   ·  Flag as inappropriate

        My update on the Xamarin purchase was deleted here. Now that the news is a bit older, I will try again.

        Some sources for you:

        Zdnet:

        http://www.zdnet.com/is-microsoft-about-to-buy-xamarin-7000027434/

        CRN:

        http://crn.com/news/mobility/300072056/sources-microsoft-in-talks-to-acquire-mobile-app-development-startup-xamarin.htm

        Neowin:

        http://www.neowin.net/news/microsoft-rumored-to-acquire-xamarin-to-help-expand-mobile-development

        Great first step! Now guys, please go buy Unity 3D so you can complete the cross-platform story with 3D. Next you need (and you can do it (and don't overthink it)) a seamless XAML across all the platforms including UI layer for Unity 3D. It is so so vital moving forward for your potential customer to download Visual Studio Express, open a template, hit F5 and it runs Everywhere. Let it get tweaked for native by the developer with various extra libs etc. Microsoft is in a very unique position to turn things around with tech nobody else can match. All you need is vision and unrelenting desire... Please bring One .NET to life!

      • Anonymous commented  ·   ·  Flag as inappropriate

        I think this is a marvelous idea. However, given MS's history of treating developers like garbage "This time is different!" Riiiiight, Lucy.

        MS is a marketing-driven company, not a technology company per se, IMO.

      • DonDon commented  ·   ·  Flag as inappropriate

        There have been comments here and there that claim this proposal is too ambitious. I think it is achievable by addressing 4 technologies: 1. Improved ability to tailor code generation for each target which may be part of Rosyln. 2. assign serious human power to .NET library creation so that each platform can have both platform generic and platform specific support to create a superset layer on top of the base code. 3. Improve MS Build to handle the custom assembly DLL packaging and wrappers for each platform and 4. Generate an adaptive XAML compiler and runtime to support a full common user experience across platforms as a common denominator with extention points for users to add "Native App UI" as they need it. i.e. Fast generation of your starter template app that has a Windows 8 look and feel on Windows, Xbox, Win Phone, Win WPF, Android and IOS just by default. The developer custom tailors it as needed for each platform. Many Enterprise LOB applications will be quite happy to stick with a Windows 8 look on their iPads and this can be sold as the new runs the same everywhere Silverlight replacement. What a great story! Anyone in Microsoft marketing out there want to tell this story?

      • DonDon commented  ·   ·  Flag as inappropriate

        shimmy - I don't think Javascript should be part of the .NET as there is already a good cross-platform story for it and my proposal would be hard enought as it is to implement with just the core .NET languages.

      • Dudica Dudica commented  ·   ·  Flag as inappropriate

        I am disgusted by the banning of Megan Winter's account on social.msdn.microsoft.com. She came with valid points for Visual Basic 6.0, too valid! And what the administrators do on a MICROSOFT site?! they erased the 60-70 valid comments (on "Bring back Visual Basic 6.0 ! We all need it." issue) and banned the acount due to their inability to cope with the conversation! This is a disgrace for Microsoft! The admin that banned a perfect valid user like Megan Winter should not have access to that site !

      • Anonymous commented  ·   ·  Flag as inappropriate

        I'm unsure about windows future; I'm angry about my wasted development time in picking up Silverlight and other technologies that were dropped without any care for the developer user base that was starting to depend on the next technology update cycle. If there is no security in the technology choices that Microsoft make, then other choices are becoming available. Google platforms and Linux variants. Software is a generic skill, and software development tools are all very similar, the attachment to Microsoft based technologies is becoming increasingly tenuous. I'm not sure if Redmond is arrogant or just commercially stupid. Developers are the lifeblood of Microsoft, its a symbiotic relationship, however one partner is ignoring the other.

      • shimmyshimmy commented  ·   ·  Flag as inappropriate

        Well, I don't believe they'll ever do it.
        I think they have to expand it to a HTML5+CSS3+JS generator as well, and implement OOB and clients for Mac, Linux, iOS, Android etc. (i.e. Mono), to make .NET (C#+XAML) the most portable lib in the world, serving web and all other platforms!!

      • SergeySergey commented  ·   ·  Flag as inappropriate

        I want one execution environment which will be available from all the possibilities.
        I especially lacking good graphics .NET, the same quality as the API library designed according BCL.

      • LokiLoki commented  ·   ·  Flag as inappropriate

        One Framework would be really nice.
        Currently I write a program for Windows Store that will have also support for Win7.
        Where I could I used Portable Library, but theses are to limited.
        My complete Code looks like this:
        #if NETFX_CORE

        if (!this.Dispatcher.HasThreadAccess)
        await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => AddMessage(str));
        #else
        if (!this.Dispatcher.CheckAccess())
        await this.Dispatcher.InvokeAsync(() => AddMessage(str), System.Windows.Threading.DispatcherPriority.Normal);
        #endif

        The Code is almost identical, but some little words changed. And that's the reason for a lot extra work.

      • AnonymousAnonymous commented  ·   ·  Flag as inappropriate

        Silverlight had a less than 3 year active development cycle from when the first usable version 2.0 having normal controls, such an edit textbox, until it was retired from forward development.

        The last two positions I've had would only use the core C#, .NET, SQL Server, EF, javascript, css, html and iis. This leads to using the basic subset of EF for fear that it will be stuck in a 'supported but not to be updated ever' mode.

        We've removed dependencies on non-core technologies and third party tools from our 1+ million line application. It's a bit more to develop on, but there is not the 3 to 4 man-months per year wasted on some sub-componment breaking because of an upgrade to VS, .NET, OS, SQL Server, EF.

      • ganimetganimet commented  ·   ·  Flag as inappropriate

        full acknowledge
        i felt this should have been the idea around the whole .net-framework right from the start. only thing i missed 10 years ago on windows CE and lateron windows mobile was full framework support instead of just having a mobile-framework. i understood those limitations in those days as neither memory-space nore speed of the mobile devices around the year 2003 were sufficient to drive a full blown framework. but today this should not be any problem with devices having 32gb and more in a phone (which is more than most pc's had those days). i still cant believe why a windows-tablet or windows-mobile-phone isnt just simply mobile-pc with full framework and desktop support (sure it wont work with precompiled c++-sources, but hey why not think about emulation-sometimes its better to have an application thats slow instead of not having it at all-otherwise javascript could have never made it). if its arm or intel makes no difference as soon as its dot-net as the jit will make it run on anything. its really incomprehendible for me why, instead of just supporting full net-framework and this way make ANY single dot-net program on this globe available on any mobile-device (which must be millions of applications without a single change of code), they rather invent a new crippled framework around RT and lock down all mobile-devices to that ****. one framework to rule them all - the mobile platforms could only win from that decision.

      • Thomas SteiningerThomas Steininger commented  ·   ·  Flag as inappropriate

        I (and our company) fully agree with the main message of this proposal.

        The developer world needs a software development stack that allows to create with one modern programming language (C#,..) apps for all really important plattforms (windows, macos, ios, android).
        Microsoft should here go forward to show us a path to this aim. We really need it - soon.

      • Lex LavnikovLex Lavnikov commented  ·   ·  Flag as inappropriate

        And don't forget to include Silverlight Desktop runtime in the mix. HTML5 will never be as productive & performant as SL/C#.

      • Keith HillKeith Hill commented  ·   ·  Flag as inappropriate

        Just buy Xamarin and make C# & .NET *truly* cross platform. Where I work we will probably have to drop C#/.NET because we need to support Linux and potentially iOS and Android. C#/.NET have all of sudden gone from being this truly productive environment to a hindrance because it's not portable. I love C# and .NET and this is a major bummer for me but the writing is on the wall. I suspect portability is also part of the reason for a resurgence in interest in C++ 11/14.

      ← Previous 1

      Feedback and Knowledge Base