Windows Developer Days – Windowsランタイム概要
1日目 14時~Windowsランタイム概要
新村 剛史 氏 – http://blogs.msdn.com/b/tashinmu/
Windows8のネイティブである、WinRTについての説明。
Windows8では、Win32に代わるものとしてWinRTが追加された。
メトロアプリではWinRTを使うことになる。
WinRTは今までの.NetFramework、Win32、JavaScriptから使う事ができる。
これは言語プロジェクションが(Language Projection)各環境(C#,C++,js)←→WinRTの橋渡しを行うから可能となった。
以下、セッション中のキーワードメモ
・WinRTが新たに追加。(従来のWin32+.NET+WinRTに)
・Windows8ではWinRTがネイティブになる。(Win32→WinRTへ)
→ARM版Windows8でも動くようにとの事と理解した。
・.言語プロジェクション
→NETからWinRTを見ると.NETのクラスのように見える。クラスとして使う事もできる。
→.NET→Win32を扱うときのような、p/invokeなんかが無くなる。
→.NET→WinRTへの型変換はWindowsメタデータがマッピングを行っている。
→JavaScriptからも同様にWinRTを使う事が可能
・アプリ実行環境
メトロはストアを通じてのみインストールされる。(企業内などエンタープライズは別扱い)
アプリはユーザー単位。(同マシンでもユーザーが違えばインストールされたとみなされない)
Windowsストアからダウンロードされたものは安全であるとの保障
→アプリマニフェストの存在。
・プロセスの状態遷移
アプリ切り替えでバックに下がったアプリは一時停止される。
CPUもネットワークも切断される。
メモリが圧迫したらアプリは強制終了される。
対処として実行状態を保存する必要がある。
サスペンドに入るときに保存する。
保存時間は5秒以内で処理を完遂が条件だが、2秒以内が推奨
これは低速度のマシンでも安全にデータ保存が成功するようにとのガイドライン
詳しくは別セッションで聞いて欲しいとの事(別で受けたので、別記事で書く予定)
・プロセス間の連携
コントラクトを経由してデータの受け渡し
アプリ固有のデータはアプリデータ領域へ保存される。