コンテンツにスキップ

「ユニバーサルWindowsプラットフォーム」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
のさだ和泉 (会話) による ID:74672080 の版を取り消し
タグ: 取り消し
Cewbot (会話 | 投稿記録)
m Bot作業依頼: ブランドとしてのXboxの記事作成に伴うリンク修正 - log
17行目: 17行目:


== 歴史 ==
== 歴史 ==
[[マイクロソフト]]製のWindows OSやデバイスは、デスクトップPCやノートPCなどPC向けのWindows、サーバー向けの[[Windows Server]]、組み込み向けの[[Windows Embedded]] ([[Windows CE]])、[[スマートフォン]]向けの[[Windows Mobile]]や[[Windows Phone]]、そしてゲーム専用機の[[Xbox]]シリーズなど、デバイスごとに異なるカーネルコードから構築されたOSがそれぞれ用意され、また[[Application Programming Interface|API]]や[[ソフトウェア開発キット|SDK]]、アプリケーションフレームワークもOSごとに異なっていた。PC/サーバーに関しては[[Windows Vista]]/[[Windows Server 2008]]においてカーネルコードの共通化<ref>[https://technet.microsoft.com/ja-jp/magazine/2008.03.kernel.aspx 特集 : Windows Server 2008: Windows Server 2008 カーネルの変更について]</ref> <ref>[http://builder.japan.zdnet.com/os-admin/sp_history-of-windows-2009/20402894/ Windowsの歴史 Windows Server 2008編:同じカーネルを持つ「Vista」とは対照的に早くから支持を得たサーバOS - builder by ZDNet Japan]</ref>が図られたが、それ以外のプラットフォームでは依然として分断が続いていた。
[[マイクロソフト]]製のWindows OSやデバイスは、デスクトップPCやノートPCなどPC向けのWindows、サーバー向けの[[Windows Server]]、組み込み向けの[[Windows Embedded]] ([[Windows CE]])、[[スマートフォン]]向けの[[Windows Mobile]]や[[Windows Phone]]、そしてゲーム専用機の[[Xbox (ゲーム機)|Xbox]]シリーズなど、デバイスごとに異なるカーネルコードから構築されたOSがそれぞれ用意され、また[[Application Programming Interface|API]]や[[ソフトウェア開発キット|SDK]]、アプリケーションフレームワークもOSごとに異なっていた。PC/サーバーに関しては[[Windows Vista]]/[[Windows Server 2008]]においてカーネルコードの共通化<ref>[https://technet.microsoft.com/ja-jp/magazine/2008.03.kernel.aspx 特集 : Windows Server 2008: Windows Server 2008 カーネルの変更について]</ref> <ref>[http://builder.japan.zdnet.com/os-admin/sp_history-of-windows-2009/20402894/ Windowsの歴史 Windows Server 2008編:同じカーネルを持つ「Vista」とは対照的に早くから支持を得たサーバOS - builder by ZDNet Japan]</ref>が図られたが、それ以外のプラットフォームでは依然として分断が続いていた。


2006年には[[Microsoft Windows XP|Windows XP]]/Windows Vistaおよび[[Xbox 360]]上で動作するゲームアプリケーションを統一的に開発することのできるインディーズ向けの開発・実行環境として[[XNA Game Studio]]/XNA Frameworkがリリースされた。ただしXNAは.NET Framework/[[.NET Compact Framework]]上で動作し、また開発にはC#言語を必要とするため、ゲーム開発会社が手掛けるパッケージソフトのようにC++言語を使ったネイティブコードによる開発や[[アセンブラ]]によるチューニングは行なうことができず、パフォーマンスが重要となるゲーム開発では大きな制約となった<ref>[http://game.watch.impress.co.jp/docs/20080219/xna.htm GDC 2008 チュートリアルセッションレポート“XNA Game Studio Developer Day”]</ref>。XNAはその後[[Windows Phone 7]]で動作するゲームの開発にも対応した。
2006年には[[Microsoft Windows XP|Windows XP]]/Windows Vistaおよび[[Xbox 360]]上で動作するゲームアプリケーションを統一的に開発することのできるインディーズ向けの開発・実行環境として[[XNA Game Studio]]/XNA Frameworkがリリースされた。ただしXNAは.NET Framework/[[.NET Compact Framework]]上で動作し、また開発にはC#言語を必要とするため、ゲーム開発会社が手掛けるパッケージソフトのようにC++言語を使ったネイティブコードによる開発や[[アセンブラ]]によるチューニングは行なうことができず、パフォーマンスが重要となるゲーム開発では大きな制約となった<ref>[http://game.watch.impress.co.jp/docs/20080219/xna.htm GDC 2008 チュートリアルセッションレポート“XNA Game Studio Developer Day”]</ref>。XNAはその後[[Windows Phone 7]]で動作するゲームの開発にも対応した。

2020年1月1日 (水) 09:47時点における版

ユニバーサルWindowsプラットフォーム(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム、略称:UWP)とは、異なるデバイス向けに提供されるMicrosoft Windows用のアプリケーションソフトウェアを共通の基盤上で動作させることのできる、統合されたプラットフォームのことである。

概要

ユニバーサルWindowsプラットフォームは、Windows 10にて導入された、様々なデバイス上で動作するアプリケーションを単一のフレームワーク上に統合する仕組みである。ターゲットデバイスを設定することで、すべてのデバイスで共通となる基本APIセットに対してデバイス固有のAPIセットを付加する形で、デバイス固有の機能を使ったUWPアプリを開発することができる[1]

UWPアプリの開発には、主にC#/VB.NET/C++[注釈 1]言語とXAML、もしくはJavaScript言語とHTMLを用いる。ベースとなるフレームワークはWindowsランタイム (WinRT) だが、デバイスに応じてWindows APIDirectX、そして.NET Frameworkを用いることも可能である。

UWPアプリに対応する最初の統合開発環境Visual Studio 2015である。Visual StudioにてUWPアプリのプロジェクトをリリース用にビルドすると、「.NETネイティブ」と呼ばれる技術により、C#/VB.NETによって記述されたマネージコードは共通中間言語からターゲットとなるプロセッサー (CPU) アーキテクチャ固有のバイナリ(x86/x64/ARM)にコンパイルされる[2]。これにより、アプリケーションのパフォーマンス向上やランタイム依存関係の排除といったメリットが享受できるようになる。

UWPアプリの開発環境としてフルサポートされるOSはWindows 10のみだが、Visual Studio 2015ではUWPアプリ用シミュレーターのほかにエミュレーターもサポートされ、Windows 8.1ではクロスコンパイル[注釈 2]、リモートWindows 10上での実行、およびエミュレーター上での実行がサポートされる。

また、「Windows Bridge」と呼ばれる、iOSAndroid向けのアプリケーションプロジェクトをUWPアプリとして変換・ポーティングする仕組みや、従来のデスクトップアプリケーションをUWPアプリとしてパッケージする仕組みの提供も予定されている[3]。ただし、「Windows Bridge for Android」に関しては、2016年2月に開発プロジェクトの中止が発表された[4]

歴史

マイクロソフト製のWindows OSやデバイスは、デスクトップPCやノートPCなどPC向けのWindows、サーバー向けのWindows Server、組み込み向けのWindows Embedded (Windows CE)、スマートフォン向けのWindows MobileWindows Phone、そしてゲーム専用機のXboxシリーズなど、デバイスごとに異なるカーネルコードから構築されたOSがそれぞれ用意され、またAPISDK、アプリケーションフレームワークもOSごとに異なっていた。PC/サーバーに関してはWindows Vista/Windows Server 2008においてカーネルコードの共通化[5] [6]が図られたが、それ以外のプラットフォームでは依然として分断が続いていた。

2006年にはWindows XP/Windows VistaおよびXbox 360上で動作するゲームアプリケーションを統一的に開発することのできるインディーズ向けの開発・実行環境としてXNA Game Studio/XNA Frameworkがリリースされた。ただしXNAは.NET Framework/.NET Compact Framework上で動作し、また開発にはC#言語を必要とするため、ゲーム開発会社が手掛けるパッケージソフトのようにC++言語を使ったネイティブコードによる開発やアセンブラによるチューニングは行なうことができず、パフォーマンスが重要となるゲーム開発では大きな制約となった[7]。XNAはその後Windows Phone 7で動作するゲームの開発にも対応した。

2009年にリリースされたWindows 7では、マルチタッチAPIが標準搭載され、タッチパネルを活用したデスクトップアプリケーションを開発できるようになった[8]が、OS全体レベルでのモバイル機器への最適化やモバイルOSとのプラットフォームの共通化は行なわれていなかった。

2012年にリリースされたWindows 8では、従来のWindows APIベース(ネイティブコード)のデスクトップアプリケーションや.NET Frameworkベース(マネージコード)のデスクトップアプリケーションに加えて、新たにWindowsランタイム (WinRT) をフレームワークとするWindowsストアアプリが登場した。Windowsストアアプリは、C#/VB.NET/C++言語 + XAMLもしくはJavaScript言語 + HTMLを用いて開発される、Windowsストアを通して配布される、そしてWinRTのサンドボックス内で動作するなどの特徴を持つ。またARMデバイス向けのWindows 8としてWindows RTがリリースされたが、Windows RT上で動作するアプリケーションの開発と配布はWindowsストアアプリのみに限定されていた。Windows Phone 8ではSilverlight/XNAアプリケーションやWindows Phone向けのWinRT (WinPRT) アプリケーションが動作するが、Windows 8/Windows RT向けとは異なるSDKを用いて別々に開発する必要があり、ソースコードの互換性も確保されていなかった。

2013年にリリースされたWindows 8.1/Windows RT 8.1および2014年にリリースされたWindows Phone 8.1では、WinRTベースの「ユニバーサルWindowsアプリ」としてプラットフォームが統合され、ソースコードの互換性も向上した[9]

そして2015年にリリースされたWindows 10では初めて、Xbox OneIoT向けなどを含めてOSの中核部分が単一に統合され、あらゆるデバイスに対するアプリケーションの基盤を統合するための仕組みとして「ユニバーサルWindowsプラットフォーム」が用意されることになった[10]。Windows 10ではまた、「ユニバーサルWindowsドライバー(Universal Windows Driver、略称:UWD)」として、UWPベースの新しいデバイスドライバーAPIセットが定義され、複数のデバイス向けのドライバーを共通のインターフェイスで開発することが可能となった[11] [12] [13]

脚注

注釈

  1. ^ C++に関しては、C++/CX英語版と呼ばれるマイクロソフト独自の拡張が施された言語を用いることになる。なおC++/CXはC++/CLIとは異なり、マネージ言語拡張ではなくネイティブ言語拡張となっている。
  2. ^ ただしXAMLデザイナーは使用できない。

出典

関連項目