Microsoft does seem to be trying to bring .NET back, if not into the lime-light at least out of the darkness. A new report on user feedback makes interesting reading and reveals that Microsoft is listening - but only if you are saying what it wants to hear.
All politicians know that you can only get the right answers from the public if you ask the right questions. This also seems to be the sort of line that Microsoft is taking with its user feedback. A recent blog post starts off by explaining that Microsoft is trying to be more open with its .NET ecosystem:
"By openness we don’t just mean open source. We also mean openness in the way we communicate, in the way we release documentation and just in the way that we do business."
Sounds good and the blog then goes on to analyse some of the feedback obtained from User Voice, a site where Visual Studio users can put up ideas and vote for them.
Microsoft has collected over 10,000 votes on "completed items" - which roughly means things that have been implemented recently.
The results are quite interesting:
Notice that 45% of the votes were for cross platform features of one sort or another.
The blog explains that the license restriction on using .NET only on Windows platforms has been lifted - back in November 2013 - and Microsoft is working with Xamarin to "improve cross platform experience". Well this is all good, but it just a start. Most .NET programmers not only want the ability to licence .NET on other platforms, they want tools to do the job and at the moment Xamarin is leading the way on this one - not Microsoft. In fact even bringing this topic up only highlights the simple fact that Microsoft dropped the ball and Xamarin picked it up.
The 27% that wanted a reference source to be made available have had their wish more completely fulfilled in that you can now browse the source in Visual Studio or download it as a zip.
The 20% that wanted SIMD support have mostly had their wishes met in that the new RyuJIT JIT compiler now supports SIMD instructions and there is a class library that you can install using NuGet. The only minor problem is that RyuJIT isn't a finished product and is still only available as a preview.
The final two items are in the minority by quite a margin at 4% each which means around 400 people voted for them.
The first is .NET Native, which probably got its low turnout due to people not really thinking it was a possibility and perhaps something to do with the popularity of Windows Store apps. The .NET Native preview can be used to build native code Windows Store apps for ARM and x64 with x86 for the future.
".NET Native compiles C# to native machine code that performs like C++. You will continue to benefit from the productivity and familiarity of the .NET Framework with the great performance of native code. Popular Windows Store apps start up to 60% faster and use 15-20% less memory when compiled with .NET Native."
The strange part of this story is that you still upload MSIL app packages to the store and these are then compiled for you to native. Is this the cloud compiler Microsoft said they were going to use for all Windows Phone apps when they were changing from WP7 to WP8?
The big downside is that this is just for Windows Store apps - there's no WPF support nor any support for extended .NET class libraries. Why not a native compiler for all .NET applications?
The final item is just called "Portable Class Libraries", but what it turns out to be is portable class libraries for Visual Studio Express. This was made possible as a release candidate at the start of the month, but currently is without support for .NET 4 and Silverlight 5. If they get the bug fixed then Portable Class libraries come to free Microsoft programming.
All of these announcements, or should it be highlighting of announcements, are good news, but you can't help notice the spin. This is the sort of feedback that Microsoft doesn't mind listening to because it takes it in the direction that it was already going.
To see what I am getting at you need to look at the top voted suggestions on UserVoice.
Number One, with close to 16,000 votes, is "bring back XNA" - specifically create an XNA 5.
Next we have "allow .NET games on Xbox One", in third spot, at 9000 votes, is "bring back Silverlight in the form of Silverlight 6". Other notables that Microsoft would like to ignore are a bit further down the list, including DirectX 11 support for WPF at 2700 votes and even open source Silverlight at 1500 votes - which should be compared to the estimated 400 votes for the final two things that Microsoft took notice of.
The message that seems to be coming through loud and clear is that Microsoft wants your opinions - as long as they are roughly aligned with its own.