⓪蕭沖 編著

話說自windows 8開始,在windows 8的應用程式大致上被分為二種: 一種就是「桌機」應用程式,這與過去的應用程式沒什麼大不同。另一種就是Metro-Style App。這種應用程式,目前正式的說法叫「Windows Store App」,因為metro style這個詞有一些法律上的問題。不過為了簡易一點的說明,以下我稱它叫 metro app。

先來說說 metro App 與傳統的desktop應用程式有什麼不同?  我個人覺得最主要的不同在於安全性。metro app與iphone上的app真的超像的,也就是app被局限在一個sandbox裡,不能隨意的存取他人的app或是重要的系統資源,比如說系統的根目錄等。metro app裡的目錄只有三個Local folder、Roaming folder 、Temp folder,因此想搞鬼太不容易,這點若有開發iphone app的人應該可以感受很深!  當然,metro app還有一個很大的不同,那就是外觀(UI),使用windows 8的介面後就會知道不同在哪裡…

ok,以上說了一堆,還是沒講到windows run time :p。總要有個前因嘛! 為了達到 metro app的風格、安全等等,當然相對的windows api就要有所改變,不然如何限制不能讀系統檔之類的,你說是吧?!  metro app 被限制要使用WinRT這個framework(我不稱它是api)來開發。

那麼WinRT的本質是什麼呢? 說到這裡,又不得要說它又像mac裡的cocoa framework。windows 8 以前,開發人員(非.net)都是和win32 api在打交道。而win32 api其實就是c   函式庫一樣的東西,非物件化、非階層化,像是倒滿地的一堆函式。為了要方便使用這些api,才有了borland的VCL或microsoft的MFC,這二個framework就是把win32 api包起來變成類別,方便開發使用。win32 api超過10年以上的歷史,於是這回microsoft就把這系統層級的api重新包裝起來,「並且考慮可能不同語言都會呼叫它」,加入一些安全機制等,於是就有了WinRT這個東西。它是一種framework,不是散落一地的函式庫。它是一種類似COM技術的包裝方式,所以不同的語言都可呼叫,它是native的碼,所以很快…。這樣的特性才讓我不禁覺得像極了mac上的cocoa framework,雖然cocoa不像com一樣,但在mac/iphone上開發程式就是要和cocoa打交道。

aftcast 發表在 痞客邦 留言(0) 人氣()