@码候烧酒 .
至于.NET,和WinRT自然是两回事,也确实不像RT那么从字面上就依赖Windows。但是,.NET的框架部分从实现看很多还是对Windows有强烈依赖的。考虑这个原因,即便是M$开源了能随便抄了,要直接兼容并不容易,不得不像Wine一样实现规模可观的兼容层,并没有多少改进公开API的余地,完整度也很可能有问题。WinForms就不说了,WPF支持现在完善了吗?这些现实问题能随着M$开源而解决?还是说M$会有人手亲自一桶浆糊直接支持非Windows平台?
其实再退一步讲,就算不管M$的技术,市面上的这些解决方案在这里也并不理想,对不同平台需要大量的工作造兼容层的轮子。不过,虽然有新平台了要移植起来也不会好到哪里去,wxWidgets、Qt这类毕竟跨平台支持历史更长,也不依赖Win32风格的现有实现,总体看来难度会小一点。
嘛,C#调用Win32……敢用P/Invoke本身就放弃一部分可移植性了,这个倒不算出格。既然已经这样了,为什么调用Win32这样比WinRT同样依赖系统环境,却可能提供更底层支持的API会很奇怪呢。