2008-09-30 101 views
2

从第一天的.NET框架出来后有一个最小的操作系统支持:的.NET Framework平台支持传统

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

这个最小的操作系统支持可以通过使用框架来忽略平台特定的问题。较旧的平台上忽略较新的功能。例如,ListView控件中的“Tile View”样式或Windows 98/ME上的窗体透明度。

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

微软是否违背了平台支持的传统?

为了公平起见,.NET 2.0已经有支持NTFS安全功能的类,它们在Windows 98/ME上不可用。

回答

1

微软显然正在推动以Vista为中心的开发环境。这不仅仅是因为明显的'我们需要赚钱'的原因,而且还因为Vista是新的API出现的地方。为了公平起见,Windows API一直如此,它可能就像.NET一样。没有像你所描述的那样的“传统”,而是制作可能无效的API的传统告诉你,你在一个不支持它的操作系统中。他们总是尽量向后兼容,不前锋限制,如果你了解:)

3

最低的操作系统支持意味着该产品已在特定平台及以上版本上进行过测试。它并不能保证所有功能(或类似于.Net的开发平台的类/ API)都可以在所有支持的平台上运行。

在Vista中不存在Vista特有的本地API。 .Net 3.5增加了对这些API的托管世界的支持,但它不会尝试为XP上不存在的本地API提供托管实现。

0

平台支持一直随类型而变化。例如,Compact Framework不支持多种类型。

1

我可以告诉你,.NET从未真正在Windows 98或ME上工作过。我记得早在2002年1.0版本是新的时候,一些同事和我发现,除了一些按钮和死锁的简单功能的WinForm以外,任何比Windows 9x都不能运行的任何事情都会失败,尽管微软声称与此相反。鉴于我们进入XP一年,并且我们可以合理地期望Windows 2000至少在我们当时正在处理的机器上,这并不是什么大问题。

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

0

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

0

这里的问题在于,System.Diagnostics.Eventing用于AppFabric(即Windows Azure),因此基本上要打一场艰苦的战斗,让Windows XP与Cloud交谈。