一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Win8探索學習筆記

  目錄

  “程序”的“安裝”

  基于JS的metro程序基礎

  基于C++的metro程序基礎

  WinRT(desktop)之Hello, World

  WinRT之語法擴展

  “程序”的“安裝”

  傳言win8改變了很多,恩,廢話。我希望試圖從開發人員關心的角度來了解一下win8,對于用戶而言,其實我覺得win8改變真的不多,無非就是修改了一下開始界面,然后程序會使用metro風格的界面,對于開發人員來說,可能變化的比較多,多了很多新名詞,我希望能對其有所了解,所以記錄一下我所看到的,當然,由于win8其實只是一個預覽版,很多東西我覺得還是會變的,所以真正的東西出來的時候或許還會有些不一樣吧。

  首先關于變化,我想到的是“程序”是如何“安裝”和“運行”的,之所以用這么多引號,是因為變化太多,我甚至不知道該不該用“安裝”等來表達。有點亂,慢慢來吧,有新的發現就更新下面的內容。

  (1) win8程序的類型

  win8新增了metro,主要是希望便于平板等觸摸設備上使用。從大的類別分,win8上的程序分為desktop和metro程序(暫且,我就這么分吧,因為據說win8會有多個版本,支持arm和x86處理器,并不是所有處理器都支持desktop和metro版本,PS:我所使用的是MS的64bit+VS11的preview 版本,安裝在VBox中)。

  對于desktop程序,只能運行在“desktop”環境下,metro風格的程序,只能運行在“metro”環境下。desktop環境,就和我們的win7類似。至于“metro",在后面還會慢慢的研究。

  (2) desktop程序如何"安裝"到"開始界面“中

  參考怎樣在Windows8桌面上創建自定義快捷方式

  說明:這里說的程序是desktop的。

  簡單來說,對于一個exe文件,通過創建其快捷方式(假設為hello.exe - shortcut),將快捷方式放到:

  C:/ProgramData/Microsoft/Windows/Start Menu/Programs

  中,或者在這里創建一個文件夾,放到文件夾中也是可以的。然后,到win8的start界面中,查找這個程序的名字hello.exe,就會出現了,用右鍵選中這個程序,就可以將其pin到start界面中。

  問題一:一個程序pin到start界面,這些pin的信息保存在哪里的?

  只要在C:/ProgramData/Microsoft/Windows/Start Menu/Programs,那么在start界面搜索都是可以出現的,那么這個比較容易理解了,搜索會自動去這個目錄下遍歷。那么哪些程序被pin了,這些信息保存在哪?相信肯定是某個注冊表項的吧,具體就不去找了。

  問題二:所有能在start界面搜索到的程序(的快捷方式)都是在上面這個目錄下保存的嗎?

  事實上,C:/Users/<username>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs目錄下也是可以保存的。至于還有沒有其它目錄也可以被start界面搜索到,那就不清楚了。

  總結:傳統的desktop程序在win8下都是沒有問題的,win32的API那些東西都還是支持的,什么MFC都是可以用的,弄個快捷方式到metro風格的start界面上也是可以的,只是運行還是會自動切換到desktop模式下。下面的內容開始探索metro程序到底是怎么”運行“的。到底是二進制本地運行還是在.NET虛擬機上運行,還是在一個所謂的native實際上還是“虛擬機”的解釋環境下執行,慢慢來吧。

  基于JS的metro程序基礎

  (1) Metro程序支持的開發方式和語言

  對于Metro風格應用開發,可以使用JS實現程序邏輯,結合HTML5/CSS3設計用戶接口;也可以使用C++, C#或VB結合XAML來實現用戶接口,使用Native C++或托管C#或VB來實現應用程序邏輯。對于Metro風格的C++游戲,可以使用Native C++的DX11庫和HLSL等。

  對于Win8,本地擴展允許用戶構建可重用的組件庫,可以使用C++、C#或VB構建組件,然后使用JS或者其它的支持的語言在程序中調用這些組件

  (2) 下面是Win8提供的VS11預覽版對Metro支持的工程選項

  (3) 使用JS實現的hello, metro

  實現hello, metro很簡單了,用VS 11新建一個最簡單的JavaScript工程,默認的工程模板如下:

  簡單分析一下,這里有css文件夾、images文件夾、js文件夾、winjs文件夾和default.html和一個manifest文件。其實,和一般的web程序是一樣的,default.html是“起始頁”,css和images和js文件夾是對應的一些引用的文件了。winjs文件夾,重點說明一下,是win8為基于JS的metro程序創建的一個JS庫吧,暫且理解這么多。然后package.appxmanifest,對于開發人員都很熟悉了,打包用的一個列表文件,在VS中,雙擊打開可以使用UI的方式編輯了。打開default.html,里面其實就是對其它的css/js文件的一些引用了,就是提供了一個簡單的模板工程了。

  到了這里,我已經大概猜測到了,基于JS的metro程序最后還是打包一下,放到一個“虛擬機"/"runtime"上去跑而已,原本以為MS會把JS編譯到二進制,成為native程序的,下面會進一步證明這一點。

  簡化上面的工程,刪除css、js、和winjs文件夾,最后只剩下images、default.html、package.appxmanifest的內容。事實上,這才是一個”最簡單“的基于JS的metro工程。default.html內容如下:

<!DOCTYPE html>  
<html>
<head>
<title>Hello,metro </title>
</head>
<body>
<button>
Hello, Metro with JS!
</button>
<p>
This is an metro app implemented by JS!
</p>
</body>
</html>

NET技術Win8探索學習筆記,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产第一页视频 | 一区二区三区高清视频在线观看 | 天天色天天射综合网 | 欧美高清强视频 | 欧美性巨大欧美 | 日韩综合色 | 国产精品丝袜 | 在线成人小视频 | 欧美在线不卡视频 | 国产婷婷| 五月激情综合 | 国产永久在线观看 | 久久精品久久精品久久精品 | 午夜视频网站在线观看 | 2021免费日韩视频网 | 国产三级全黄在线观看 | 欧美色tv| 国产精品丝袜高跟鞋 | 深爱激动网婷婷狠狠五月 | 在线播放69热精品视频 | 精品九九久久 | 激情五月社区 | 国产中文字幕一区 | 51国产偷自视频区视频手机播器 | 激情欧美在线 | 日韩三级精品 | 国产这里有精品 | 国产女人一区二区 | 伊人成人在线观看 | 黑人和黑人激情一级毛片 | 91免费福利精品国产 | 欧美久| 国产第一第二第三第四第五 | 激情欧美一区二区三区 | 欧美特黄a级高清免费看片 欧美特黄a级片 | 性感一级毛片 | 天天干天天射天天爽 | 9re视频这里只有精品 | 国产高清乱理论片在线看 | 亚洲国产成人超福利久久精品 | 2020国产精品自拍 |