代码之家  ›  专栏  ›  技术社区  ›  Michael Damatov

.NET框架平台支持传统

  •  2
  • Michael Damatov  · 技术社区  · 16 年前

    从.NET framework问世的第一天起,就有了最低限度的操作系统支持:

    • .NET 1.0-Windows NT或更高版本(也支持Windows 98/ME)
    • .NET 3.0-Windows XP或更高版本
    • .NET 3.5-Windows XP或更高版本

    这种最低限度的操作系统支持使得只使用框架就可以忽略特定于平台的问题。较新的功能在较旧的平台上被忽略。例如,ListView控件中的“平铺视图”样式或Windows 98/ME上的窗体透明度。

    但是,在System.Core.dll(.NET 3.5的一部分)中,有些类使用新的Vista API,如果在XP机器上使用,则抛出PlatformNotSupportedException。例如,查看新的EventLogReader类(在System.Diagnostics.Eventing.Reader命名空间中)。

    微软是否打破了平台支持的传统?

    公平地说,.NET2.0已经有了支持NTFS安全功能的类,而这些功能在Windows98/ME上是不可用的。

    6 回复  |  直到 11 年前
        1
  •  3
  •   Franci Penov    16 年前

    最低限度的操作系统支持意味着该产品在特定平台及以上进行了测试。它不能保证所有的特性(或者对于像.Net这样的开发平台,类/API)都能在所有支持的平台上工作。

        2
  •  1
  •   dguaraglia    16 年前

    微软显然正在推进以Vista为中心的开发环境。这不仅仅是因为显而易见的“我们需要赚钱”原因,还因为Vista是酷炫的新API萌芽的地方。

    公平地说,Windows API一直都是这样,而.NET可能也会是这样。这里并没有您所描述的“传统”,而是有一种传统,即制作可能不起作用的API,通知您所处的操作系统不支持它。他们总是试图保持沉默 兼容,不兼容 转发

        3
  •  1
  •   Tom Kidd    16 年前

    但基本上,微软忽略使用.NET的旧版本Windows并不是什么新鲜事。至少最近他们抛出了PlatformNotSupportedException异常。

        4
  •  0
  •   Justin R.    16 年前

    平台支撑始终因类型而异。例如,Compact框架不支持许多类型。

        5
  •  0
  •   Mark Allen    16 年前

    我不能说全部,但我知道,例如Vista中的事件日志系统 totally overhauled 与Windows XP中的事件日志系统几乎没有任何相似之处。这可能只是字面上的不相容。

        6
  •  0
  •   Scott    13 年前

    这里的问题是 System.Diagnostics.Eventing 在AppFabric(即Windows Azure)中使用,因此您基本上要打一场让Windows XP与云对话的艰苦战斗。