Windows Runtime,或WinRT,是Windows 8中的一種跨平台應用程式架構。WinRT支援的開發語言套件括C++(一般包括C++/CX)和寄存語言C#和VB.NET,還有JavaScript。WinRT應用程式同時原生支援x86架構和ARM架構,同時為了更好的安全性和穩定性,也支援執行在沙盒環境中。[1][2]
由於依賴於一些增強COM組件,WinRT本質上是一基於COM的API。正因為其COM風格的基礎,WinRT可以像COM那樣輕鬆地實現多種語言程式碼之間的互動聯絡,不過本質上是非寄存的本機API。API的定義儲存在以」.winmd"為字尾的元數據檔案中,格式編碼遵循ECMA 335的定義,和.Net使用的檔案格式一樣,不過稍有改進。[3]使用統一的元數據格式相比於P/Invoke,可以大幅減少WinRT呼叫.NET程式時的開銷,同時擁有更簡單的語法。[4]全新的C++/CX(組件擴充)語言,借用了一些C++/CLI語法,允許授權和使用WinRT組件,但相比傳統的C++下COM編程,對於程式設計師來說,有更少的粘合可見性,同時對於混合類型的限制相比C++/CLI也更少。在新的稱為Windows Runtime C++ Template Library(WRL)的範本類別館的說明下(就好似ATL之於COM一樣)[5],規範的C++程式碼(遵循COM化規範)也同樣可以用在使用了WinRT組件的程式里[6]。不過MSDN建議使用C++/CX而不是WRL。[7]
![]() |
技術
WinRT組件設計時即着眼於多種語言和API直接的互通性,包括本機程式碼、受控代碼還有指令碼。比如C++/CX的組件擴充就被建議僅用於存在API壁壘的狀況,而不要用於其他目的。[8]
WinRT應用程式可以快速部署並執行在沙盒環境中。對執行媒體櫃的測試表明其是構築在Win32 API之上的[9]。.Net使用了類似的實現。
服務
元數據描述了用於WinRT平台的程式碼。定義了一套編程範式來實現編寫可跨程式語言共用的物件導向的程式碼。同時也支援反射等服務。
參考文獻
外部連結
參見
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.