2012年4月23日 星期一

《Mircosoft 初探 Windows 8 應用程式開發》簡單心得

今天參加的《Mircosoft 初探 Windows 8 應用程式開發》,上午場主要是在說明 Windows 8 的嶄新介面 "Metro" 系統的使用方法與架構,以及他的設計理念。下午則是說明 Windows 8 Metro 程式的開發方法,以及實際運用。

  下面我大概簡單把今天我得知的一些內容,以及一些心得打出來,可能會有錯誤吧,如果有需要我應該會找時間把錯誤修掉,另外也煩請有閱讀這篇文章的網友幫忙糾正,畢竟我今天忘記做筆記,可能有許多部份與事實有所出入。

  在 Windows 8 之中,主要可以分為兩個部分,一般桌面與動態磚畫面,動態磚也就是上面所提到的 "Metro"。其實我一直以為他們的程式是可以共通的,今天才知道說原來兩邊是不一樣的東西,在一般桌面的時候就如同我們在使用 Windows 7、Vista、XP等系統一樣。但是在 Metro 中,基本上可以將它視為運行在 Windows 8 中的另外一套系統,當然,實際狀況並不是這樣就是。實際上它是屬於「沙盒」的概念,簡單說就是在作業系統上獨立出一個區塊,而在這區塊中的行為基本上是不會影響到底層的作業系統,至於更深入的解說我可能就無法了,畢竟我只知道這一點點,還需要多多學習。

  Metro 有一個很好玩的機制,就是他一次只能執行一個軟體,這並不是說他不能多工,而是因為在 Metro 中的軟體(以下避免與一般桌面軟體混淆,皆統稱APP)執行的時候,一定會全螢幕,並將其他運行中的APP隱藏至背景,而被隱藏至背景的APP只會剩下資料還在記憶體中,且不會使用CPU資源進行運算,若是有需要讓他在背景執行,例如音樂撥放,則需要在APP撰寫的時候給予標記。另外,被隱藏至背景的APP,在系統資源不足的情況下,會被系統隨機從記憶體之中消去,而且系統並不會通知,這一點我是覺得很奇怪就是,而且被移除之後還是能夠切換回去不必重新點選捷徑執行,他應該是還有保留一些標記吧。這兩天會將自己的筆電安裝 Windows 8 玩玩看這種狀況,微軟方面對這種狀況的說明是說為了節省行動裝置的電力消耗,因為減少CPU負載就可以同時減少電力損失,講師也有直接用一個無限迴圈的程式說明,在那無限迴圈APP一進入背景後可以看到他已經不再佔有CPU資源,且被系統釋放掉。

  上午場後半聽了另一位講師在說明 Metro 的設計概念,很多都是美術的東西,老實說我也記不住,雖然我以後想要玩設計!

  下午場都是在說明撰寫APP的方式,其實 Metro APP 的撰寫除了C#之外,許多過去用在網頁上的程式語言都可以拿來使用,例如JS、CSS、HTML,這點讓我滿訝異的,看來以後除了一般的程式語言,如果想要進入 Metro APP 這塊的話,網頁語言也需要好好學習了,先前學的都幾乎荒廢掉了說......。

  下午場中間的休息時間我有跑去前面問微軟的人員一個問題,就是以後桌面程式與Metro APP的未來發展,他是回答我說兩邊都會同步發展,在一連串的問答後我就大概知道為什麼了,早上場次的講師有提到, Metro APP 在執行的時候中間有一層中介,Windows RunTime也就是WinRT,基本上對於裝置的存取控管比較嚴格,在APP撰寫的時候就需要做設定,且使用者在安裝該APP的時候會被提醒說這個APP將會使用到那些硬體裝置。而且在 Metro 中的APP,一次只會執行一個,因此在應用層面上是可以與一般桌面軟體走不同的方向。程式設計者可以評估程式需要寫在哪一個部分,若是需要針對硬體進行操作,可以選擇一般桌面版程式,而對硬體操作需求不大,且屬於資訊讀取、應用層面的,可以選擇 Metro APP。

沒有留言:

張貼留言