Windows Runtime

出自Local Chinese Wikipedia
imported>Evesiesta2022年11月13日 (日) 02:58的修訂 (使用DisamAssist清理消歧义链接:沙盒(链接至沙盒 (软件开发))。)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

頁面Template:Multiple issues/styles.css沒有內容。頁面Module:Message box/mbox.css沒有內容。

頁面Module:Hatnote/styles.css沒有內容。

package.lua第80行Lua錯誤:module 'Module:Lang/data/iana languages' not found,或package.lua第80行Lua錯誤:module 'Module:Lang/data/iana languages' not found,是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平台的代碼。定義了一套編程範式來實現編寫可跨編程語言共享的面向對象的代碼。同時也支持反射等服務。

類型系統[編輯]

WinRT組件[編輯]

編程接口[編輯]

C++(WRL,組件擴展)[編輯]

.NET[編輯]

JavaScript[編輯]

API[編輯]

Windows類[編輯]

命名規範[編輯]

限制與規範[編輯]

參考文獻[編輯]

  1. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  2. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  3. de Icaza, Miguel (2011-09-15). WinRT demystified. Personal blog of Miguel de Icaza, 15 September 2011. Retrieved from http://tirania.org/blog/archive/2011/Sep-15.html頁面存檔備份,存於網際網路檔案館).
  4. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found[永久失效連結]
  5. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  6. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  7. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  8. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found
  9. package.lua第80行Lua錯誤:module 'Module:Citation/CS1/People' not found

外部鏈接[編輯]

參見[編輯]

  • package.lua第80行Lua錯誤:module 'Module:Ilh/data' not found

Template:Microsoft development tools package.lua第80行Lua錯誤:module 'Module:NavboxV2/NavboxContext' not found