| その他の名前 | ウィンRT |
|---|---|
| 開発者 | マイクロソフト |
| 初回リリース | 2012年10月26日 |
| 書かれた | C++ |
| エンジン | コンポーネント オブジェクト モデル |
| オペレーティング·システム | マイクロソフトウィンドウズ |
| タイプ | アプリケーションバイナリインターフェース、アプリケーションプログラミングインターフェース、外部関数インターフェース |
| Webサイト | https://docs.microsoft.com/en-us/windows/apps/ |
Windows ランタイム( WinRT ) は、2012 年にWindows 8およびWindows Server 2012で初めて導入された、プラットフォームに依存しないコンポーネントおよびアプリケーション アーキテクチャです。C++ で実装されており、 C++ ( C++/WinRT、C++/CX 、または WRL 経由)、Rust/WinRT、Python/WinRT、JavaScript - TypeScript、およびマネージ コード言語C#とVisual Basic (.NET) (VB.NET) での開発を公式にサポートしています。
WinRTは、従来の意味でのランタイムではなく、COMに基づく言語に依存しないアプリケーションバイナリインターフェイスであり、オブジェクト指向APIを複数の言語から使用できるようにします。サービスは通常、型のアクティブ化などの本格的なランタイムによって提供されます。[1]つまり、WinRTは「API配信システム」です。 Windowsランタイムを使用するアプリは、セキュリティと安定性を高めるためにサンドボックス環境内で実行でき、 x86とARMの両方をネイティブにサポートできます。[2] [3] WinRTコンポーネントは、ネイティブ言語、マネージ言語、スクリプト言語など、複数の言語とAPI間の相互運用性を考慮して設計されています。 Windowsによって提供されるWinRT ABIを使用する組み込みAPIは、一般にWinRT APIと呼ばれますが、誰でも独自のAPIにWinRT ABIを使用できます。
テクノロジー
WinRTはプログラミング言語C++ [4]で実装されており、設計上オブジェクト指向となっています。 [4]その基礎となる技術であるWindows API (Win32 API) は、主にC言語で書かれています。[5]これは、 COM ( Component Object Model )に基づくアンマネージ アプリケーションバイナリインターフェイスであり、COMと同様に複数の言語からのインターフェイスを可能にします。ただし、API定義は、ECMA 335メタデータ形式でエンコードされたファイルに格納されており、 .NET Frameworkもいくつかの変更を加えてこれを使用します。ネイティブコードで実装されたWinRTコンポーネントの場合、メタデータファイルにはメソッド、クラス、インターフェイス、列挙体の定義のみが含まれ、実装は別のDLLで提供されます。[6] [7] [8]この共通メタデータ形式により、 P/Invokeよりも簡単な構文で.NETアプリからWinRT APIを簡単に使用できるようになります。[9] [信頼できない情報源? Windows は、XAML ベースのWinUIライブラリからカメラ、マイクなどのデバイス アクセス
まですべてを提供する、WinRT ABI 上に構築された一連の組み込み API を提供します。.winmd
以前のC++/CX (コンポーネント拡張) 言語は、C++/CLI構文を一部借用しており、C++ での従来の COM プログラミングに比べてプログラマーに見えるグルーコードが少なく、型の混在に関する C++/CLI に比べて制限が少ない WinRT コンポーネントを記述および使用するために導入されました。C++/CX のコンポーネント拡張は、API 境界でのみ使用することが推奨されており、他の目的では使用しないでください。[10]通常の C++ (COM 固有の規律を持つ) も、WinRT コンポーネントを使用してプログラミングするために使用できます。[11] Windows ランタイム C++ テンプレート ライブラリ (WRL) の助けを借りて、これはActive Template Library がCOM に提供するものと目的が似ています。[12] 2019 年に、Microsoft は C++/CX を非推奨にし、C++/WinRTヘッダー ライブラリを採用しました。[13]
ほとんどのWinRTアプリケーションはサンドボックス内で実行され、重要なOS機能や基盤となるハードウェアにアクセスするには明示的なユーザー承認が必要です。デフォルトでは、ファイルへのアクセスは、ドキュメントやピクチャのディレクトリなど、いくつかの事前に決められた場所に制限されています。[14]
WinRTアプリケーションは、.appx、後に.msixファイル形式でパッケージ化されます。Open Packaging Conventionsに基づいて、XMLファイルが追加されたZIP形式を使用します。 [15] WinRTアプリケーションは主にMicrosoft Storeというアプリケーションストアを通じて配布され、ユーザーはそこでWindowsアプリ(Windows Storeアプリと呼ばれる)を購入してダウンロードできます。当初、WinRTアプリは、 Windowsドメインの一部であるか、Microsoftから取得した特別なアクティベーションキーを備えたWindows 8またはRTシステムのWindowsストアの外部からのみサイドロードできました。 [16] [17] [18] [19]ただし、これらの制限はWindows November 10 Updateで解除され、ユーザーは設定を有効にすることで、信頼できる証明書で署名されたアプリを自由にサイドロードできます。[20]
Win32 からの大きな変更点として、また.NET Framework 4.5と同様に、完了までにかなりの時間がかかることが予想されるほとんどの API は非同期として実装されています。Windows ランタイムの非同期関数を呼び出すと、タスクは別のスレッドまたはプロセスで開始され、関数はすぐに制御を戻すため、結果を待つ間にアプリは他のタスクを実行できます。[21]非同期モデルには、新しいプログラミング言語構造が必要です。各言語は、非同期 API を使用する独自の方法を提供します。非同期アクセスを必要とする組み込み API の部分には、画面上のメッセージとダイアログ、ファイル アクセス、インターネット接続、ソケット、ストリーム、デバイスとサービス、カレンダー、連絡先、予定が含まれます。
サービス
メタデータ
メタデータは、WinRT ABI を使用して記述された API を記述します。これは、プログラミング言語間で共有できるオブジェクト指向コードを記述できるようにするプログラミング モデルを定義し、リフレクション プログラミング(リフレクション)などのサービスを有効にします。
MicrosoftのC++専門家であるHerb Sutter氏は、2011 BuildカンファレンスのC++に関するセッションで、WinRTメタデータはCLIメタデータと同じ形式であると説明しました。[10]ネイティブコード(つまり、プロセッサ固有のマシンコード)にはメタデータを含めることができないため、通常のCLIアセンブリのように反映できる別のメタデータファイルに格納されます。[22] CLIメタデータと同じ形式であるため、WinRT APIは、 .NET APIであるかのように マネージCLI言語から使用できます。
型システム
WinRT には、メタデータに基づいて構築された、豊富なオブジェクト指向の クラスベースの型システムがあります。これは、.NET フレームワーク内の対応する構成要素 (クラス、メソッド、プロパティ、デリゲート、イベント)を持つ構成要素をサポートします。
COM と比較して WinRT に追加された主要な機能の 1 つは、クロスアプリケーション バイナリ インターフェイス(ABI) である .NET スタイルのジェネリックです。インターフェイスとデリゲートだけがジェネリックにすることができ、それらのランタイム クラスとメソッドはジェネリックにできません。ジェネリック インターフェイスは、パラメーター化されたインターフェイスとも呼ばれます。C++/CX では、キーワードを使用して、genericキーワードの構文に非常によく似た構文で宣言されますtemplate。WinRT クラス (ref クラス) も C++ テンプレートを使用してジェネリック化できますが、メタデータ内でジェネリック性を保持する WinRT ジェネリックとは異なり、テンプレートのインスタンス化だけが .winmd メタデータにエクスポートできます (名前のマングリングが多少行われます)。WinRT は、 C++ 標準ライブラリのインターフェイスと同等のジェネリックコンテナー用のインターフェイス セットも提供しており、言語は相互 (前後) 変換関数もいくつか提供しています。.NET 言語 (C# や VB など) および JavaScript での WinRT コレクションの使用は、C++ よりも透過的であり、自然な同等物への自動マッピングがバックグラウンドで行われます。マネージ言語で WinRT コンポーネントを作成する場合、いくつかの追加の COM スタイルのルールに従う必要があります。たとえば、.NET フレームワークのコレクション型は戻り値の型として宣言できませんが、コンポーネント境界で使用できるのは、それらが実装する WinRT インターフェイスのみです。
WinRT コンポーネント
WinRT をターゲットとしてコンパイルされたクラスはWinRT コンポーネントと呼ばれます。これらは、サポートされている任意の言語で、サポートされている任意のプラットフォーム用に記述できるクラスです。鍵となるのはメタデータです。このメタデータにより、他の WinRT 言語からコンポーネントとのインターフェイスが可能になります。ランタイムでは、.NET Framework で構築された WinRT コンポーネントが、定義されたインターフェイス タイプまたは .NET タイプ インターフェイスを使用する必要があり、これらは最初に指定されたものに自動的にマップされます。継承は、XAML クラスを除き、マネージ WinRT コンポーネントではまだサポートされていません。[23]
プログラミングインターフェース
WinRT ランタイムを対象とするプログラムとライブラリは、さまざまなプラットフォームとプログラミング言語から作成および使用できます。特に、C / C++ (WinRT の概念に対するファーストクラスのサポートを提供する言語拡張機能、または標準 C++ でコードを記述できる低レベルのテンプレート ライブラリのいずれか)、.NET ( C#およびVisual Basic (.NET) (VB.NET))、およびJavaScript です。これはメタデータによって可能になります。WinRT 用語では、言語バインディングは言語プロジェクションと呼ばれます。
C++ (C++/WinRT、コンポーネント拡張、WRL)
標準 C++ は、 WinRT プラットフォームの第一級オブジェクトです。Windows 10 バージョン 1803 以降、Windows SDK には C++/WinRT が含まれています。C++/WinRT は、Windows ランタイム (WinRT) API 用の完全に標準的な最新の C++17 言語プロジェクションであり、ヘッダー ファイル ベースのライブラリとして実装され、最新の Windows API への第一級アクセスを提供するように設計されています。C++/WinRT を使用すると、標準に準拠した任意の C++17 コンパイラを使用して Windows ランタイム API を作成および使用できます。WinRT はネイティブ プラットフォームであり、ネイティブ (および標準) C++ コードをサポートしているため、C++ 開発者は既存のネイティブ C/C++ ライブラリを再利用できます。C++/WinRT には言語拡張機能はありません。
C++ から WinRT を使用するには、他に 2 つの従来のオプションがあります。Windows ランタイム C++ テンプレート ライブラリ (WRL)、ATLスタイルのテンプレート ライブラリ ( Windows テンプレート ライブラリまたは WTLに類似)、および C++/CLI に似たC++/CX (コンポーネント拡張機能付き C++) です。[24] Microsoft の内部消費要件により、WRL は例外フリーであり、戻り値の規律はCOM と同様にHRESULTベースです。 [25]一方、C++/CX は、WinRT への呼び出しを、エラー チェックを実行し、必要に応じて例外をスローするコードでラップします。[26]
C++/CX には、プラットフォームとその型システムとの統合を可能にする拡張機能がいくつかあります。構文はC++/CLIの構文に似ていますが、ランタイムと統合されるネイティブ (ただし標準ではない) コードとメタデータを生成します。たとえば、WinRT オブジェクトはref new、C++/CLI の に対応するで割り当てることができますgcnew。ハット演算子は^意味を保持しますが、呼び出し元と呼び出し先の両方が C++ で記述され、同じプロセスに存在する場合、ハット参照は単に仮想メソッド テーブル(vtable、VMT) への vptr へのポインターです。[26]
C++/CX とともに、従来の C++ COM プログラミングに関連して、これも .NET からヒントを得た部分クラスがあります。これにより、インスタンスWinRT XAMLコードをツールによって C++ コードに変換し、人間が記述したコードと組み合わせて完全なクラスを生成できます。また、クラス実装のマシン生成部分と人間が編集した部分を別々のファイルに明確に分離できます。
。ネット
.NET FrameworkとCommon Language Runtime (CLR) は、サブプラットフォームとして WinRT に統合されています。メタデータ形式とライブラリを通じてエコシステムの標準に影響を与え、設定してきました。CLR は、JIT コンパイルコードやガベージ コレクションなどのサービスを提供します。.NET 言語を使用する WinRT アプリケーションは、XAML ベースのWinUIを使用し、主に C#、VB.NET、および初めて XAML で記述され、ネイティブ コードにはC++/CX を使用しています。まだ正式にはサポートされていませんが、プログラムは他の .NET 言語で記述することもできます。.NET 5 では、Microsoft は組み込みの WinRT サポートを削除し、代わりに CsWinRT を作成しました。これは、C++/WinRT の動作に似た Windows ランタイム API にアクセスするための相互運用コードを生成するツールです。[27] [28]
制限事項
マネージ .NET 言語で構築された WinRT コンポーネントで定義されたクラスは、 として宣言する必要があるsealedため、 から派生することはできません。ただし、他の場所で定義されたシールされていない WinRT クラスは、.NET で から継承したり、仮想メソッドをオーバーライドしたりすることはできますが、継承されたマネージ クラスはシールされている必要があります。
他の言語とインターフェースするメンバーには、WinRT型またはこれらに変換可能なマネージ型のシグネチャが必要です。[23]
JavaScript
WinRT アプリケーションは、コード ビハインドでJavaScript を含むHTML を使用してコーディングすることもできます。これは、 Internet Explorerでも使用されているTridentレンダリング エンジンとChakra JavaScript エンジンを使用して実行されます。WinRT アプリを JavaScript でコーディングする場合、その機能は JavaScript の命名規則に従うように調整され、名前空間も JavaScript オブジェクトにマップされます。
その他の言語
Microsoft は、WinRT API を C++ 以外の言語に投影するプロセスを進めています。1 つの例は Rust/WinRT です。これは、Rustで記述されたプログラムがWinRT API を使用および作成するためのインターフェイスです。[29] Rust/WinRT は、従来の Windows デスクトップと UWP アプリ モデルを調和させるための Microsoft の取り組みであるWindows App SDK (旧 Project Reunion)の一部です。 [30]
橋
ユニバーサル Windows プラットフォーム(UWP)の導入により、このプラットフォームには多くの API ブリッジが導入され、元々他のプラットフォーム向けに開発されたプログラムを UWP の機能を活用しながら簡単に移植できるようになりました。Microsoft は、Android (2016 年以降廃止)、iOS ( Cocoa Touch )、Progressive Web Apps、Silverlight、および従来の Windows デスクトップ アプリ ( Windows App SDKの MSIX パッケージを使用) 向けのブリッジを提供してきました。
翻訳
WinRT には、イマーシブ インターフェイス API などの Windows 8 の機能を開発者向けに公開するクラス ライブラリ形式のアプリケーション プログラミング インターフェイス(API)が付属しています。これは、サポートされている任意の言語からアクセスして使用できます。
ランタイムクラス
Windows ランタイム クラスは、 XAMLパーサーからカメラ機能までの すべての機能へのアクセスを提供する SDK のセットです。SDK はネイティブ C/C++ ライブラリ (アンマネージ) として実装されます。
命名規則
API 内のコンポーネント (クラスおよびその他のメンバー) の命名規則は、キャメル ケース(具体的には PascalCase) を使用する .NET 命名規則の影響を強く受けます。Microsoft では、他に指定がない場合は、ユーザーにこれらの規則に従うことを推奨しています。
これらの規則は、JavaScript などの一部の言語では異なる方法で投影され、JavaScript ではその規則に変換され、その逆も行われます。これは、プログラミング言語に関係なく、ネイティブで一貫したエクスペリエンスを提供するためです。
制限とルール
Windows ランタイムはさまざまな言語に投影されるため、すべての言語をホストできるように、基本的なデータ型にいくつかの制限があります。プログラマーは、パブリックアクセスで使用される場合(メソッドパラメーター、メソッドの戻り値、プロパティなど)のこれらの型の動作に注意する必要があります。[31]
- 基本タイプ
- .NET 言語と C++ には、さまざまな数値を表す豊富なデータ型が存在します。
- JavaScript では、
Number最大 53 ビットの精度しか表現できません。 - WinRT では、.NET および C++ に比べて数値データ型が唯一欠けているのは 8 ビット符号付き整数です。JavaScript 開発者は、WinRT のコーディング中に大きな数値を扱う際には注意が必要です。
- 文字列
- 文字列は .NET と JavaScript では不変ですが、C++ では可変です。
- C++によってWinRTに文字列として渡されたヌルポインタは空の文字列に変換されます
- .Netでは、WinRTに文字列として渡されるnullは空の文字列に変換されます。
- JavaScript では、WinRT に文字列として渡される null は、 という単語を含む文字列に変換されます
null。これは、JavaScript のキーワードが null オブジェクトとして表されるためですnull。JavaScript から WinRT に渡す場合も同様の結果になりますundefined。 - 構造体
- .NET および C++ では、構造体は値型であり、そのような構造体には任意の型を含めることができます。
- JavaScript は構造体を直接サポートしません。
- WinRT では、数値、文字列、その他の構造体など、値のセマンティクスを持つ型を含む場合にのみ構造体の使用が許可されます。ポインターまたはインターフェイス参照は許可されません。
- 参考文献
- .NET では、オブジェクトは参照によって渡されますが、数値と構造体は値によって渡されます。
- C++ では、すべての型を参照または値で渡すことができます。
- WinRTでは、インターフェースは参照渡しされますが、他のすべての型は値または参照で渡すことができます。[2]
- 配列
- .NET、C++、JavaScript では、配列は参照型です。
- WinRT では、配列は値型であり、非常に制限されています。
- イベント
- .NET および C++ では、クライアントは演算子を使用してイベントをサブスクライブします
+=。 - JavaScript では、
addEventListener関数または設定on<EventName>プロパティを使用してイベントをサブスクライブします。 - WinRT では、すべての言語が独自の方法を使用してイベントをサブスクライブできます。
- コレクション
- 一部の .NET コレクションは WinRT コレクションに直接マップされます。
- WinRTベクター型は配列に似ており、配列構文を使用してそれらを使用します。
- WinRTマップ型はキー/値のペアのコレクションであり、.NET 言語では Dictionary として投影されます。
- メソッドのオーバーロード
- すべてのWinRT言語(.NET、C++、JavaScript)はパラメータのオーバーロードをサポートしています。
- .NET と C++ も型のオーバーロードをサポートしています。
- WinRT では、オーバーロードにはパラメータ番号のみが使用されます。
- 非同期
- すべての WinRT メソッドは、50 ミリ秒を超える時間がかかるメソッドが非同期メソッドになるように設計されています。
- 非同期メソッドを区別するための確立された命名パターンは です
<Verb>[<Noun>]Async。完全なランタイム ライブラリでは、50 ミリ秒より長く続く可能性のあるすべてのメソッドは、非同期メソッドとしてのみ実装されます。
Windows Phone ランタイム
Windows Phone 8.1 は、Windows Phone Runtimeと呼ばれるバージョンの Windows Runtime を使用します。これにより、C# および VB.NET でのアプリケーションの開発、および C++/CX での Windows Runtime コンポーネントの開発が可能になります。[32] WP8 ではサポートが限定的でしたが、プラットフォームは最終的にWindows Phone 8.1でWindows 8.1と統合されました。
ウィンドウズフォン8
Windows Phone 8では、 Windows Phone Runtimeを介した Windows Runtime コンポーネントの開発と使用に対するサポートが限定されています。コアオペレーティングシステム機能を処理する Windows 8 の Windows Runtime API の多くは、Windows Phone 8 に移植されています。 [33]ゲーム開発業界からの要望により、C++/CX と DirectX を使用したネイティブゲームの開発のサポートが追加されました。
ただし、Windows Phone XAML フレームワークは、下位互換性のために、Windows Phone 7 と同じMicrosoft Silverlightフレームワークに基づいています。そのため、2016 年現在[アップデート]、C++/CX での XAML 開発は不可能です。HTML5 または WinJS を使用した開発は、Windows Phone 8 ではサポートされていません。
ウィンドウズフォン8.1
Windows Phone 8.1 の Windows ランタイム サポートは、Windows 8.1 と統合されます。このリリースでは、 WinRT XAMLのサポート、 C++/CXおよびHTML5 - JavaScriptの言語バインディングを含む完全な Windows ランタイム API がプラットフォームに導入されます。また、 Windows Phone と Windows の 8.1 バージョン間でアプリがコードを共有できるようにする ユニバーサル アプリと呼ばれるプロジェクト タイプもあります。
Windows Phone 8 Silverlight Framework が更新されました。[いつ? ] Windows ランタイムの新機能の一部を活用できます。
Windows Phone ランタイムは、以前は Silverlight XAP を使用していましたが、Windows 8 からはAppXパッケージ形式を使用します。
参考文献
- ^ Zhang, Yi (2017 年 3 月 15 日)。「Windows Runtime はランタイムではありません」。yizhang82 のブログ。2021 年6 月 14 日閲覧。
- ^ ab Avram, Abel (2011 年 9 月 21 日)。「Windows ランタイムの設計の詳細」。InfoQ。
- ^ Klug, Brian; Smith, Ryan (2011 年 9 月 13 日)。「Microsoft Build: Windows 8、プレベータ プレビュー」。AnandTech。
- ^ ab Michael, Mayberry (2012). WinRT Revealed . ニューヨーク市: Apress . p. 3. ISBN 978-1-4302-4585-8。
- ^ 「Win32 アプリケーションの作成 (C++)」。MSDN。Microsoft。2014年1月 12日閲覧。
- ^ 「Windows メタデータ (WinMD) ファイル」。UWP アプリの API リファレンス。Microsoft Docs。2019年7 月 20 日閲覧。
- ^ De Icaza、ミゲル (2011 年 9 月 15 日)。 「WinRT の謎を解き明かす」。Miguel de Icaza の個人ブログ。自費出版。2014 年1 月 15 日に取得。
- ^ 「WINMD Files Under the Hood」。CodeProject。2012年10月15日。 2021年6月14日閲覧。
- ^ 「C# から WinRT API を呼び出す場合の COM マーシャリング オーバーヘッドとは何ですか?」。MSDN フォーラム。自費出版。2011 年 9 月 20 日。2014 年 1 月 16 日時点のオリジナルよりアーカイブ。2014年1 月 15 日閲覧。
- ^ ab "C++ から Windows ランタイムを使用する | Build2011 | Channel 9". Channel9.msdn.com. 2011 年 9 月 14 日。2011 年 10 月 12 日時点のオリジナルよりアーカイブ。2012 年4 月 24 日閲覧。
- ^ Sivakumar, Nish (2011 年 9 月 29 日)。「Visual C++ と WinRT/Metro - いくつかの基礎 - CodeProject®」。Codeproject.com。2012年4 月 24 日閲覧。
- ^ 「C++ から Windows ランタイムを使用する | Build2011 | Channel 9」。Channel9.msdn.com。2011 年 9 月 14 日。2011 年 10 月 12 日時点のオリジナルよりアーカイブ。2012年4 月 24 日閲覧。
- ^ 「C++/WinRT の概要 - Windows UWP アプリケーション」。docs.microsoft.com。Microsoft。2022年 11 月 18 日。
- ^ lastnameholiu. 「ファイル アクセス許可 - UWP アプリケーション」。docs.microsoft.com。2020年8 月 8 日閲覧。
- ^ 「シンプルで安全なアプリ パッケージの設計 - APPX」。Windows 8 アプリ開発者ブログ。2013 年12 月 30 日閲覧。
- ^ 「アプリを追加および削除する方法」。TechNet。Microsoft。2012年 5 月 31 日。2012年10 月 4 日に取得。
ドメインに参加していない Windows 8 Enterprise コンピューターまたは Windows® 8 Pro コンピューターでサイドローディングを有効にするには、サイドローディング製品ライセンス認証キーを使用する必要があります。Windows® RT デバイスでサイドローディングを有効にするには、サイドローディング製品ライセンス認証キーを使用する必要があります。サイドローディング製品ライセンス認証キーの詳細については、「Microsoft ボリューム ライセンス」を参照してください。
- ^ 「Windows 8: The Metro Mess」。PC Magazine。2018年11月18日時点のオリジナルよりアーカイブ。 2012年9月8日閲覧。
- ^ 「Microsoft が Windows 8 の「Metro スタイル」アプリを指すために「Modern UI スタイル」を使用するようになりました」 。2012年8 月 10 日閲覧。
- ^ 「Microsoft Store アプリとは何ですか?」 Windows デベロッパー センター2012 年10 月 1 日閲覧。
- ^ 「サイドローディングとは何か、Windows 10 でアプリをサイドロードする方法は? [詳細]」。Silicophilic . 2019 年 7 月 27 日. 2021 年6 月 14 日閲覧。
- ^ 「非同期プログラミング (Windows ストア アプリ)」。MSDN。Microsoft。2014年1月 12日閲覧。
- ^ “.NET が新たな命を吹き込まれる”. 2011 年 9 月 24 日時点のオリジナルよりアーカイブ。2011 年9 月 16 日閲覧。
- ^ ab "C# および Visual Basic から Windows ランタイムを使用する | Build2011 | Channel 9". Channel9.msdn.com. 2011 年 9 月 14 日. 2012 年4 月 24 日閲覧。
- ^ 「C++/CX 設計の内部 - Visual C++ チーム ブログ - サイト ホーム - MSDN ブログ」。Blogs.msdn.com。2011 年 10 月 20 日。2012年4 月 24 日閲覧。
- ^ Charles (2011 年 10 月 26 日)。「GoingNative 3: The C++/CX Episode with Marian Luparu | C9::GoingNative | Channel 9」。Channel9.msdn.com。2012 年 5 月 7 日時点のオリジナルよりアーカイブ。2012年4 月 24 日閲覧。
- ^ ab //Build の Deon Brewis による Metro スタイル アプリの C++ の仕組み
- ^ 「CSWinRT: .NET5 アプリケーションから Windows WinRT API を呼び出す方法」。TECHCOMMUNITY.MICROSOFT.COM 2020年 9 月 22 日。2021年6 月 14 日閲覧。
- ^ Mayberry, Michael (2012)、「WinRT を使用した .NET アプリの構築」、WinRT Revealed、カリフォルニア州バークレー: Apress、pp. 29–46、doi :10.1007/978-1-4302-4585-8_3、ISBN 978-1-4302-4584-1、 2021年6月14日閲覧
- ^ “microsoft/winrt-rs”. GitHub . 2021年9月28日.
- ^ 「microsoft/WindowsAppSDK: Windows App SDK は、NuGet 経由で提供される下位互換性サポートを含む最新の Windows UI、API、プラットフォーム機能を使用して、すべての Windows デスクトップ アプリを強化します」。GitHub。2021年10月 12 日閲覧。
- ^ 「ハイブリッド言語 Metro スタイル アプリケーションを作成する際の 10 のヒント - Build2011 - Channel 9」。Channel 9。Microsoft。
- ^ 「 Windows Phone API リファレンス」。Windows Phone API リファレンス。Microsoft。2014年 7 月 21 日。
- ^ 「Windows Phone ランタイム API」。microsoft.com。Microsoft。2014年 7 月 21 日。
外部リンク
- 公式サイト
