2008-09-30 197 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交談。