眼花繚亂中看Metro Style—MS Apps Store—Desktop Apps以及Win-Runtime和Win32
WinRT(Windows Runtime)是微軟新一代在Win8
Metro下開發框架, 它是一套物件導向、跨語言並且是Native的庫。
如果有人問我WinRT的核心技術是什麼? 我的答案是 COM + .Net Metadata + Xaml, 這三者可以說是微軟這些年所有技術的精華。
COM元件技術一直是微軟在使用者態的核心技術之一, 它讓我們可以無縫的以物件導向的方式搭建應用程式,隨著.Net的發展,我們曾經以為它已逐漸過時,但是在WinRT中,我們看到它又回來了。
.Net Metadata是微軟在 .Net繼承過來的, 通過它描述元件的類層次和介面, 實現跨語言的呼叫。
Xaml是微軟從WPF中繼承過來的, 相對於傳統GDI視窗和控制元件, 它的優勢我們就不多說了, 它是微軟下一代介面的表現方式。
對於Win8 Metro應用(現在微軟喜歡把它叫住Windows Store App), 我們一直很好奇Win8的架構, 它與傳統Win32究竟是什麼關係?
對於這個問題, 我們在網上一般會喜歡用這個圖作為答案:
上面的圖給我們的感覺是WinRT完全不同於傳統的Win32應用程式, 是直接基於Windows核心的,它和Win32 API是並列的2套開發框架。
或許是微軟試圖這樣設計, 所以給了我們這樣一張架構圖, 但是後來我們逐漸發現, 實際情況卻是這樣的:
WinRT不是直接基於Windows核心, 而是直接搭建在Win32上的一個系統級應用, WinRT的下層還是Win32 API。
通過工具, 我們可以看到傳統的Desktop Application和WinRT App是執行在同一個Session, 同一個Window Station,同一Desktop的, 微軟只是在它們之間的切換作了些限制。
另外,微軟通過新增加一些API(比如NtCreateLowBoxToken)讓Metro App以很低許可權執行在Sandbox(App Container)中, 對於和許可權相關的API呼叫,它會通過一個Broker來執行。
總之, 一開始我們會覺得WinRT很好奇, 但是後來我們逐步發現它其實並沒有那麼神祕, 它是很多微軟現有技術的合成體。 微軟的技術更新很多時候讓人眼花潦亂。
如果有人問我WinRT的核心技術是什麼? 我的答案是 COM + .Net Metadata + Xaml, 這三者可以說是微軟這些年所有技術的精華。
COM元件技術一直是微軟在使用者態的核心技術之一, 它讓我們可以無縫的以物件導向的方式搭建應用程式,隨著.Net的發展,我們曾經以為它已逐漸過時,但是在WinRT中,我們看到它又回來了。
.Net Metadata是微軟在 .Net繼承過來的, 通過它描述元件的類層次和介面, 實現跨語言的呼叫。
Xaml是微軟從WPF中繼承過來的, 相對於傳統GDI視窗和控制元件, 它的優勢我們就不多說了, 它是微軟下一代介面的表現方式。
對於Win8 Metro應用(現在微軟喜歡把它叫住Windows Store App), 我們一直很好奇Win8的架構, 它與傳統Win32究竟是什麼關係?
對於這個問題, 我們在網上一般會喜歡用這個圖作為答案:
上面的圖給我們的感覺是WinRT完全不同於傳統的Win32應用程式, 是直接基於Windows核心的,它和Win32 API是並列的2套開發框架。
或許是微軟試圖這樣設計, 所以給了我們這樣一張架構圖, 但是後來我們逐漸發現, 實際情況卻是這樣的:
WinRT不是直接基於Windows核心, 而是直接搭建在Win32上的一個系統級應用, WinRT的下層還是Win32 API。
通過工具, 我們可以看到傳統的Desktop Application和WinRT App是執行在同一個Session, 同一個Window Station,同一Desktop的, 微軟只是在它們之間的切換作了些限制。
另外,微軟通過新增加一些API(比如NtCreateLowBoxToken)讓Metro App以很低許可權執行在Sandbox(App Container)中, 對於和許可權相關的API呼叫,它會通過一個Broker來執行。
總之, 一開始我們會覺得WinRT很好奇, 但是後來我們逐步發現它其實並沒有那麼神祕, 它是很多微軟現有技術的合成體。 微軟的技術更新很多時候讓人眼花潦亂。
但是底層本質的東西(比如COM,D3D,Win32)其實一直很少改變。
http://www.silverlightchina.net/html/windows8/study/2013/0113/21392.html
=============================
個人覺得微軟WinRT就是減小開發應用的成本和時間,同時為應用能跨PC、手機和平板做好準備。
=============================
相關文章
- Spring中眼花繚亂的BeanDefinitionSpringBean
- thinkphp學習筆記4—眼花繚亂的配置PHP筆記
- Programming Windows Store Apps with C#WindowsAPPC#
- 電商平臺會員制眼花繚亂 到底選哪個才划算?LF
- win8系統電腦開啟Metro APPs的步驟【圖文】APP
- Android TV-Building TV Apps,Get Started with TV AppsAndroidUIAPP
- 網路優化與加速方案眼花繚亂企業該如何選擇最適合的那一個?優化
- android TV-Making TV Apps Searchable,Searching within TV AppsAndroidAPP
- OEM in Apps 11.5.10.2APP
- Why mobile web apps are slowWebAPP
- Create apps with Ribbon UIAPPUI
- 【原創】.NET Core應用型別(Portable apps & Self-contained apps)型別APPAI
- [譯] Performance testing of Flutter appsORMFlutterAPP
- Testing Flutter apps翻譯FlutterAPP
- 什麼是 Immutable Web AppsWebAPP
- Apps DBA 談Oracle EBS 安全APPOracle
- Managing Rails Apps at Massive ScaleAIAPP
- 通過 alter user apps 修改apps密碼後使用者鎖定處理APP密碼
- 重新想象 Windows 8 Store Apps (60) - 通訊: 獲取網路資訊, 序列化和反序列化WindowsAPP
- Requested setting INSTALLED_APPSAPP
- EBS Services in Oracle Apps R12OracleAPP
- Multi-Device Hybrid Apps (Preview)devAPPView
- How to change the APPS db password in Oracle EBSAPPOracle
- android tv-TV Apps ChecklistAndroidAPP
- Using SQLite in your Windows 8 Metro style applicationsSQLiteWindowsAPP
- 忘記APPS密碼 - EBS從資料庫中反編譯獲取APPS密碼APP密碼資料庫編譯
- 148apps.biz:蘋果應用商店App Store應用總數突破25萬款APP蘋果
- Power Apps 應用實戰|輕鬆用 Power Apps 開發員工休假考勤管理小程式APP
- 15 款免費好用的 Mac AppsMacAPP
- Power Apps 建立響應式佈局APP
- Apps Flyer:全球移動營銷指數APP
- 消除“Permission is only granted to system apps”錯誤 .APP
- Google Instant Apps VS 微信小程式GoAPP微信小程式
- Microsoft opens up Office apps for Android tabletsROSAPPAndroid
- EBS Services in Oracle Apps R12 - NoteOracleAPP
- Developing iOS 8 Apps with Swift (stanford)deviOSAPPSwift
- 10.2.0.3 Database Certified with Apps 11iDatabaseAPP
- Oracle EBS 修改 apps ,sysadmin 密碼OracleAPP密碼