|
|
|
|
|
by octotoad
4957 days ago
|
|
This got me thinking about the whole Windows ARM port and x86 compatibility. I'm sure it's been mentioned before, but, why the hell didn't Microsoft make use of .NET for cross-platform compatibility? Have developers write applications in C# or any other language supported by the CLR and let .NET work out the x86/ARM differences. I'm sure there are valid technical and possibly political reasons this didn't happen, but I still find it very strange that Microsoft went to the trouble of developing this entire platform/framework/ecosystem just to ignore it when the opportunity arises to actually make good use of it. |
|
But they did. .NET is the platform of choice when it comes to Win8/ARM development. Any standards-compliant .NET code (more on this later) will with very little work build on ARM.
> "Have developers write applications in C# or any other language supported by the CLR and let .NET work out the x86/ARM differences."
This is exactly what's happening, though with a few caveats.
Note that all of this is from about a week of playing with the Win8/Windows Store SDK, so it may not be entirely accurate or complete.
The main problem with developing for the Windows Store (and, consequently, Windows RT) is that it badly fragments .NET. Very basic classes (like System.Collections.Hashtable) are not available for inexplicable reasons, even though they are in full-fledged .NET.
So sure, theoretically if you wrote your app in C# it will still build - unless you were calling parts of the API that are for some unknown reason unavailable in WinRT. Lots of the API has disappeared, and many, many parts of the System namespace have been replaced with equivalent-but-not-quite classes in the Windows namespace. All of this is very confusing and creates a huge fragmentation problem that will make even the most hardcore Android developer blush.
So yeah, conceptually MS is right there with you, but execution-wise that remains to be seen.