2016-09-07 43 views

回答

1

這就是知道的向前兼容性向後兼容性。在Microsoft Windows中,您可以編寫託管(C#,VB等)和本機(C/C++)代碼(不包括非Microsoft技術(如Java))。本地代碼大多使用本地Windows APIs。如果您使用在較新版本的Windows中引入的API,則您的應用程序將不會是向後兼容,並且不會在較早版本的Windows上運行。請始終檢查所用API的Windows所需最低版本。
我知道沒有解釋爲什麼Windows API可能不是向前兼容。順便說一下,微軟的慣例是,當他們修改API的行爲或接口時,他們保留舊的(可能爲向後兼容性),並添加與舊的名稱相同的新名稱加上Ex擴展。

在託管的世界中,您使用.NET框架。爲了解釋.NET框架版本的兼容性我指的是Microsoft's document

.NET框架支持向前和向後兼容性。 在.NET Framework的上下文中,向後兼容意味着 使用早期版本的.NET 框架創建的應用程序將在更高版本上運行。相反,轉發 兼容性意味着使用.NET Framework的更高版本 創建的應用程序將運行在較早版本上。

.NET框架爲後向 兼容性提供了高度的支持。例如,使用版本 1.0創建的大多數應用程序都將在版本1.1上運行。 .NET Framework還支持向前兼容性。但是,爲了向前兼容,您可能需要修改應用程序以使應用程序按預期運行。對於向後和向前兼容的 ,對有助於提高安全性,正確性或功能的.NET Framework更改也可能引發兼容性問題。

對於.NET框架的每個版本,Microsoft會爲您提供有關可能會破壞應用程序兼容性的更改的指導。我提一些,你可以很容易地找到休息:

+0

艾哈邁德@:感謝您的輸入。 – seccpur

+0

當從16位Windows(即Windows 3.x)遷移到32位Windows(Win9x)時,引入了Windows API的'Ex'版本。這是一次**的一次性交易。這不是一個慣例。通過引入新的參數或版本控制輸入結構,大多數API都以向前兼容的方式進行擴展。但是,您忽略了* API表面,這對於版本控制來說是最靈活的:COM。COM接口一直都在添加,使用COM的代碼既向前又向後兼容。另外,WinRT基於COM。 – IInspectable

+0

@IInspectable你確定它不是一個約定?我們甚至有帶ExEx前綴的API;這在各種書中都有提及。 –

相關問題