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.
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.
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.
Let's enable developers with the choice to decide what is best for them!
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...
DirectX 12 has been announced for 4Q of 2015.
"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.
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:
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!
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.