可移植类库的苦恼:软件许可限制

  • Jonathan Allen
  • 马德奎

2013 年 7 月 18 日

话题:.NET架构

最近,我们已经多次探讨了微软的可移植类库。许多重要而有趣的库都提供了可移植类库支持,包括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 说,他们的原则是新框架默认是开源的,除非有更好的理由说服他们不这么做。

参考英文原文:Licensing Restrictions Plague the new Portable Class Libraries


感谢杨赛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

.NET架构