Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News .NET’s Platform Divergence Problem

.NET’s Platform Divergence Problem

This item in japanese

.NET’s Platform Divergence Problem

For many years the platform dependency issues in .NET we very easy to understand. Almost everything people used was marked as either compatible with .NET Compact Edition or with the full edition. Aside from .NET Micro, which hardly anyone used, there wasn’t much else to worry about. But these days the situation has grown quite complex.

Ignoring version numbers, there are currently 13 platforms that run on some flavor of the CLR. Each of these platforms has varying support for what we tend to think of as the base class libraries. In addition, many have their own core libraries that may or may not be shared with other platforms in the list.

  • .NET
  • .NET Client Profile
  • .NET Compact Edition (apparently deprecated)
  • .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

Compound this with versions within a platform and the CPU-specific builds that COM and p/invoke calls require and you can quickly become stuck in a quagmire of conflicting dependencies.

At almost at the same time Chris Hardy brought up the issue on Using NuPack with MonoDroid along with a matching feature request, Phil Haack was posting his proposal for filtering at the GUI level. With people both inside and outside Microsoft seriously looking at package management, hopefully this will not become an ongoing problem on the dependency front. As for testing across all these platforms, that will still be left to the individual projects.

Rate this Article