最近,我们已经多次探讨了微软的可移植类库。许多重要而有趣的库都提供了可移植类库支持,包括BCL可移植包、Async、流压缩和ZIP归档以及微软HTTP客户端库。最新版的Mono也支持PCL。你也许认为对于跨平台开发人员而言这是个伟大的胜利,但事实并非如此。
这些可以应用于生产环境的库只有Windows平台的许可证。这意味着,你没法基于它们创建自己的可以部署到Android、Linux、iOS和OS X设备上的可移植类库。
Phil Haack认为,对于Windows手机和平板电脑的长远成功而言,C#在iPhone上有一个好的成功案例很重要。
现在,我并不认为我们可以看到一群iOS开发人员突然对C#趋之若鹜,并开始将他们的应用移植到Windows上,但还有下一代。如果Windows 8设备获得足够的市场份额,那么说服下一代开发者使用C#进行iOS应用开发并低成本地移植到Windows将变得更容易。况且,使用C#进行iOS应用开发的工具Xamarin是一个比Objective-C更好的开发环境。我认为,iOS开发人员之所以能够忍受Objective-C,是因为它取得了成功并且是过去唯一的选择。当Xamarin变得更好,我不认为下一代还会容忍Objective-C的笨拙。
在这个问题上,微软很可能会改变策略。随着时间的推移,ASP.NET MVC和MEF库上的许可限制已经解除。不仅如此,有些部门已经走的更远。
在最近一次Outercurve会议上,微软负责Azure平台开发的副总裁Scott Guthrie说,他们的原则是新框架默认是开源的,除非有更好的理由说服他们不这么做。