精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Windows RT應用程序開發介紹培訓的講義

開發 后端
最近從架構的角度做了一個 Windows 8 下 Metro Style 應用程序開發介紹的講座。以下是講稿。

如有問題歡迎指正。

下載地址:

幻燈片http://files.cnblogs.com/lxconan/WinRTIntroPPT.pdf

附加說明http://files.cnblogs.com/lxconan/WinRTIntro.pdf

1   概述

這篇的標題叫做Windows RT Introduction而非Windows 8 Introduction是想強調此次介紹是從開發人員的角度而不是普通用戶的角度出發的。同時,我們關注的是Metro Style應用而不是傳統的Win32應用程序的開發。

實際上,使用C#或者HTML + Javascript書寫一個Hello world應用的代碼例子已經在網上泛濫了。但是僅有一個Hello world并不能夠說你掌握了Win RT的開發。從Pro的角度來說我們應該弄清楚整件事情的細節。那么首先就應當是他的架構。這樣寫起程序來才能心定。

2   Windows 8 Metro與Desktop模式

2.1  兩種模式

Windows 8的應用程序顯示模式目前有兩種,定義在METRO_MONITOR_MODE中:即傳統的桌面模式(MMM_Desktop)以及Metro模式(MMM_Metro)。如果你是Windows Phone用戶的話可能就會對Metro比較熟悉。事實上,微軟在2009年啟動Windows 8的研發工作時目標是創造一個完全不同以往的操作系統,完全不以之前的操作系統為藍本。而后發現Desktop應用是不可或缺的部分而將兩個部分進行合并。一開始用可能會有些別扭,但是我估計開發人員半天之內就能夠熟練使用這個系統了。

2.2  Metro和Desktop的一些不同

既然有兩種模式那么我們自然就會關注他們的不同點。這個問題應該從架構圖上做一下說明但是我們可以先有一些直觀的認識。

2.2.1   Message Loop

消息處理的編程是傳統Desktop應用程序的重要部分。你需要書寫維護Message Loop的代碼。例如:在WinMain調用(或者其子例程中)你需要書寫類似

  1. while (::GetMessage(&message, NULL, 0, 0)) { 
  2.    ::TranslateMessage(&message); 
  3.    ::DispatchMessage(&message); 

而在Window創建之前候你一定指定了

  1. WNDCLASS wndClass; 
  2. // ... 
  3. wndClass.lpfnWndProc = WndProc; 

這樣你就可以在WndProc函數中決定特定message的流向了。對于繪圖來說,你一定是接受了WM_PAINT消息,然后執行了區域重繪。

但在Metro App中這些都已經隱藏了,而且消息的細節也可能發生了變化。Metro App中你看不到消息循環。一切關于界面消息的分發都隱藏在了CoreDispatcher中。因此如果你用Spy++去試探Metro App的消息循環那么你什么都抓不到。

2.2.2   Display

在傳統的Desktop應用程序中,繪圖可能通過GDI,GDI+,DirectDraw,DirectX進行。同樣通過捕獲WM_PAINT消息或者當系統處于IDLE的時候進行繪圖(對于游戲編程來說)。

而Metro App不會再支持GDI和GDI+,在Metro App中繪圖只能通過DirectX來進行。確切的說是Direct3D和新公布的Direct2D、Direct Write API。因此Metro應用的所有繪圖都是希望是硬件加速的。這種繪圖更高效,解放CPU,而且一般不需要處理復雜的Dirty Region Repaint。

2.2.3   Life Cycle

Metro App并沒有關閉窗口這種按鈕。其生命周期是由系統托管的。系統會決定僅僅是掛起應用執行還是需要完全銷毀應用進程。這和一般意義上的Desktop應用程序不一樣。(當然,你也可以使用Alt+F4顯示的結束Metro App的執行)。

2.2.4   Share & Communication

傳統的桌面應用程序有多種手段進行公共組建的公用或IPC。但是在Metro App中,隔離是一個很重要的概念,應用的可執行部分,運行庫,Isolated Storage都是獨立的,不能夠共用。同樣,不能夠使用傳統的IPC機制。應用程序的互動僅僅可以通過內置的Contracts進行,關于這一部分內容可以查看MSDN:

http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx

2.2.5   Portability

傳統的Desktop應用程序的支持大多為x86/64架構的處理器。由于Metro環境可以完整運行在ARM處理器上是一個重要的特性,因此Metro App可以運行在ARM處理器上,即同時部署在PC和移動設備上。

2.2.6   OS Access

當然為了Portability的要求,必然要求應用不能夠越過Win RT的抽象,因此Metro是不能像Desktop App那樣訪問所有的Windows API的。

3   從Windows 8 API的架構圖看Windows RT

我們對Windows RT的介紹都將圍繞著這個圖展開。

在這個圖中,***層的是NT的內核;在其上是Windows子系統。實際上NT至少有三個子系統,Windows子系統,POSIX子系統(Unix)和OS/2子系統。POSIX子系統和OS/2子系統實際還是在使用Windows子系統。 在Windows子系統上劃分了不同的運行時(橙色)和程序庫(淺藍色),最上面的綠色是我們使用的各種開發語言。

這個架構圖實際上說明了一切。并且消除了很多誤解:

(1)***個誤解是INFOQ指出的Windows RT和Win32是完全分開的。這源于微軟發布的一幅飽受批評的架構圖,在那張架構圖中,Windows RT和Windows子系統竟然是并排排列的。這是很荒謬的,Windows RT實際上基于Windows子系統。首先Windows RT完全基于COM;其次Windows RT利用了一部分現有的Win32 API;其余的部分Windows RT則直接訪問NT內核。

(2)第二個誤解是C++/CX。C++/CX是微軟推薦的開發Windows RT的方式。他主要隱藏了COM的復雜性。關于這個問題我們后續會有說明。這個誤解是C++/CX實際就是C++ CLI。實際上這是兩個完全不同的東西,C++ CLI是運行在托管環境下的,而C++/CX完全是Native的。

3.1  Windows RT僅用于Metro應用

從架構圖中可以看出,Win RT僅僅用于Metro應用。并秉承了我們剛才介紹的,簡單部署,沒有共享的組件,沒有IPC,等等。

3.2  Windows RT構建與COM之上

這也是為什么說Windows RT是構建與Win32之上,因為COM是Win32重要的組成部分。這意味著:

(1)你可以用之前所有的消費COM的方式來使用Windows RT,你可以用C,你可以用ATL或者新的WRL;

(2)WRL完全符合傳統的C++語法,這意味著你可以使用不同的編譯器(例如Intel C++編譯器)來構建Metro應用。但是微軟顯然希望大家都來使用C++/CX,WRL的文檔跟沒有差不多,現在也看不到一個完整的例子出現。

3.3  Windows RT限制了系統API的調用

Win RT是基于COM的,但是COM僅僅是一個二進制協議而已。在COM Interface實現中從技術上講還是在調用Win32 API。但由于前面介紹的Win RT的設計要求,系統API的調用需要受到嚴格的限制。僅僅支持有限的API調用,因此在你希望使用一個Win32 API時,一定要查詢MSDN上的Applied To一節,看看是否是Metro Style App | desktop App。

同樣的道理,.NET的某些方法也在進行著系統調用,因此在使用.NET開發Metro Style應用程序的時候也并不是所有的程序集都能夠支持。當然,如果使用P-Invoke的方式調用Win32 API那么危險性就會更大。

總之,在Metro應用中調用不支持的Win32 API會有如下的后果:

(1)發生一個Runtime Exception;

(2)應用程序失去響應,尤其是在使用和消息循環相關的代碼時。例如對Metro App進程使用WaitForSingleObject(hProcess)。

(3)調用成功,但是你的Metro App應用會被Windows Store駁回。

按照上述分析,那么即使你存在相當可觀的COM代碼庫,也需要巨大的努力才能夠保證他們在Metro App上正確運行(消除非法的系統調用)。對于新的應用來說,為了避免書寫大量的COM開發代碼,***使用C++/CX進行開發了。

3.4  C++/CX

為什么會有C++/CX呢?這可以聯想n年前我們為了避免C++開發COM的冗長的代碼,轉而使用C開發關鍵程序,而使用Visual Basic創建COM組件。現在時間到了2012年,VB6已經不在考慮范圍之內了,于是C++/CX取代了他的位置。

C++/CX是Native的,但是它的語法為什么能夠和C++ CLI保持近乎一致呢?這是因為Win RT本身雖然是Native的,但它以.NET兼容的方式暴露了元數據。但是我們在編程中要時刻想到,我們在操作實打實的Native對象。根本沒有什么垃圾收集器在幫助我們。

那么為什么不單純使用.NET開發Metro App呢?這是因為對于移動設備來說,CPU的速度和電池是兩大局限,因此在近一年,Go Native的大潮終于襲來。目前:

(1)iOS使用Objective-C進行程序開發,而且在移動設備上也是沒有垃圾收集器的,需要手動釋放使用的內存;

(2)Android一開始使用Java進行開發,但是在糟糕的性能和社區的強大壓力下,終于開放了C/C++開發接口;

(3)WP7/8也出現了類似Android的情況。

目前客戶端應用向更薄(核心應用向服務器移動),更快(運行速度快,耗電小),交互更豐富(沒有動畫你都對不起觀眾)的方向發展。因此開放Native接口是大勢所趨,C/C++順理成章的在Windows 8強勢回歸了。

但是,用.NET開發Metro應用也是一個不錯的選擇,尤其你的應用沒有密集的運算(游戲)的情況下。你可以參考幻燈片中的Cheat Sheet。

原文鏈接:http://www.cnblogs.com/lxconan/archive/2012/09/09/2677957.html

責任編輯:彭凡 來源: 博客園
相關推薦

2009-07-29 15:15:31

ASP應用程序

2010-11-03 15:10:04

SilverlightSilverlightWindows Pho

2009-04-16 08:05:27

Windows Mob微軟移動OS

2011-03-21 09:05:40

IronRubyWindows Pho

2012-03-22 09:43:57

微軟Windows 8 M

2010-01-25 13:29:53

Android本地應用

2012-03-14 09:34:05

2020-09-24 10:54:10

谷歌Flutter開發

2009-07-17 16:09:29

Swing桌面應用程序

2010-02-26 11:08:29

Python應用程序

2011-07-22 14:08:19

iPad 架構 數據

2009-07-27 16:09:50

2010-02-22 17:46:57

Python應用程序

2010-12-01 09:01:31

獨立存儲Windows Pho

2009-08-14 17:27:30

C#Windows應用

2009-04-15 09:07:45

微軟Windows Mob在線程序商店

2009-08-14 17:36:20

C#Windows應用

2012-02-21 22:01:24

Windows 8Web開發

2013-07-30 13:38:27

Windows PhoWindows Pho

2012-12-25 09:52:22

Windows 8
點贊
收藏

51CTO技術棧公眾號

人妻无码中文字幕| 在线精品一区二区三区| 91大神xh98hx在线播放| 亚洲在线电影| 国产视频一区在线| 免费的一级黄色片| 精品久久久久久亚洲综合网站 | 午夜电影网亚洲视频| 国产精品xxxx| 国产中文字字幕乱码无限| 国产日韩欧美中文在线| 亚洲电影在线播放| 欧美一区二区福利| 91麻豆成人精品国产| 欧美日韩一区二区国产| 日韩av影视在线| 色播五月综合网| 国模雨婷捆绑高清在线| 久久一区二区三区四区| 成人福利在线视频| 日本熟妇色xxxxx日本免费看| 免费短视频成人日韩| 欧美日韩国产一级片| 很污的网站在线观看| caoporn国产精品免费视频| 国产一区二区三区四| 4388成人网| 国产高清视频免费在线观看| 免费看久久久| 69堂精品视频| 日韩在线xxx| 国产三级伦理在线| 国产日韩欧美高清| 国产精品10p综合二区| 最近中文在线观看| 亚洲精品偷拍| 久久成人精品一区二区三区| 久久精品国产亚洲av久| 亚洲五码在线| 欧洲亚洲国产日韩| 精品成在人线av无码免费看| 男女污污视频在线观看| 国产精品自在在线| 国产精品久久久久久中文字| 日韩xxxxxxxxx| 91精品电影| 在线观看不卡av| 青青草福利视频| 高潮久久久久久久久久久久久久| 欧美色中文字幕| 国产免费黄色一级片| 日本中文字幕在线看| 26uuu亚洲| 国产三级精品在线不卡| 精品人妻一区二区三区含羞草 | 欧美三级电影网址| 欧美性猛交丰臀xxxxx网站| 在线观看欧美一区| 成黄免费在线| 久久久久亚洲蜜桃| 精品产品国产在线不卡| 黑人乱码一区二区三区av| 狠狠v欧美v日韩v亚洲ⅴ| 日韩美女在线观看| 国产伦精品一区二区三区视频网站| 1024精品一区二区三区| 欧美华人在线视频| 黑人操日本美女| 日韩在线观看电影完整版高清免费悬疑悬疑| 亚洲美女中文字幕| 黄色正能量网站| 全国精品免费看| 亚洲激情在线视频| 久久午夜夜伦鲁鲁片| 果冻天美麻豆一区二区国产| 精品欧美乱码久久久久久1区2区| 日韩欧美中文在线视频| 精品视频在线播放一区二区三区| 在线日韩国产精品| 欧美性久久久久| 国产经典三级在线| 亚洲国产成人av网| 91免费黄视频| av毛片午夜不卡高**水| 五月天一区二区| 日韩精品视频久久| 在线免费看h| 色综合色综合色综合色综合色综合 | 亚洲国产成人精品女人久久久 | 中文在线观看免费| 一区二区高清在线| 亚洲国产精品无码av| 高清毛片在线观看| 日韩欧美一区视频| 激情综合在线观看| 国产精品久久久久久久久免费高清| 欧美日韩日本视频| 又黄又爽又色的视频| 中文在线综合| 亚洲欧美激情精品一区二区| 精品无码在线观看| 欧美一区精品| 97av在线播放| 国产黄色免费视频| 国产麻豆精品视频| 激情小说网站亚洲综合网| 国产在线色视频| 亚洲日本在线看| 欧美成人高潮一二区在线看| 亚洲精品一区| 91精品一区二区三区久久久久久| 乳色吐息在线观看| 久久丝袜视频| 中文字幕在线亚洲| 精品亚洲永久免费| 热久久久久久久| 成人一区二区三区四区| 国外av在线| 国产精品成人免费| 欧美交换配乱吟粗大25p| 精灵使的剑舞无删减版在线观看| 色综合天天综合网天天看片| 激情成人在线观看| 狠狠色丁香婷婷综合影院| 欧美大尺度激情区在线播放| 99热只有这里有精品| 久久精品久久综合| 精品一区二区三区自拍图片区| 9191在线| 狠狠色香婷婷久久亚洲精品| 亚洲一区二区三区四区五区xx| 777久久精品| 亚洲无av在线中文字幕| 久久精品视频8| 韩国精品免费视频| 青青成人在线| 97超碰在线免费| 欧美一区二区免费观在线| 欧美特级黄色录像| 99精品免费网| 51国偷自产一区二区三区| av中文在线| 亚洲一级二级在线| 97人人模人人爽人人澡| 欧美一级精品| 日韩美女写真福利在线观看| 色综合视频在线| 亚洲国产精品久久人人爱| 一二三级黄色片| 欧美色图在线播放| 国产不卡av在线| 日韩电影网址| 亚洲v精品v日韩v欧美v专区| 欧美一区二区三区影院| 婷婷中文字幕一区| 国产精品日韩欧美大师| 牛牛热在线视频| 欧美日韩在线一区| 97香蕉碰碰人妻国产欧美| 国内精品久久久久久久影视麻豆| 国产精品欧美日韩| 91在线网址| 欧美色老头old∨ideo| 成人免费看aa片| 国产免费成人| 美脚丝袜一区二区三区在线观看| 国产嫩草在线视频| 欧美成人三级在线| 精品少妇一二三区| 高清视频一区二区| 青青青在线视频播放| 超碰成人在线免费| 国产网站欧美日韩免费精品在线观看| 日韩欧美亚洲视频| 成人综合婷婷国产精品久久免费| 欧美精品videossex性护士| 亚洲黄色免费观看| 2023国产一二三区日本精品2022| 欧美成人免费在线观看视频| 天堂综合在线播放| 久久亚洲精品网站| 亚洲精品久久久久久动漫器材一区 | 久久香蕉国产线看观看99| 国产女大学生av| 久久99国产精一区二区三区| 国产精品扒开腿做| 飘雪影院手机免费高清版在线观看 | 欧美日韩中文精品| 亚洲色图100p| 国产福利不卡视频| 亚洲熟妇无码一区二区三区导航| 女人抽搐喷水高潮国产精品| 欧美激情精品久久久久久蜜臀 | 亚洲国产精品久久久久久6q| 五月婷婷激情综合网| 波多野结衣办公室33分钟| 天堂蜜桃91精品| 91xxx视频| 麻豆一区一区三区四区| 日韩美女视频在线观看| 麻豆tv在线| 亚洲高清久久久久久| 日韩不卡在线播放| 国产日韩精品一区二区三区在线| 青青草原国产在线视频| 亚洲国产老妈| 国产精品初高中精品久久| а√在线中文网新版地址在线| 日韩精品视频免费| 97caocao| 精品免费在线视频| 久久国产高清视频| 91欧美一区二区| www.国产视频.com| 最新国产精品| 久久国产欧美精品| 日韩一级特黄| 68精品国产免费久久久久久婷婷 | 国产传媒欧美日韩成人| 黄色片网址在线观看| 国产亚洲欧美日韩在线观看一区二区| 亚洲一区二区三区成人在线视频精品| av手机在线观看| 久久综合久久88| 九色在线观看视频| 欧美最猛黑人xxxxx猛交| 久久久久久免费观看| 中文字幕av一区二区三区| 国产a级黄色片| 国产乱码字幕精品高清av| 欧美精品一区二区三区免费播放| 欧美日本在线| 一区二区不卡在线视频 午夜欧美不卡'| 综合中文字幕| 国产精品网站大全| 久草在线视频资源| 久久精品小视频| 国产69久久| 日韩精品一区二区三区第95| www香蕉视频| 欧美日韩三级视频| 欧美另类一区二区| 亚洲二区在线观看| 欧美日韩一级在线观看| 国产精品久久久久久久岛一牛影视 | 日本黄大片一区二区三区| 国产亚洲一级| 日韩av中文字幕第一页| 欧美成人69av| eeuss中文| 99精品在线免费在线观看| 日韩女优中文字幕| 国产在线观看91一区二区三区| 亚洲最大的成人网| 欧洲美女精品免费观看视频 | 日本久久一区二区三区| 国产香蕉视频在线| 福利一区福利二区微拍刺激| 精品视频一区二区在线观看| 夜色激情一区二区| 国产免费无码一区二区视频 | 99久久综合狠狠综合久久止| 99久久99九九99九九九| 国产精品丝袜久久久久久不卡| 国产亚洲欧美日韩精品一区二区三区 | 欧美色综合网| 日韩一级片一区二区| 欧美日韩理论| 99久久国产综合精品五月天喷水| 伊人影院久久| 欧美日韩午夜爽爽| 欧美日韩国产综合网| 成人免费观看在线| 99国产精品私拍| 9色视频在线观看| 日韩欧美高清| 相泽南亚洲一区二区在线播放| 老司机精品视频在线播放| 久久国产主播精品| 国产午夜一区| 超碰免费在线公开| 亚洲草久电影| 人妻无码久久一区二区三区免费| 99精品国产在热久久| 欧美 激情 在线| 日韩中文字幕区一区有砖一区| 日韩一级片播放| 老司机免费视频一区二区| 五月天丁香花婷婷| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 欧美 日韩 中文字幕| 国产丝袜一区二区| 日韩黄色影院| 午夜免费在线观看精品视频| 精品丝袜在线| 国产精品久久久久久搜索| av亚洲一区| 98国产高清一区| 夜色77av精品影院| 一级一片免费播放| 亚洲国产精品第一区二区三区| 国产99久久九九精品无码| 强制捆绑调教一区二区| 丰满人妻一区二区三区53视频| 99久久国产综合色|国产精品| 永久免费av无码网站性色av| 亚洲三级免费观看| 日韩毛片一区二区三区| 在线欧美日韩精品| 亚洲精品国产av| 亚洲午夜精品久久久久久久久久久久 | 久久亚洲免费| 久久精品免费一区二区三区| 日本免费不卡一区二区| 国内不卡的二区三区中文字幕| 日批在线观看视频| 中文字幕国产精品一区二区| 懂色av懂色av粉嫩av| 日韩欧美国产视频| www.麻豆av| 中文字幕欧美国内| 欧美少妇精品| 亚洲精品欧美日韩| 精品一区二区三区的国产在线观看| 日本免费黄色小视频| 日本午夜一本久久久综合| www.污网站| 97久久精品人人做人人爽50路| 免费看特级毛片| 色香蕉久久蜜桃| 国模无码一区二区三区| 久久久国产精品免费| 欧美极度另类| 国产一区二区三区奇米久涩| 在线国产一区二区| 手机在线看福利| 91色婷婷久久久久合中文| 在线视频这里只有精品| 亚洲国产一区二区视频| 国产伦精品一区二区三区视频痴汉 | 欧美电影免费观看完整版| caoporn国产精品免费视频| 欧美有码在线观看| 加勒比色老久久爱综合网| 超碰人人爱人人| 激情欧美一区二区| 免费看黄色的视频| 好吊成人免视频| 天天操天天射天天舔| 久久久久久久999精品视频| 美国十次综合久久| 中文字幕剧情在线观看一区| 日韩精品免费视频人成| 欧美亚一区二区三区| 色婷婷久久一区二区三区麻豆| 加勒比一区二区三区在线| 国产精品白丝jk喷水视频一区| 成人黄色小视频| 制服丝袜中文字幕第一页 | 免费成人黄色网| 黄瓜视频免费观看在线观看www| 国产在线看一区| 国产性70yerg老太| 国产午夜精品久久久| 91大神在线观看线路一区| 一区二区不卡视频| 福利一区二区在线| 日本熟妇一区二区| 国产香蕉精品视频一区二区三区| 欧美性www| 欧美乱做爰xxxⅹ久久久| 91亚洲国产成人精品一区二区三| 亚洲天堂视频网站| 日韩视频永久免费观看| 中文字幕区一区二区三| 成人久久久久久久久| 国产精品另类一区| 亚洲精品成av人片天堂无码| 欧美一级黑人aaaaaaa做受| av在线不卡顿| 日本中文字幕精品| 亚洲国产日韩综合久久精品| 美女欧美视频在线观看免费 | 男同互操gay射视频在线看| 成人在线一区二区三区| 日本视频免费观看| 久久婷婷国产麻豆91天堂 | 精品亚洲永久免费精品| 欧美韩国日本| 男人添女人下部高潮视频在观看| 国产三级欧美三级日产三级99| 国产精品一区二区黑人巨大| 欧美有码在线观看视频| 亚洲蜜桃视频| 永久免费成人代码| 精品国产一区二区国模嫣然| 精品国模一区二区三区| 久久精品无码中文字幕| 国产精品网站在线观看| 无码精品人妻一区二区|