<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Windows 8 Metro app開發初體驗

      前言

      隨著Windows Phone的進一步推廣,微軟也把傳統桌面版本的Windows帶入觸摸的世界,全新的Windows 8破蛹而出。大家對Windows8的關注度遠遠高于當初的Windows Phone。我記得在2010年4月Windows Phone CTP SDK剛出來的時候,研究的人寥寥無幾,我可以算說寫了當時第一個中文系列教程,然而由于CSDN和三星那邊由于WP的上市時間一直推延發布。但是這一次Windows 8的Developer Preview 一出來,好幾個大公司馬上跟進,在Consumer Preview出來的時候,Windows Store已經有好幾個大公司出產的App,例如QQ,人人神馬的。Windows 8的火熱程度必定高于Windows Phone。

       

      由于Windows 8 Consumer Preview的發布,也說明了Windows 8慢慢的成熟,(其實還不成熟,我覺得Consumer Preview的Windows 8還沒有當時Windows Phone CTP 那么成熟。后面會講述到)也開始做一些原型,經過了兩個星期的開發,做出了第一個Windows 8 Metro app的原型。

       

      WP_000609

      這是一個//BUILD app和Reader app的混合體,只是一個原型,功能還不完整,只用于演示,但是呈現的元素全部都是數據綁定,旦項目確定,只要修改數據源就能接著進一步開發。同時使用了Semantic Zoom,Grid View,List View等Windows 8的新控件,算是Windows 8開發的初體驗。

       

      Metro app

      Windows 8的程序分為傳統桌面程序和Metro App,如下圖。與傳統的桌面程序相比,Metro app是Windows 8全新的概念與開發模式,可以理解為Windows Phone app的Pad版本。

       

      我們還是可以使用當前Windows的開發模式來開發桌面程序,例如WPF,MFC,Silverlight等等,但這都不是本文探討的部分,本文講述Metro app。

      Metro app支持三種不同的開發模式,XAML + C#/VB, XAML/DirectX + C++, HTML5 + JS + CSS。理論上講三種方式都是等同的,從我開發的經驗來說,目前最為成熟的是HTML5的模式,控件的bug最少,有些控件,例如Semantic Zoom,HTML5版本要比XAML版本的正常。這也是為什么微軟的app中HTML5 app最多的原因。我也粗略看過微軟自己開發的,或者找實習生開發的app(在Developer Preview中),HTML5的app居多數,而微軟的內置核心app一般都是XAML+C++的模式來開發的。但是我想隨著Windows 8 SDK的進一步完善,最終三種方式開發的效果是一樣的。到底選擇哪個與個人自身條件與喜好相關,我個人的喜好是

      C# –> HTML5 –> C++

       

      由于我習慣了開發WPF(Surface)和Windows Phone程序,所以我首選C# + XAML的模式。這種模式后面慢慢講述,現在插播一下其他模式的開發,以便于選型。

       

      DirectX/XAML + C++模式

      好處是開發的app不能反編譯,由于Windows 8暫時不支持XNA(也不知道什么時候支持),所以開發游戲的首選是DirectX,而以DirectX作為呈現層的app只能使用C++了。Windows 8內置的app一般都是使用C++開發的,可能出于代碼加密的考慮。

      壞處是學習一種非標準的C++,出于個人情緒,我在Windows 8發布第一天就開始在Twitter和微薄上罵那種C++的開發方式,我不喜歡的不是C++,而是微軟擴展的C++。其實我非常喜歡標準的C++,但是對微軟的那種擴展C++一直沒什么好感,大概在7,8年前,開始使用VS2003開發擴展C++程序,大概有幾萬行的代碼,最后由于性能原因,把全部的托管(managed) C++代碼全部移植回原生(native) C++,我甚至走的更遠,除了迫不得已的情況下,絕不使用MFC,都以STL來代替。

      因此除非有性能要求很高的程序,否則我不會輕易選擇C++的開發模式。

       

      HTML5+CSS+Javascript模式

      Javascript可以說是世界上給人誤解最大的語言,Objective C可以說是給人誤解第二大的語言了,其實他倆兄弟挺慘的,一直給人罵,但其實都是功能強大,以一敵三的語言。但C#是一敵十的神馬級別語言,所以我也不選擇Javascript的模式,C#在手,萬事無憂。如果大家仔細看微軟的例子程序,Windows Store上的app,目前大部分的app都是以javascript開發的,例如Kindle,kobo等閱讀器程序,//Build程序,而且Kindle還是沒有混淆過的,很好的學習例子呀。而Developer Preview的//Build也公開的源代碼,可是微軟把api改了,原版本的程序不能啟動了,但代碼還是值得參考的。

      微軟說上述三種模式都是直接調用WinRT,沒有區別,但是經過我測試,我覺得性能上還是有區別的,例如Semantic Zoom在HTML5版本下的性能明顯要比C# XAML版本要差,這也是我決定不選擇HTML5的原因。

      其實這個HTML5可以說是微軟版本的HTML5,對HTML技術熟悉的人都知道,HTML5還是Draft版本,每個廠商都實現其自己的HTML5,使用一大堆prefix tag,例如-webkit- -ms-神馬的,Windows 8也不例外,嚴格來說還是在玩微軟的HTML5,而且由于Javascript和HTML太強大了,編程模式太靈活,微軟的HTML5模式就像山寨XAML的模式,一堆數據綁定。警告說HTML,JS的數據綁定不是微軟特有的,市面上也有一堆MVVM和MVC庫,例如knockoff等等,但是為Windows 8開發的開發HTML app,可移植性不高。也就是說可以進不可出。你明白的,呵呵。

      但是我覺得這個模式還是不錯的,我可能在將來選擇這種模式進行開發。

       

      以上都是一家之言,歡迎狂噴,我會根據自己的知識re噴,呵呵。

      XAML,還是XAML

      clip_image002

      前文再續書接上一回,回到我心愛的C# + XAML。一言以蔽之:Windows 8的C# + XAML就像WPF版本的Windows Phone。XAML功能比Silverlight更強大,控件更豐富,然后加入一些Windows Phone獨立存儲空間的概念,生命周期的概念。因此如果熟悉WPF,Silverlight或者Windows Phone的開發,進入Windows 8的XAML + C#模式的開發將會非常容易。最關鍵的核心概念還是那些:數據綁定,依賴屬性,StoryBoard動畫,項控件,這些都是一樣的。Consumer Preview還加入神器Blend,極大簡化XAML的編輯難度。

       

      Async

      Async是新版C#的新功能,為了提高用戶體驗,不讓用戶有等待的感覺(其實還是需要等待的)WinRT所有的api都變成Async了。如果對于Windows 8 Metro app的開發來說,Async是不得不學習的功能。其實就兩個關鍵字async和await,學習曲線非常低。Async的引入是為了簡化異步編程的開發模式,把Callback編程的復雜度減低,讓開發者按照順序的思維來開發程序,編譯器把async和await兩個關鍵字封裝成相應的Task,然后通過線程池來自動管理異步調用。對于開發者來說是減輕任務。

      部署程序

      如果要把Metro部署到Windows  8設備上,不需要解鎖的,首先需要在Windows 8的設備安裝Remote Debugger。然后啟動Remote Debugger,把它設置為“不需要用戶驗證”。在開發機上點擊“Remote Machine”, 選擇Windows 8設備的IP就可以部署了。不像其他手機或者iPad的開發,只需要網絡啟動就可以了,不需要USB鏈接。

       

      小結

      以上都是一些碎碎念,也算是這兩周開發的一些想法,由于Consumer Preview的SDK還是不完善,開發中會遇到一些bug,由于沒有文檔,有時候只能靠自己反編譯一下等手段來解決。但是我覺得隨著版本的升級會慢慢改正,對于這方面我還是對微軟懷有信心的,畢竟不像Android那樣更新快,但breaking api一大堆。本來還想講述UX方面的,這也是Windows 8 Metro開發的大頭,但是構思了一下挺多內容(UI,手勢,用戶習慣,與Android,iOS和WP7的區別,與傳統桌面程序的區別等等),放到下一篇文章《Windows 8 Metro app UX初體驗》。

      如果覺得文章OK,請轉到微薄上,也可以通過微博 @林永堅Jake 與我互噴。現在玩Windows 8的筒子不多,如果您也開始做Windows 8,互粉一下,多交流交流,切磋切磋。

      posted @ 2012-03-27 09:43  Jake Lin  閱讀(28632)  評論(42)    收藏  舉報
      主站蜘蛛池模板: 亚洲男女一区二区三区| 东方四虎在线观看av| 黄色亚洲一区二区在线观看| AV在线亚洲欧洲日产一区二区 | 国产精品无码制服丝袜| 久久精品a亚洲国产v高清不卡| 人妻人人澡人人添人人爽人人玩| 国产亚洲综合区成人国产| 高潮潮喷奶水飞溅视频无码| 国偷自产一区二区三区在线视频 | 无码va在线观看| 鲁丝片一区二区三区免费| 亚洲宅男精品一区在线观看| 亚洲偷自拍国综合| 延边| 国产午夜精品福利免费不| 国产不卡av一区二区| 浓毛老太交欧美老妇热爱乱| 亚洲禁精品一区二区三区| 亚洲人妻一区二区精品| 天天躁日日躁狠狠躁中文字幕| 免费国产一级特黄aa大片在线| 精人妻无码一区二区三区| 国产羞羞的视频一区二区| 亚洲中文字幕人妻系列| 邯郸县| 国产日韩AV免费无码一区二区三区| 99在线精品国自产拍中文字幕| 巨大黑人极品videos精品| 国产情侣激情在线对白| 免费无码一区二区三区蜜桃大| 免费人成再在线观看视频| 精品国产精品午夜福利| 中文字幕av一区二区三区人妻少妇| 亚洲卡1卡2卡3精品| 午夜福利看片在线观看| 亚洲成人av在线综合| 起碰免费公开97在线视频| 好男人社区神马在线观看www| 麻豆精品在线| 日韩有码精品中文字幕|