Windows ストア アプリおよび Windows ランタイムのための .NET Framework サポート.NET Framework Support for Windows Store Apps and Windows Runtime

.NET Framework 4.5.NET Framework 4.5Windows ランタイムWindows Runtimeのさまざまなソフトウェア開発シナリオをサポートします。The .NET Framework 4.5.NET Framework 4.5 supports a number of software development scenarios with the Windows ランタイムWindows Runtime. これらのシナリオは次の 3 つのカテゴリに分類されます。These scenarios fall into three categories:

このトピックでは、3 つのカテゴリすべてに対して .NET Framework が提供するサポートの概略と、Windows ランタイムWindows Runtime コンポーネント用シナリオについて説明します。This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows ランタイムWindows Runtime Components. 最初のセクションでは、.NET Framework と Windows ランタイムWindows Runtimeの関係についての基本情報と、ヘルプ システムや IDE で見られる可能性がある特異な状況について説明します。The first section includes basic information about the relationship between the .NET Framework and the Windows ランタイムWindows Runtime, and explains some oddities you might encounter in the Help system and the IDE. 2 番目のセクションを開発するためのシナリオについて説明しますWindows ランタイムWindows Runtimeコンポーネント。The second section discusses scenarios for developing Windows ランタイムWindows Runtime Components.

基本事項The Basics

.NET Framework は、Windows 8.x ストア アプリ用 .NET.NET for Windows 8.x Store apps を提供することと Windows ランタイムWindows Runtime自体をサポートすることによって、前述の 3 つの開発シナリオをサポートします。The .NET Framework supports the three development scenarios listed earlier by providing Windows 8.x ストア アプリ用 .NET.NET for Windows 8.x Store apps, and by supporting the Windows ランタイムWindows Runtime itself.

  • .NET framework と Windows ランタイム名前空間、.NET Framework クラス ライブラリの簡素化されたビューを示し、型と作成に使用できるメンバーのみを含めるWindows 8.x ストアWindows 8.x StoreアプリとWindows ランタイムWindows Runtimeコンポーネント。.NET Framework and Windows Runtime namespaces provides a streamlined view of the .NET Framework class libraries and include only the types and members you can use to create Windows 8.x ストアWindows 8.x Store apps and Windows ランタイムWindows Runtime Components.

    • Visual Studio (Visual Studio 2012 またはそれ以降) を使用して開発するときに、Windows 8.x ストアWindows 8.x StoreアプリまたはWindows ランタイムWindows Runtimeコンポーネント、参照アセンブリのセットにより、関連する型とメンバーのみが表示されます。When you use Visual Studio (Visual Studio 2012 or later) to develop a Windows 8.x ストアWindows 8.x Store app or a Windows ランタイムWindows Runtime component, a set of reference assemblies ensures that you see only the relevant types and members.

    • この簡素化された API セットは、.NET Framework 内で重複した機能、または Windows ランタイムWindows Runtimeの機能と重複した機能を削除すると、さらに単純化できます。This streamlined API set is simplified further by the removal of features that are duplicated within the .NET Framework or that duplicate Windows ランタイムWindows Runtime features. たとえば、簡素化された API セットにはコレクション型のジェネリック バージョンのみが含まれ、XML ドキュメント オブジェクト モデルは削除されて、代わりに Windows ランタイムWindows Runtime XML API セットが使用されます。For example, it contains only the generic versions of collection types, and the XML document object model is eliminated in favor of the Windows ランタイムWindows Runtime XML API set.

    • オペレーティング システムの API をラップするだけの機能も削除されます。これは、Windows ランタイムWindows Runtime をマネージド コードから簡単に呼び出すことができるためです。Features that simply wrap the operating system API are also removed, because the Windows ランタイムWindows Runtime is easy to call from managed code.

    詳細について、Windows 8.x ストア アプリ用 .NET.NET for Windows 8.x Store appsを参照してください、 .NET Windows ストア アプリの概要します。To read more about the Windows 8.x ストア アプリ用 .NET.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview. API 選択プロセスについては、次を参照してください。、 Metro スタイル アプリ用 .NET .NET ブログのエントリ。To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • Windows ランタイム構築するためのユーザー インターフェイス要素を提供しますWindows 8.x ストアWindows 8.x Storeアプリ、およびオペレーティング システムの機能へのアクセスを提供します。The Windows Runtime provides the user interface elements for building Windows 8.x ストアWindows 8.x Store apps, and provides access to operating system features. .NET Framework と同様、Windows ランタイムWindows Runtimeには、C# や Visual Basic のコンパイラが .NET Framework クラス ライブラリを使用するのと同じ方法で Windows ランタイムWindows Runtimeを使用するためのメタデータが含まれています。Like the .NET Framework, the Windows ランタイムWindows Runtime has metadata that enables the C# and Visual Basic compilers to use the Windows ランタイムWindows Runtime the way they use the .NET Framework class libraries. .NET Framework では、一部の相違点を非表示にすることで Windows ランタイムWindows Runtimeが使いやすくなっています。The .NET Framework makes it easier to use the Windows ランタイムWindows Runtime by hiding some differences:

    • .NET Framework と Windows ランタイムWindows Runtime間のプログラミング パターン (イベント ハンドラーを追加および削除するパターンなど) の違いの一部が非表示になります。Some differences in programming patterns between the .NET Framework and the Windows ランタイムWindows Runtime, such as the pattern for adding and removing event handlers, are hidden. ユーザーは .NET Framework のパターンを使用するとよいだけです。You simply use the .NET Framework pattern.

    • よく使用される型 (たとえばプリミティブ型やコレクション) の違いの一部が非表示になります。Some differences in commonly used types (for example, primitive types and collections) are hidden. 説明したように単純に .NET Framework 型を使用するの相違点で表示される IDE、この記事で後述します。You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

ほとんどの場合、Windows ランタイムWindows Runtimeの .NET Framework サポートは透過的です。Most of the time, .NET Framework support for the Windows ランタイムWindows Runtime is transparent. 次のセクションでは、マネージド コードと Windows ランタイムWindows Runtimeとの明確な違いのいくつかについて説明します。The next section discusses some of the apparent differences between managed code and the Windows ランタイムWindows Runtime.

.NET Framework と Windows ランタイムWindows Runtimeのリファレンス ドキュメントThe .NET Framework and the Windows ランタイムWindows Runtime Reference Documentation

Windows ランタイムと .NET Framework ドキュメント セットは、分離です。The Windows Runtime and the .NET Framework documentation sets are separate. 型またはメンバーに関するヘルプを表示するために F1 キーを押すと、該当するセットのリファレンス ドキュメントが表示されます。If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. ただしを参照する場合、 Windows ランタイム リファレンス不可解と思われる例が発生する可能性があります。However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • などのトピック、IIterable<T>インターフェイスでは、Visual Basic または c# の宣言の構文がありません。Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. 代わりに、メモをセクションの構文上が表示されます (この場合は、".NET:このインターフェイスは System.Collections.Generic.IEnumerable として表示されます<T >")。Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). これは、.NET Framework と Windows ランタイムWindows Runtimeで、同様の機能が異なるインターフェイスにより用意されているためです。This is because the .NET Framework and the Windows ランタイムWindows Runtime provide similar functionality with different interfaces. さらに、IIterable では列挙子を返すのに First メソッドではなく GetEnumerator メソッドを使用するという、動作の違いもあります。In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. .NET Framework では、一般的なタスクを実行する別の方法をユーザーが学習する必要はなく、使い慣れた型を使用できるようマネージド コードを表示して Windows ランタイムWindows Runtimeをサポートします。Instead of forcing you to learn a different way of performing a common task, the .NET Framework supports the Windows ランタイムWindows Runtime by making your managed code appear to use the type you're familiar with. IDE では IIterable インターフェイスを使用しないため、Windows ランタイムWindows Runtimeのリファレンス ドキュメントでこのインターフェイスを目にするのは、ドキュメントを直接参照する場合のみです。You won't see the IIterable interface in the IDE, and therefore the only way you'll encounter it in the Windows ランタイムWindows Runtime reference documentation is by browsing through that documentation directly.

  • SyndicationFeed(String, String, Uri)ドキュメントは、密接に関連する問題を示しています。さまざまな言語別に、パラメーターの型が表示されます。The SyndicationFeed(String, String, Uri) documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. C# と Visual Basic の場合、パラメーターの型は System.StringSystem.Uri です。For C# and Visual Basic, the parameter types are System.String and System.Uri. これもやはり、.NET Framework で独自の String 型と Uri 型が使われるためであり、このようなよく使用される型について、.NET Framework ユーザーが処理を実行する別の方法を学習しても意味はありません。Again, this is because the .NET Framework has its own String and Uri types, and for such commonly used types it doesn't make sense to force .NET Framework users to learn a different way of doing things. IDE では、これに対応する Windows ランタイムWindows Runtimeの型が .NET Framework によって非表示にされます。In the IDE, the .NET Framework hides the corresponding Windows ランタイムWindows Runtime types.

  • いくつかの場合など、GridLength構造体には、.NET Framework には、同じ名前が、多くの機能を持つ型。In a few cases, such as the GridLength structure, the .NET Framework provides a type with the same name but more functionality. たとえば、一連のコンストラクターとプロパティのトピックは GridLength に関連付けられますが、メンバーがマネージド コードでのみ使用可能であるために、Visual Basic と C# に関してのみ構文ブロックの機能を備えています。For example, a set of constructor and property topics are associated with GridLength, but they have syntax blocks only for Visual Basic and C# because the members are available only in managed code. Windows ランタイムWindows Runtimeでは、構造体にフィールドがあるだけです。In the Windows ランタイムWindows Runtime, structures have only fields. Windows ランタイムWindows Runtime構造はヘルパー クラスを必要とGridLengthHelper、同等の機能を提供します。The Windows ランタイムWindows Runtime structure requires a helper class, GridLengthHelper, to provide equivalent functionality. このヘルパー クラスは、マネージド コードを記述している間は IDE に表示されません。You won't see that helper class in the IDE when you're writing managed code.

  • IDE では、Windows ランタイムWindows Runtimeの型は System.Object から派生するように表示されます。In the IDE, Windows ランタイムWindows Runtime types appear to derive from System.Object. この型のメンバーは、Object などの Object.ToString から継承されるように表示されます。They appear to have members inherited from Object, such as Object.ToString. これらのメンバーは、型が実際に Object から継承され、Windows ランタイムWindows Runtimeの型が Object にキャストできる場合と同様に動作します。These members operate as they would if the types actually inherited from Object, and Windows ランタイムWindows Runtime types can be cast to Object. この機能は、.NET Framework が Windows ランタイムWindows Runtime用に用意しているサポートの一部です。This functionality is part of the support that the .NET Framework provides for the Windows ランタイムWindows Runtime. ただし、Windows ランタイムWindows Runtimeのリファレンス ドキュメントで型を表示しても、このようなメンバーは表示されません。However, if you view the types in the Windows ランタイムWindows Runtime reference documentation, no such members appear. これらの見かけ上の継承されたメンバーに関するドキュメントは、System.Object のリファレンス ドキュメントに含まれています。The documentation for these apparent inherited members is provided by the System.Object reference documentation.

IDE で表示される相違点Differences That Are Visible in the IDE

より高度なプログラミング シナリオ (例: C# で記述された Windows ランタイムWindows Runtime コンポーネントを使い、JavaScript を使用して Windows 用にビルドされた Windows 8.x ストアWindows 8.x Store アプリのアプリケーション ロジックを提供する) では、ドキュメントと同様 IDE でもこのような相違点が表示されます。In more advanced programming scenarios, such as using a Windows ランタイムWindows Runtime component written in C# to provide the application logic for a Windows 8.x ストアWindows 8.x Store app built for Windows using JavaScript, such differences are apparent in the IDE as well as in the documentation. コンポーネントから JavaScript に IDictionary<int, string> が返され、それを JavaScript デバッガーで調べると、JavaScript が IMap<int, string>の型を使用するので、Windows ランタイムWindows Runtime のメソッドが表示されます。When your component returns an IDictionary<int, string> to JavaScript, and you look at it in the JavaScript debugger, you'll see the methods of IMap<int, string> because JavaScript uses the Windows ランタイムWindows Runtime type. よく使用されるコレクション型のうち、この 2 言語で表示が異なる型の一部を次の表に示します。Some commonly used collection types that appear differently in the two languages are shown in the following table:

Windows ランタイムWindows Runtime type 対応する .NET Framework の型Corresponding .NET Framework type
IIterable<T> IEnumerable<T>
IIterator<T> IEnumerator<T>
IVector<T> IList<T>
IVectorView<T> IReadOnlyList<T>
IMap<K, V> IDictionary<TKey, TValue>
IMapView<K, V> IReadOnlyDictionary<TKey, TValue>
IBindableIterable IEnumerable
IBindableVector IList
Windows.UI.Xaml.Data.INotifyPropertyChanged System.ComponentModel.INotifyPropertyChanged
Windows.UI.Xaml.Data.PropertyChangedEventHandler System.ComponentModel.PropertyChangedEventHandler
Windows.UI.Xaml.Data.PropertyChangedEventArgs System.ComponentModel.PropertyChangedEventArgs

Windows ランタイムWindows Runtimeでは、IMap<K, V>IMapView<K, V>IKeyValuePair を使用して反復されます。In the Windows ランタイムWindows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. これらをマネージド コードに渡すと、IDictionary<TKey, TValue> および IReadOnlyDictionary<TKey, TValue> として表示されるため、これを列挙するには必然的に System.Collections.Generic.KeyValuePair<TKey, TValue> を使用します。When you pass them to managed code, they appear as IDictionary<TKey, TValue> and IReadOnlyDictionary<TKey, TValue>, so naturally you use System.Collections.Generic.KeyValuePair<TKey, TValue> to enumerate them.

インターフェイスがマネージド コード内に表示される方法によって、これらのインターフェイスを実装する型の表示方法が決まります。The way interfaces appear in managed code affects the way types that implement these interfaces appear. たとえば、PropertySet クラスは IMap<K, V> を実装しますが、これはマネージド コードでは IDictionary<TKey, TValue> として表示されます。For example, the PropertySet class implements IMap<K, V>, which appears in managed code as IDictionary<TKey, TValue>. PropertySet は、IDictionary<TKey, TValue> ではなく IMap<K, V> を実装したかのように表示されます。したがってマネージ コードでは、Add メソッド (その動作は .NET Framework ディクショナリの Add メソッドと同様) が含まれているように表示されます。PropertySet appears as if it implemented IDictionary<TKey, TValue> instead of IMap<K, V>, so in managed code it appears to have an Add method, which behaves like the Add method on .NET Framework dictionaries. Insert メソッドがないように見えます。It doesn't appear to have an Insert method.

詳細については、.NET Framework を使用して作成する方法、Windows ランタイムWindows Runtimeコンポーネント、および JavaScript で、このようなコンポーネントを使用する方法を示すチュートリアルを参照してください。 c# および Visual Basic での Windows ランタイム コンポーネントの作成です。For more information about using the .NET Framework to create a Windows ランタイムWindows Runtime component, and a walkthrough that shows how to use such a component with JavaScript, see Creating Windows Runtime Components in C# and Visual Basic.

プリミティブ型Primitive Types

マネージド コードで Windows ランタイムWindows Runtimeのナチュラルな使用を有効にすると、Windows ランタイムWindows Runtimeのプリミティブ型ではなく .NET Framework のプリミティブ型がコードに表示されます。To enable the natural use of the Windows ランタイムWindows Runtime in managed code, .NET Framework primitive types appear instead of Windows ランタイムWindows Runtime primitive types in your code. .NET Framework では、Int32 構造体などのプリミティブ型には、Int32.TryParse メソッドなどの便利なプロパティとメソッドが多くあります。In the .NET Framework, primitive types like the Int32 structure have many useful properties and methods, such as the Int32.TryParse method. 一方、Windows ランタイムWindows Runtimeのプリミティブ型と構造体にはフィールドしかありません。By contrast, primitive types and structures in the Windows ランタイムWindows Runtime have only fields. マネージド コードでプリミティブを使用すると、.NET Framework の型のように表示され、通常どおりに .NET Framework 型のプロパティとメソッドを使用できます。When you use primitives in managed code, they appear to be .NET Framework types, and you can use the properties and methods of the .NET Framework types as you normally would. 要約すると、次のようになります。The following list provides a summary:

  • Windows ランタイムWindows Runtimeのプリミティブ Int32Int64SingleDoubleBooleanString (Unicode 文字の変更できないコレクション)、EnumUInt32UInt64、および Guid では、System 名前空間内の同じ名前の型を使用します。For the Windows ランタイムWindows Runtime primitives Int32, Int64, Single, Double, Boolean, String (an immutable collection of Unicode characters), Enum, UInt32, UInt64, and Guid, use the type of the same name in the System namespace.

  • UInt8 では、System.Byte を使用します。For UInt8, use System.Byte.

  • Char16 では、System.Char を使用します。For Char16, use System.Char.

  • IInspectable インターフェイスでは、System.Object を使用します。For the IInspectable interface, use System.Object.

  • HRESULT では、System.Int32 のメンバーを 1 つ含む構造体を使用します。For HRESULT, use a structure with one System.Int32 member.

インターフェイス型の場合と同様、この表示の証拠が表示されるのは、.NET Framework プロジェクトが、JavaScript を使用してビルドされた Windows ランタイムWindows Runtime アプリで使用される Windows 8.x ストアWindows 8.x Store コンポーネントである場合に限られます。As with interface types, the only time you might see evidence of this representation is when your .NET Framework project is a Windows ランタイムWindows Runtime component that is used by a Windows 8.x ストアWindows 8.x Store app built using JavaScript.

.NET Framework に相当するものとしてマネージド コードに表示される、よく使用されるその他の基本的な Windows ランタイムWindows Runtimeの型には、Windows.Foundation.DateTime 構造体および System.DateTimeOffset 構造体が組み込まれています。前者はマネージド コードで Windows.Foundation.TimeSpan 構造体として表示され、後者は System.TimeSpan 構造体として表示されます。Other basic, commonly used Windows ランタイムWindows Runtime types that appear in managed code as their .NET Framework equivalents include the Windows.Foundation.DateTime structure, which appears in managed code as the System.DateTimeOffset structure, and the Windows.Foundation.TimeSpan structure, which appears as the System.TimeSpan structure.

その他の相違点Other Differences

コードで Windows ランタイムWindows Runtimeの型ではなく .NET Framework の型が表示されるために、ユーザー側のアクションが必要になる場合があります。In a few cases, the fact that .NET Framework types appear in your code instead of Windows ランタイムWindows Runtime types requires action on your part. たとえば、Windows.Foundation.Uriクラスとして表示されますSystem.Uri.NET Framework コードでします。For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Uri により、相対 URI ですがWindows.Foundation.Uri絶対 URI が必要です。System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. したがって、Windows ランタイムWindows Runtime メソッドに URI を渡すときには、絶対 URI にする必要があります。Therefore, when you pass a URI to a Windows ランタイムWindows Runtime method, you must ensure that it's absolute. (を参照してくださいWindows ランタイムへの URI の引き渡し)。(See Passing a URI to the Windows Runtime.)

Windows ランタイム コンポーネントの開発シナリオScenarios for Developing Windows Runtime Components

Windows ランタイムWindows Runtimeのマネージド コンポーネントでサポートされるシナリオは、次の原則に依存します。The scenarios that are supported for managed Windows ランタイムWindows Runtime Components depend on the following general principles:

  • .NET Framework を使用してビルドされる Windows ランタイムWindows Runtime コンポーネントとその他の Windows ランタイムWindows Runtime ライブラリの間に、明確な違いはありません。Windows ランタイムWindows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows ランタイムWindows Runtimelibraries. たとえば、マネージド コードを使用して Windows ランタイムWindows Runtimeのネイティブ コンポーネントを再実装する場合、この 2 つのコンポーネントは外部から見て区別が付きません。For example, if you re-implement a native Windows ランタイムWindows Runtime component by using managed code, the two components are outwardly indistinguishable. コンポーネントがマネージド コードで記述されているという事実は、そのコード自体がマネージド コードであったとしても、そのコンポーネントを使用するコードには表示されません。The fact that your component is written in managed code is invisible to the code that uses it, even if that code is itself managed code. ただし内部的には、そのコンポーネントは真のマネージド コードであり、共通言語ランタイム (CLR) 上で実行されます。However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • コンポーネントには、アプリケーション ロジック、Windows 8.x ストアWindows 8.x Store UI コントロール、またはその両方を実装する型を含めることができます。Components can contain types that implement application logic, Windows 8.x ストアWindows 8.x Store UI controls, or both.

    注意

    アプリケーション ロジックから UI 要素を分離することをお勧めします。It's good practice to separate UI elements from application logic. また、JavaScript や HTML を使用して Windows 用にビルドされた Windows 8.x ストアWindows 8.x Store アプリでは、Windows 8.x ストアWindows 8.x Store UI コントロールを使用できません。Also, you can't use Windows 8.x ストアWindows 8.x Store UI controls in a Windows 8.x ストアWindows 8.x Store app built for Windows using JavaScript and HTML.

  • コンポーネントは、Windows 8.x ストアWindows 8.x Store アプリ用 Visual Studio ソリューション内のプロジェクトの場合もあれば、複数のソリューションに追加できる再利用可能なコンポーネントの場合もあります。A component can be a project within a Visual Studio solution for a Windows 8.x ストアWindows 8.x Store app, or a reusable component that you can add to multiple solutions.

    注意

    コンポーネントが C# または Visual Basic でのみ使用される場合は、それを Windows ランタイムWindows Runtime コンポーネントにする必要はありません。If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows ランタイムWindows Runtime component. 代わりにそれを通常の .NET Framework クラス ライブラリにすると、そのパブリック API サーフェイスを Windows ランタイムWindows Runtimeの型に制限する必要はありません。If you make it an ordinary .NET Framework class library instead, you don't have to restrict its public API surface to Windows ランタイムWindows Runtime types.

  • 使用してバージョンの再利用可能なコンポーネントを解放することができます、 Windows ランタイムWindows Runtime VersionAttributeさまざまなバージョンでどの型 (および型のメンバー) を識別するために属性が追加されました。You can release versions of reusable components by using the Windows ランタイムWindows Runtime VersionAttribute attribute to identify which types (and which members within a type) were added in different versions.

  • コンポーネントの型は Windows ランタイムWindows Runtimeの型から派生できます。The types in your component can derive from Windows ランタイムWindows Runtime types. コントロールが内のプリミティブ コントロール型から派生できます、Windows.UI.Xaml.Controls.Primitives名前空間または終了コントロールなどの詳細はからButtonします。Controls can derive from the primitive control types in the Windows.UI.Xaml.Controls.Primitives namespace or from more finished controls such as Button.

    重要

    Windows 8Windows 8 および .NET Framework 4.5.NET Framework 4.5 以降では、Windows ランタイムWindows Runtime マネージド コンポーネントのすべてのパブリック型をシールする必要があります。Starting with Windows 8Windows 8 and the .NET Framework 4.5.NET Framework 4.5, all public types in a managed Windows ランタイムWindows Runtime component must be sealed. 別の Windows ランタイムWindows Runtime コンポーネント内の型はそこから派生できません。A type in another Windows ランタイムWindows Runtime component can't derive from them. コンポーネントでポリモーフィックな動作を提供するには、インターフェイスを作成し、そのインターフェイスをポリモーフィックな型に実装します。If you want to provide polymorphic behavior in your component, you can create an interface and implement it in the polymorphic types.

  • コンポーネント内のパブリック型で指定されるすべてのパラメーターと戻り値の型は、Windows ランタイムWindows Runtimeの型 (コンポーネントで定義する Windows ランタイムWindows Runtimeの型を含む) である必要があります。All parameter and return types on the public types in your component must be Windows ランタイムWindows Runtime types (including the Windows ランタイムWindows Runtime types that your component defines).

次のセクションでは、一般的なシナリオの例を示します。The following sections provide examples of common scenarios.

JavaScript による Windows 8.x ストアWindows 8.x Store アプリ用アプリケーション ロジックApplication Logic for a Windows 8.x ストアWindows 8.x Store App with JavaScript

JavaScript を使用して Windows の Windows 8.x ストアWindows 8.x Store アプリを開発する場合、アプリケーション ロジックの一部が、他の部分に比べてマネージド コードでより適切に機能したり、開発が容易であったりすることがあります。When you develop a Windows 8.x ストアWindows 8.x Store app for Windows using JavaScript, you might find that some parts of the application logic perform better in managed code, or are easier to develop. JavaScript では .NET Framework クラス ライブラリを直接使用できませんが、クラス ライブラリを .WinMD ファイルにすることができます。JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. このシナリオでは、Windows ランタイムWindows Runtime コンポーネントがアプリに不可欠な部分であるため、バージョン属性を提供する意味がありません。In this scenario, the Windows ランタイムWindows Runtime component is an integral part of the app, so it doesn't make sense to provide version attributes.

再利用可能な Windows 8.x ストアWindows 8.x Store UI コントロールReusable Windows 8.x ストアWindows 8.x Store UI Controls

関連する UI コントロールのセットを再利用可能な Windows ランタイムWindows Runtime コンポーネントにパッケージ化できます。You can package a set of related UI controls in a reusable Windows ランタイムWindows Runtime component. コンポーネントは、単独で商品化することも、作成するアプリの要素として使用することもできます。The component can be marketed on its own or used as an element in the apps you create. このシナリオで理にかなってを使用して、 Windows ランタイムWindows Runtime VersionAttribute互換性を改善する属性。In this scenario, it makes sense to use the Windows ランタイムWindows Runtime VersionAttribute attribute to improve compatibility.

既存の .NET Framework アプリからの再利用可能なアプリケーション ロジックReusable Application Logic from Existing .NET Framework Apps

既存のデスクトップ アプリからマネージド コードをスタンドアロンの Windows ランタイムWindows Runtime コンポーネントとしてパッケージ化できます。You can package managed code from your existing desktop apps as a standalone Windows ランタイムWindows Runtime component. これによって、C# または Visual Basic を使用してビルドされる Windows 8.x ストアWindows 8.x Store アプリに加えて、C++ または JavaScript を使用してビルドされる Windows 8.x ストアWindows 8.x Store アプリでも、コンポーネントを使用できるようになります。This enables you to use the component in Windows 8.x ストアWindows 8.x Store apps built using C++ or JavaScript, as well as in Windows 8.x ストアWindows 8.x Store apps built using C# or Visual Basic. コードに再利用シナリオが複数ある場合、バージョン管理はオプションです。Versioning is an option if there are multiple reuse scenarios for the code.

タイトルTitle 説明Description
Windows ストア アプリ用 .NET の概要.NET for Windows Store apps overview Windows 8.x ストアWindows 8.x Store アプリと Windows ランタイムWindows Runtime コンポーネントの作成に使用できる .NET Framework の型およびメンバーについて説明します Describes the .NET Framework types and members that you can use to create Windows 8.x ストアWindows 8.x Store apps and Windows ランタイムWindows RuntimeComponents. (Windows デベロッパー センター内)。(In the Windows Dev Center.)
C# または Visual Basic を使った Windows ストア アプリのロードマップRoadmap for Windows Store apps using C# or Visual Basic C# または Visual Basic を使用して Windows 8.x ストアWindows 8.x Store アプリの開発を開始するときに役立つ主要リソース (各種のクイック スタート トピック、ガイドライン、ベスト プラクティスなど) が用意されています Provides key resources to help you get started developing Windows 8.x ストアWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Windows デベロッパー センター内)。(In the Windows Dev Center.)
どのように操作方法 (XAML)How tos (XAML) C# または Visual Basic を使用して Windows 8.x ストアWindows 8.x Store アプリの開発を開始するときに役立つ主要リソース (各種のクイック スタート トピック、ガイドライン、ベスト プラクティスなど) が用意されています Provides key resources to help you get started developing Windows 8.x ストアWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Windows デベロッパー センター内)。(In the Windows Dev Center.)
C# および Visual Basic での Windows ランタイム コンポーネントの作成Creating Windows Runtime Components in C# and Visual Basic .NET Framework を使用して Windows ランタイムWindows Runtime コンポーネントを作成する方法、JavaScript を使用して Windows 用にビルドされた Windows 8.x ストアWindows 8.x Store アプリの一部としてそのコンポーネントを使用する方法、Visual Studio との組み合わせをデバッグする方法について説明します Describes how to create a Windows ランタイムWindows Runtime component using the .NET Framework, explains how to use it as part of a Windows 8.x ストアWindows 8.x Store app built for Windows using JavaScript, and describes how to debug the combination with Visual Studio. (Windows デベロッパー センター内)。(In the Windows Dev Center.)
Windows ランタイム リファレンスWindows Runtime reference Windows ランタイムWindows Runtimeのリファレンス ドキュメント The reference documentation for the Windows ランタイムWindows Runtime. (Windows デベロッパー センター内)。(In the Windows Dev Center.)
Windows ランタイムへの URI の引き渡しPassing a URI to the Windows Runtime マネージド コードから Windows ランタイムWindows Runtimeに URI を渡すときに発生する可能性がある問題と、その回避方法について説明します。Describes an issue that can arise when you pass a URI from managed code to the Windows ランタイムWindows Runtime, and how to avoid it.