Metro Style App (7) – 使用 Windows App Certification Kit 基本檢測開發的 Metro App

在開發完 Metro App  之後,微軟也提供了基本的檢測工具對 App 做初步的檢測,這份工具檢測的項目也非常的基本,檢測的項目也不多,一般來說都可以正常通過。在這邊檢測的部分只是程式能不能正確運作而已,但是如果沒有辦法通過的話應該也沒有通過發佈上 App Store 的檢測。

微軟官方介紹

Windows App Certification Kit 白皮書

Windows SDK 下載

Windows App Cert App 是 Windows SDK for Windows 8 Consumer Preview 的其中一項功能,安裝完他並不會顯示在 Metro App 開始列或是傳統桌面上,可以利用 Metro App 的搜尋功能來啟動程式。啟動程式之後 選擇 Validate Metro Style App 會列出機器上全部的 Metro Style App ,有的時候這邊會遇到程式沒有列在上面的情況,是一個已知的 bug ,最後會提到要怎麼做。

image

選擇到想要檢測的 App 之後就可以開始檢測了,大約會執行五到十分鐘,途中也會開啟 App 數次,而且最後會停留在 Metro 的頁面,所以看不到檢測的進度條,反正看他好像沒在動作就可以看看是不是完成了。如果完成的話就會出現要存檔的畫面,這邊存檔的檔案就是結果的 Xml 檔。

image

用 IE 開啟結果的 XML 檔案,裡面會列出通過或是不通過跟警告的部分,主要都是直接關於程式的部分,如果要上架的話 Metro App 還有很多設計方面的規範都不會在這邊檢測到,像下面檢測到的問題是啟動的速度太慢了,為了達到 Metro Style App fast and fluid 的效果,所以有限制啟動時間不能太久。

image

如果在清單中找不到要檢測的 Metro Style App

  1. 必須先啟動 powershell 執行 Get-AppxPackage > out.txt
  2. 在 out.txt 中可以看到全部的 Metro Style App ,在 txt 找到 InstallLocation 這個欄位是空的 App
  3. 用 Remove-AppxPackage <packageFullName> 將這個 App 移除掉 ,再回到 App 清單應該就可以正常顯示 list 了

image


Wack don’t see my app neither from gui, nor command line, nor from visual studio create package dialog

在 Windwos 8 移除 Windows Live ID 綁定同步

在 Windows 8 下很多 App 都會要求登入 Windows Live ID (WLID) 帳號,進而同步資訊讓使用者能夠更快的結合各項所需的資訊。

版本:Windows 8 Consumer Preview

在 Windows 8 登入 WLID

在這邊說的登入並不是在設定的地方綁定關聯帳號,而是當用 Local Account 登入的時候,進入到需要 WLID 的 App 例如說 Mail,Calendar,Messaging,People 再登入的時候就會要求 WLID

image

詭異的是假設說當你在 Mail 下登入的時候,這時候 Calendar , Messaging ,People 都會同時同步帳號資訊,只是想收個 mail 結果連好友狀態行事曆 MSN 訊息通通下來了,同步的時候也沒有看到選項可以選擇。如果對 Windows 8 比較熟的人可能會說,那有什麼奇怪的,這四個 App 明明就是同一個只是用 Secondary Tile 讓你以為是四個 App。

一旦登入帳號資訊就全部 App 都可以用

利用 Metro App 的 Setting 這邊幾乎都可以看到帳號資訊,但是並沒有辦法將他移除,Setting 裡面確實是有移除功能的,可是移除功能針對的是第二組以上加入的帳號,他會一直保留住第一組帳號資訊。

image

如果是第二組以上的帳號,在帳號上面右鍵就可以出現 Delete 的選項可以移除,但是第一組帳號不會有這個選項。

image

不只有 Mail,Calendar,Messaging,People 這個 App ,例如說進到 Store 也可以看到這個已經在登入狀態了

image

也就是說現在全部的 App 都有帳號的權限,也可以同步最新的訊息,而 Windows 8 居然連儲存我的密碼勾選都沒有出現就默默幫你做掉這些事。

移除被綁定的 Windows Live ID (WLID)

直接從查詢進到

Control Panel > User Account And Family Safety > Credential Manager

image

這邊可以看到,第一次登入的帳號密碼都已經被 Windows 8 儲存下來了,而在 Metro App 環境也找不到相對應的移除功能。這邊再推出正式版本的時候應該會有再修正的動作,不然在 Metro App 下無法移除的話在平板只有 Metro App 介面就沒辦法做操作了。

觀察特定 IIS Application Pool 使用資源

其實是一個很常見的小技巧,不過不常用有的時候還是會忘記,在 IIS 下我們可能會執行多個 process 來處理多個 web Site ,那假如說今天某一個 Site 狀況不穩定的時候,怎麼用系統管理員觀察特定的 Site 。

image

在系統管理員中看到的都是 w3wp 的 process 這代表著一個個的 Application pool ,所以如果有多個 Web Site 共用 App Pool 就沒有辦法在這邊看出使用情況了,但是在系統管理員中的都是顯示 w3wp 雖然我們知道說這是代表 App Pool 的使用,可是並不知道說哪個對應到哪個 App Pool 。

系統管理員選擇顯示欄位

從顯示 > 選擇欄位,可以看到如下的畫面,在勾選 PID process Id 可以顯示出每一支 process 的 id,再利用這個欄位來做 App Pool 的對應。

image

IIS App Pool 顯示 PID (IIS6)

找到 process id 的對應之後接下來就是要顯示每支 App Pool 執行的 PID 這樣就可以找到每支 App Pool 使用的 CPU 還有記憶體資源。利用 IisApp.vbs 這一支內建的程式可以取得 App Pool PID。

image

這樣就可以跟系統管理員顯示的 w3wp.exe 做對應。

IIS App Pool 顯示 PID (IIS7)

如果是 IIS7 的話則是使用 appcmd list wp 來顯示對應的 PID

image

Metro Style Design

在 Metro Style 有很多概念都跟以往的 Windows 7 不一樣了,這也是微軟自從 Windows 95 以來最重大的改變,雖然其中經歷了這麼多版本,但是基本的操作原則還是跟隨著 Windows 95 的模式。而目前也是由於行動化裝置愈來愈普及,Metro UI 就是為了在行動裝置跟 PC 之間取得一個平衡,甚至於由行動化裝置來定義 PC 的規則。

image

Content Before Chrome

在 Metro UI 內容比框架還要重要,使用在意的是內容,並不是框架的功能

image

這是 windows 7 在使用者印象中的畫面,大家想到的都是工具列、邊框、卷軸列、放大縮小功能,印象最深刻的東西卻不是使用者真正關心的內容。Metro UI 的概念就是要讓最重要的內容被獲得最大的注意

image

所以微軟為了改變這個情況引用地下鐵站的告示牌的觀念,讓重要的資訊獲得最大的版面資源。

Layout

幫主要內容適當的留白,讓主要的內容能在第一眼就被看到

image

固定定義好的大小以及寬度,讓重要的主要內容更容易被注意到

image

Interactions

在互動的設計方面,雖然把內容的重要性放大,但是還是有一些不可或缺的功能,像是以往的右鍵選單、上一頁下一頁的導覽、還有搜尋跟設定這些必要的功能,在 Metro UI 下的作法是將功能隱藏起來,但是要讓使用者可以找的到他們。

App Bar

App Bar 有區分為上方的 App Bar 以及下方的 App Bar

Bottom App bar

在下方的 App Bar 放置功能的選單,有點類似於以往的右鍵選單

image

  • 當單一物件被選擇的時候可以操作的功能

  • 全域性的功能放置於右邊,內容相關功能置於左邊

Top App Bar

而在上方的 App Bar 則放置導覽的功能

image

像是回到上一頁、上一層之類的功能鍵,還有標題的部分

Flyout

image

針對比較特別的功能,微軟也定義置於 Flyout 之中,他其實有一點像 Pop up 但是是依附著原本的按鈕而顯示。而原本常常用 Pop up 來顯示的錯誤訊息也建議改用 inline 的方式來顯示。

Navigation

利用 Hubs > Sections > Details 的方式來架構

image

用最直覺的模式來操作,如果使用者對某個內容項目有興趣,只要點擊就能針對這個項目了解更多。

Sematic Zoom

假如當某一階層內容很多的時候,也可以利用手指收合的動作來將內容群組化,讓使用者容易找到想要的內容。

image

image

 

Design for Touch First

在  Metro UI 很重視觸控裝置的使用體驗,所以微軟也定義的多種手勢的功能,讓使用者體驗能夠更一致化,也讓已經習慣 Windows 8 的使用者能就更快上手使用這支 App

image

Design for Multiple Views

image

  • Minimum (1024*768)

  • WideScreen (1366*768+)

  • Snap View (Required)

  • Portrait

Snap

在 Metro UI 中也支援兩種程式一同在同一個畫面中,這樣就可以同時看到兩個關心的畫面,有可能一邊是股市畫面,而另一邊是 MSN 聊天的畫面。

image

image

  • 窄側的寬度是 320px 正好就是 windows Phone 7 的手機寬度

  • 在畫面寬度變動時候頁面狀態應該是被保留住的

  • 建議在必須全螢幕執行的程式(例如遊戲),或許可以顯示排行榜,或是乾脆就只顯示 Logo

Windows 8 Contract

Windows 8 也有內建了一些功能,在每個 App 執行狀態下都可以被使用

CharmsBarClock

Share

ShareFlyout

利用 Share 分享 App 的內容到其他地方,讓訊息更方便容易地被擴散。

Search

Search

Setting

SettingsFlyout

在每個 App 下去設定特定的設定選項,由於固定的位置,使用者會很容易找到這些重要的功能。

Tiles

image

Tile 就是一開始在 Metro 畫面中看到的程式圖示,等於是程式的門面。也可以設計能夠自行更新 Tiles 內容的稱為 Live Tile ,例如說項 mail 會在收到信件的時候更改顯示的收件夾數量,或是氣象。

image

Notifications

這個就是大家熟知的推播功能了

ToastTemplates

只顯示最重要的資訊,這樣使用者才不會因為太多不必要的訊息進而關掉 App 的推播功能。

Summary

這邊都是微軟建議的設計概念,一致化的模式可以讓使用者在各個 App 之間都能很快的上手,而且當你的 App 愈符合的時候,更能讓使用者容易去使用,因為 Windows 8 本身就是根據這套規則去開發的。而當開發者都照著這個規則走,使用者也會愈來愈喜歡使用 Windows 8,這看起來是 win-win 的局面。


Resource

Sysinternals Suite AccessEnum

Sysinternals Suite 是微軟推出的一套免費工具,裡面功能非常的多,而且主要是給開發或 IT 人員使用的,一般使用者通常不會有機會用到。

下載以及介紹頁面(en-US)

裡面的工具非常多,可以從 Windows 底層的 API 去取得第一手的資訊,會比 Windows 的管理介面獲得更多的訊息,雖然說沒有辦法點兩下就把問題處理掉,但是可以更快速的找出問題點。其實這套工具已經出了非常久了,但是一直都沒有用過,直到最近看到高手流暢的運用來分析解決問題,才知道這個工具。

AccessEnum

AccessEnum 這個工具是針對 Windows 權限掃描,直接執行會出現以下的畫面

image

右方按鈕可以選擇要檢查的是資料夾或是註冊檔,選擇好目錄之後直接點下 Scan 就會去掃描選擇的目錄,並且列出跟母目錄不同的項目,如果所選擇的部分全部都是繼承第一層目錄,那他就只會列出第一個項目而已,結果有區分為 Read & Write 的權限。

image

像上方這個查詢結果,上層的目錄有設定讀取的權限,可是子目錄的讀取權限卻是 Everyone ,這邊看起來是有被修改過。如果系統有被惡意竄改,也有可能掃瞄出一些蛛絲馬跡。或著是應該要應該要開放的權限卻不在清單中,也可以從這邊看出。

無法安裝 Windows 8 在 Virtual PC 上

自從 Windows 8 consumer preview 出了之後就很想安裝一台虛擬機器起來,但是如果使用 Virtual PC 來安裝的時候都會出現以下的錯誤畫面。

image

後來找了一些資料才發現,不是每種虛擬軟體都能支援安裝 Windows 8,這是因為 Windows 8 比起之前的版本需要掌控更多的硬體資訊。也就是說不能安裝的 Virtual PC 就是因為他太假了,而其他可以安裝的軟體則是假的太像了。

可安裝 Windows 8 虛擬軟體版本

  • Hyper-V in Windows Server 2008 R2
  • VMware Workstation 8.0 for Windows
  • VirtualBox 4.1.2 for Windows
  • parallels 7 on Mac (需安裝最新更新)

Parallels Desktop Update Allows In-Product Windows 8 Installation