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.
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.
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?
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 !
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.
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!!
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.
<a href="http://acceleration.co.in">Acceleration</a> is a fast growing start-up which is having their ERP Web solutions for Education, Finance & Hospitality domain.
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:
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => AddMessage(str));
await this.Dispatcher.InvokeAsync(() => AddMessage(str), System.Windows.Threading.DispatcherPriority.Normal);
The Code is almost identical, but some little words changed. And that's the reason for a lot extra work.
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.
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.
Nice, a swiss army knife of all software. tick tick tick , that was my brain...
Thomas Steininger commented
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 Lavnikov commented
And don't forget to include Silverlight Desktop runtime in the mix. HTML5 will never be as productive & performant as SL/C#.
Keith Hill commented
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.
I would even say extra specialized focus on Mono to keep it close in line with the .NET team would go a long way for .NET/Mono/C# to become one of the best cross-platform development environments around! :) (it's already there for the most part, but it lags behind in support - i.e. no XAML support, or C++/CLI, etc.)
Failed to include WIndows Phone on the target list. Also target may have been a misleading word to use since the I didn't mean separately targeted frameworks as can be done currently with Visual Studio but instead literally One Framework similar to .NET 4.5 that is transparently implemented on all of those environments by some combination of parsing and translating Xaml, beefing up current frameworks and including extra libraries as needed to provide a single coherent .NET framework to the developer and the tooling handles the details.