.NET 的平台分散问题

  • Jonathan Allen
  • 赵劼

2010 年 10 月 21 日

话题:.NETDevOps语言 & 开发

多年以来,开发人员很容易理解.NET 平台上的依赖问题,几乎每个程序都会标注为.NET 精简版(Compact Edition)或是完整版本。此外,由于很少有人使用.NET Micro,这个问题似乎并不太值得关注,但是如今这方面的问题变得愈发复杂起来。

忽略版本号,目前有如下 13 种“类 CLR”平台,每个平台的基础类库都有不同的支持程度。此外,它们可能还有一些独立的,不与其他平台共享的类库。

  • .NET
  • .NET Client Profile
  • .NET 精简版(显然已和废弃无异)
  • .NET Micro
  • Mono
  • MonoDroid(Private Beta)
  • MonoTouch
  • Silverlight
  • Silverlight for S60(Beta)
  • Silverlight for Windows Mobile 7
  • XNA for Windows
  • XNA for XBox 360
  • XNA for Windows Mobile 7

再结合版本号、CPU 平台、COM 和 P/Invode 调用,您很快就会陷入依赖冲突的泥潭。

Chris Hardy 已经提出了一个在 MonoDroid 上使用 NuPack 的问题以及一个匹配功能请求,几乎同一时刻,Phil Haack 发布了在 GUI 级别上过滤的提案。由于微软内外双方都在密切关注包管理机制,依赖方面的问题可能不会愈演愈烈。不过跨平台的测试问题还是必须由项目本身自行解决了。

查看英文原文:.NET’s Platform Divergence Problem

.NETDevOps语言 & 开发