.NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime.NET Framework Support for Windows Store Apps and Windows Runtime

.NET Framework 4.5.NET Framework 4.5 unterstützt mehrere Softwareentwicklungsszenarien mit Windows-RuntimeWindows Runtime.The .NET Framework 4.5.NET Framework 4.5 supports a number of software development scenarios with the Windows-RuntimeWindows Runtime. Diese Szenarien werden in drei Kategorien eingeteilt:These scenarios fall into three categories:

In diesem Thema werden die Unterstützung, die .NET Framework für alle drei Kategorien bietet, sowie die Szenarien für Windows-RuntimeWindows Runtime-Komponenten beschrieben.This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows-RuntimeWindows Runtime Components. Der erste Abschnitt enthält grundlegende Informationen über die Beziehung zwischen .NET Framework und Windows-RuntimeWindows Runtime und erläutert einige Eigentümlichkeiten, die möglicherweise im Hilfesystem und in der IDE auftreten.The first section includes basic information about the relationship between the .NET Framework and the Windows-RuntimeWindows Runtime, and explains some oddities you might encounter in the Help system and the IDE. Die zweiter Abschnitt erläutert Szenarien für die Entwicklung von Windows-RuntimeWindows Runtime Komponenten.The second section discusses scenarios for developing Windows-RuntimeWindows Runtime Components.

Die GrundlagenThe Basics

.NET Framework unterstützt die drei zuvor aufgelisteten Entwicklungsszenarien durch die Bereitstellung von .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps und durch die Unterstützung von Windows-RuntimeWindows Runtime.The .NET Framework supports the three development scenarios listed earlier by providing .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps, and by supporting the Windows-RuntimeWindows Runtime itself.

  • .NET für Windows Store-apps bietet eine komprimierte Übersicht über den .NET Framework-Klassenbibliotheken und nur die Typen und Member Sie erstellen können Windows 8.x StoreWindows 8.x Store apps und Windows-RuntimeWindows Runtime Komponenten..NET for Windows Store apps 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 StoreWindows 8.x Store apps and Windows-RuntimeWindows Runtime Components.

    • Wenn Sie Visual Studio (Visual Studio 2012Visual Studio 2012 oder eine neuere Version) zum Entwickeln einer Windows 8.x StoreWindows 8.x Store-App oder einer Windows-RuntimeWindows Runtime-Komponente verwenden, stellt ein Satz von Verweisassemblys sicher, dass Sie nur die relevanten Typen und Member sehen.When you use Visual Studio (Visual Studio 2012Visual Studio 2012 or later) to develop a Windows 8.x StoreWindows 8.x Store app or a Windows-RuntimeWindows Runtime component, a set of reference assemblies ensures that you see only the relevant types and members.

    • Dieser gestraffte API-Satz wurde weiter vereinfacht, indem Funktionen entfernt wurden, die in .NET Framework doppelt vorhanden sind oder Windows-RuntimeWindows Runtime-Funktionen duplizieren.This streamlined API set is simplified further by the removal of features that are duplicated within the .NET Framework or that duplicate Windows-RuntimeWindows Runtime features. Beispielsweise enthält er nur die generischen Versionen von Auflistungstypen, und das XML-Dokumentobjektmodell wurde zugunsten des Windows-RuntimeWindows Runtime-XML-API-Satzes entfernt.For example, it contains only the generic versions of collection types, and the XML document object model is eliminated in favor of the Windows-RuntimeWindows Runtime XML API set.

    • Funktionen, die lediglich die Betriebssystem-API umschließen, wurden ebenfalls entfernt, da Windows-RuntimeWindows Runtime auf einfache Weise von verwaltetem Code aus aufgerufen werden kann.Features that simply wrap the operating system API are also removed, because the Windows-RuntimeWindows Runtime is easy to call from managed code.

    Um weitere Informationen zu den .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps, finden Sie unter der .NET für Windows Store-apps – Übersicht in das Windows Dev Center.To erfahren Sie über die API Auswahlprozesses verwendet werden, finden Sie unter der .NET für Windows Store-apps Eintrag in .NET Blog.To read more about the .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview in the Windows Dev Center.To read about the API selection process, see the .NET for Windows Store apps entry in the .NET blog.

  • Die Windows-Runtime bietet dem Benutzer Elemente der Benutzeroberfläche zum Erstellen von Windows 8.x StoreWindows 8.x Store -apps und bietet Zugriff auf Funktionen des Betriebssystems.The Windows Runtime provides the user interface elements for building Windows 8.x StoreWindows 8.x Store apps, and provides access to operating system features. Wie .NET Framework verfügt Windows-RuntimeWindows Runtime über Metadaten, die es dem C#- und dem Visual Basic-Compiler ermöglichen, Windows-RuntimeWindows Runtime so zu verwenden, wie sie die .NET Framework-Klassenbibliotheken verwenden.Like the .NET Framework, the Windows-RuntimeWindows Runtime has metadata that enables the C# and Visual Basic compilers to use the Windows-RuntimeWindows Runtime the way they use the .NET Framework class libraries. .NET Framework vereinfacht die Verwendung von Windows-RuntimeWindows Runtime durch das Ausblenden einiger Unterschiede:The .NET Framework makes it easier to use the Windows-RuntimeWindows Runtime by hiding some differences:

    • Einige Unterschiede bei Programmiermustern zwischen .NET Framework und Windows-RuntimeWindows Runtime, beispielsweise das Muster für das Hinzufügen und Entfernen von Ereignishandlern, werden ausgeblendet.Some differences in programming patterns between the .NET Framework and the Windows-RuntimeWindows Runtime, such as the pattern for adding and removing event handlers, are hidden. Sie verwenden einfach das .NET Framework-Muster.You simply use the .NET Framework pattern.

    • Einige Unterschiede bei häufig verwendeten Typen (beispielsweise primitive Typen und Auflistungen) werden ausgeblendet.Some differences in commonly used types (for example, primitive types and collections) are hidden. Sie einfach das .NET Framework-Typ verwenden, wie in beschrieben Unterschiede, sind in der IDE sichtbarweiter unten in diesem Artikel.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

Meistens ist die .NET Framework-Unterstützung für Windows-RuntimeWindows Runtime transparent.Most of the time, .NET Framework support for the Windows-RuntimeWindows Runtime is transparent. Im nächsten Abschnitt werden einige offensichtliche Unterschiede zwischen verwaltetem Code und Windows-RuntimeWindows Runtime erläutert.The next section discusses some of the apparent differences between managed code and the Windows-RuntimeWindows Runtime.

Referenzdokumentation zu .NET Framework und Windows-RuntimeWindows RuntimeThe .NET Framework and the Windows-RuntimeWindows Runtime Reference Documentation

Windows und .NET Framework verfügen über separate Dokumentationssätze.The Windows and the .NET Framework documentation sets are separate. Wenn Sie F1 drücken, um die Hilfe zu einem Typ oder einem Member aufzurufen, wird die Referenzdokumentation des entsprechenden Satzes angezeigt.If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. Jedoch wenn Sie durchsuchen den Windows-Runtime-Verweis Beispiele, in denen verwirrend erscheinen können auftreten:However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • Themen wie z. B. die IIterable Schnittstelle keine für Visual Basic oder C#-Deklarationssyntax.Topics such as the IIterable interface don't have declaration syntax for Visual Basic or C#. Stattdessen wird ein Hinweis über dem Syntaxabschnitt (in diesem Fall ".NET: Diese Schnittstelle wird als 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>"). Der Grund dafür besteht darin, dass .NET Framework und Windows-RuntimeWindows Runtime ähnliche Funktionen mit verschiedenen Schnittstellen bereitstellen.This is because the .NET Framework and the Windows-RuntimeWindows Runtime provide similar functionality with different interfaces. Darüber hinaus gibt es Verhaltensunterschiede: IIterable verfügt über eine First-Methode anstelle einer GetEnumerator-Methode zum Zurückgeben des Enumerators.In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. Anstatt Sie zu zwingen, eine andere Art der Ausführung einer häufig vorkommenden Aufgabe zu erlernen, unterstützt .NET Framework Windows-RuntimeWindows Runtime, indem verwalteter Code scheinbar den Typ verwendet, mit dem Sie bereits vertraut sind.Instead of forcing you to learn a different way of performing a common task, the .NET Framework supports the Windows-RuntimeWindows Runtime by making your managed code appear to use the type you're familiar with. Sie sehen die IIterable-Schnittstelle in der IDE nicht. Daher bemerken Sie sie in der Windows-RuntimeWindows Runtime-Referenzdokumentation nur, wenn Sie diese Dokumentation direkt durchsuchen.You won't see the IIterable interface in the IDE, and therefore the only way you'll encounter it in the Windows-RuntimeWindows Runtime reference documentation is by browsing through that documentation directly.

  • Die SyndicationFeed Konstruktor Dokumentation veranschaulicht ein eng verwandtes Problem: die Parametertypen angezeigt werden, für verschiedene Sprachen unterschiedlich sein.The SyndicationFeed constructor documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. Für C# und Visual Basic sind die Parametertypen System.String und System.Uri.For C# and Visual Basic, the parameter types are System.String and System.Uri. Auch hier besteht der Grund dafür darin, dass .NET Framework über eigene String- und Uri-Typen verfügt, und bei solchen häufig verwendeten Typen ist es nicht sinnvoll, .NET Framework-Benutzer zu zwingen, eine andere Art der Ausführung zu erlernen.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. In der IDE blendet .NET Framework die entsprechenden Windows-RuntimeWindows Runtime-Typen aus.In the IDE, the .NET Framework hides the corresponding Windows-RuntimeWindows Runtime types.

  • In einigen Fällen z. B. die Windows.UI.Xaml.GridLength -Struktur, die .NET Framework bietet einen Typ mit dem gleichen Namen, aber weitere Funktionen.In a few cases, such as the Windows.UI.Xaml.GridLength structure, the .NET Framework provides a type with the same name but more functionality. Beispielsweise ist GridLength eine Gruppe von Konstruktor- und Eigenschaftsthemen zugeordnet, die aber nur für Visual Basic und C# über Syntaxblöcke verfügen, da die Member nur in verwaltetem Code verfügbar sind.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. In Windows-RuntimeWindows Runtime verfügen Strukturen nur über Felder.In the Windows-RuntimeWindows Runtime, structures have only fields. Die Windows-RuntimeWindows Runtime Struktur muss eine Hilfsklasse Windows.UI.Xaml.GridLengthHelper, um die entsprechende Funktionalität bereitzustellen.The Windows-RuntimeWindows Runtime structure requires a helper class, Windows.UI.Xaml.GridLengthHelper, to provide equivalent functionality. Sie sehen diese Hilfsklasse in der IDE nicht, wenn Sie verwalteten Code schreiben.You won't see that helper class in the IDE when you're writing managed code.

  • In der IDE scheinen Windows-RuntimeWindows Runtime-Typen von System.Object abgeleitet zu sein.In the IDE, Windows-RuntimeWindows Runtime types appear to derive from System.Object. Sie scheinen über Member zu verfügen, die von Object geerbt wurden, beispielsweise Object.ToString.They appear to have members inherited from Object, such as Object.ToString. Diese Member können verwendet werden, als wären die Typen tatsächlich von Object geerbt worden, und Windows-RuntimeWindows Runtime-Typen können in Object umgewandelt werden.These members operate as they would if the types actually inherited from Object, and Windows-RuntimeWindows Runtime types can be cast to Object. Diese Funktionalität ist Teil der Unterstützung, die .NET Framework für Windows-RuntimeWindows Runtime bietet.This functionality is part of the support that the .NET Framework provides for the Windows-RuntimeWindows Runtime. Wenn Sie die Typen jedoch in der Windows-RuntimeWindows Runtime-Referenzdokumentation anzeigen, werden keine solchen Member angezeigt.However, if you view the types in the Windows-RuntimeWindows Runtime reference documentation, no such members appear. Die Dokumentation für diese scheinbar geerbten Member finden Sie in der Referenzdokumentation zu System.Object.The documentation for these apparent inherited members is provided by the System.Object reference documentation.

Unterschiede, die in der IDE angezeigt werdenDifferences That Are Visible in the IDE

In anspruchsvolleren Programmierszenarien, in denen beispielsweise eine in C# geschriebene Windows-RuntimeWindows Runtime-Komponente verwendet wird, um die Anwendungslogik für eine Windows 8.x StoreWindows 8.x Store-App bereitzustellen, die mithilfe von JavaScript für Windows erstellt wurde, sind solche Unterschiede sowohl in der IDE als auch in der Dokumentation offensichtlich.In more advanced programming scenarios, such as using a Windows-RuntimeWindows Runtime component written in C# to provide the application logic for a Windows 8.x StoreWindows 8.x Store app built for Windows using JavaScript, such differences are apparent in the IDE as well as in the documentation. Wenn die Komponente eine IDictionary<int, string>-Schnittstelle an JavaScript zurückgibt und Sie sich diese im JavaScript-Debugger ansehen, sehen Sie die Methoden von IMap<int, string>, da JavaScript den Windows-RuntimeWindows Runtime-Typ verwendet.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-RuntimeWindows Runtime type. In der folgenden Tabelle werden einige häufig verwendete Auflistungstypen aufgeführt, die in den beiden Sprachen unterschiedlich dargestellt werden:Some commonly used collection types that appear differently in the two languages are shown in the following table:

Windows-RuntimeWindows Runtime-Typ type Entsprechender .NET Framework-TypCorresponding .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

In Windows-RuntimeWindows Runtime werden IMap<K, V> und IMapView<K, V> mithilfe von IKeyValuePair durchlaufen.In the Windows-RuntimeWindows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. Wenn Sie sie an verwalteten Code übergeben, werden sie als IDictionary<TKey, TValue> und IReadOnlyDictionary<TKey, TValue> angezeigt. Daher können Sie System.Collections.Generic.KeyValuePair<TKey, TValue> verwenden, um sie aufzulisten.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.

Die Darstellungsweise von Schnittstellen in verwaltetem Code wirkt sich auf die Darstellungsweise der Typen aus, die diese Schnittstellen implementieren.The way interfaces appear in managed code affects the way types that implement these interfaces appear. Beispielsweise implementiert die PropertySet-Klasse den Typ IMap<K, V>, der in verwaltetem Code als IDictionary<TKey, TValue> angezeigt wird.For example, the PropertySet class implements IMap<K, V>, which appears in managed code as IDictionary<TKey, TValue>. PropertySet wird angezeigt, als ob es IDictionary<TKey, TValue> anstelle von IMap<K, V> implementiert. In verwaltetem Code verfügt die Klasse scheinbar über eine Add-Methode, die sich wie die Add-Methode in .NET Framework-Wörterbüchern verhält.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. Eine Insert-Methode ist scheinbar nicht vorhanden.It doesn't appear to have an Insert method.

Weitere Informationen zur Verwendung von .NET Framework zum Erstellen einer Windows-RuntimeWindows Runtime Komponente und eine exemplarische Vorgehensweise verwenden Sie eine solche Komponente mit JavaScript finden Sie unter Erstellen von Windows-Runtime-Komponenten in c# und Visual Basic in der Windows Dev Center.For more information about using the .NET Framework to create a Windows-RuntimeWindows 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 in the Windows Dev Center.

Primitive TypenPrimitive Types

Im Code werden primitive Typen von .NET Framework statt von Windows-RuntimeWindows Runtime angezeigt, damit Windows-RuntimeWindows Runtime in verwaltetem Code einfacher zu verwenden ist.To enable the natural use of the Windows-RuntimeWindows Runtime in managed code, .NET Framework primitive types appear instead of Windows-RuntimeWindows Runtime primitive types in your code. In .NET Framework haben primitive Typen wie die Int32-Struktur viele nützliche Eigenschaften und Methoden, beispielsweise die Int32.TryParse-Methode.In the .NET Framework, primitive types like the Int32 structure have many useful properties and methods, such as the Int32.TryParse method. Im Gegensatz dazu verfügen primitive Typen und Strukturen in Windows-RuntimeWindows Runtime nur über Felder.By contrast, primitive types and structures in the Windows-RuntimeWindows Runtime have only fields. Wenn Sie primitive Typen in verwaltetem Code verwenden, verhalten sie sich wie .NET Framework-Typen, und Sie können deren Eigenschaften und Methoden wie gewohnt verwenden.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. Die folgende Liste enthält eine Zusammenfassung:The following list provides a summary:

  • Für die primitiven Windows-RuntimeWindows Runtime-Typen Int32, Int64, Single, Double, Boolean, String (eine unveränderliche Auflistung von Unicode-Zeichen), Enum, UInt32, UInt64 und Guid sollte der Typ desselben Namens im System-Namespace verwendet werden.For the Windows-RuntimeWindows 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.

  • Verwenden Sie für UInt8 den Typ System.Byte.For UInt8, use System.Byte.

  • Verwenden Sie für Char16 den Typ System.Char.For Char16, use System.Char.

  • Verwenden Sie für die IInspectable-Schnittstelle System.Object.For the IInspectable interface, use System.Object.

  • Verwenden Sie für HRESULT eine Struktur mit einem System.Int32-Member.For HRESULT, use a structure with one System.Int32 member.

Wie bei Schnittstellentypen können Sie nur dann einen Beweis für diese Darstellung sehen, wenn es sich bei Ihrem .NET Framework-Projekt um eine Windows-RuntimeWindows Runtime-Komponente handelt, die von einer mit JavaScript erstellten Windows 8.x StoreWindows 8.x Store-App verwendet wird.As with interface types, the only time you might see evidence of this representation is when your .NET Framework project is a Windows-RuntimeWindows Runtime component that is used by a Windows 8.x StoreWindows 8.x Store app built using JavaScript.

Weitere grundlegende, häufig verwendete Windows-RuntimeWindows Runtime-Typen, die in verwaltetem Code als deren .NET Framework-Entsprechungen dargestellt werden, sind die Windows.Foundation.DateTime-Struktur, die in verwaltetem Code als System.DateTimeOffset-Struktur dargestellt wird, und die Windows.Foundation.TimeSpan-Struktur, die als System.TimeSpan-Struktur dargestellt wird.Other basic, commonly used Windows-RuntimeWindows 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.

Weitere UnterschiedeOther Differences

In einigen wenigen Fällen erfordert die Tatsache, dass im Code .NET Framework-Typen statt Windows-RuntimeWindows Runtime-Typen dargestellt werden, eine Aktion Ihrerseits.In a few cases, the fact that .NET Framework types appear in your code instead of Windows-RuntimeWindows Runtime types requires action on your part. Z. B. die Windows.Foundation.Uri Klasse wird als System.Uri in .NET Framework-Code.For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Urieinen relativen URI, ermöglicht jedoch Windows.Foundation.Uri muss einen absoluten URI.System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. Wenn Sie einen URI an eine Windows-RuntimeWindows Runtime-Methode übergeben, müssen Sie daher sicherstellen, dass es sich um einen absoluten URI handelt.Therefore, when you pass a URI to a Windows-RuntimeWindows Runtime method, you must ensure that it's absolute. (Siehe übergeben eines URI an Windows-Runtime.)(See Passing a URI to the Windows Runtime.)

Szenarien für die Entwicklung von Komponenten für Windows-RuntimeScenarios for Developing Windows Runtime Components

Die Szenarien, die für verwaltete Windows-RuntimeWindows Runtime-Komponenten unterstützt werden, sind abhängig von den folgenden allgemeinen Prinzipien:The scenarios that are supported for managed Windows-RuntimeWindows Runtime Components depend on the following general principles:

  • Es bestehen keine offensichtlichen Unterschiede zwischen Windows-RuntimeWindows Runtime-Komponenten, die mit .NET Framework erstellt wurden, und anderen Windows-RuntimeWindows Runtime-Bibliotheken.Windows-RuntimeWindows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows-RuntimeWindows Runtimelibraries. Wenn Sie beispielsweise eine systemeigene Windows-RuntimeWindows Runtime-Komponente mit verwaltetem Code erneut implementieren, sind die beiden Komponenten äußerlich nicht zu unterscheiden.For example, if you re-implement a native Windows-RuntimeWindows Runtime component by using managed code, the two components are outwardly indistinguishable. Die Tatsache, dass die Komponente in verwaltetem Code geschrieben wurde, ist für den Code, in dem sie verwendet wird, nicht sichtbar, selbst wenn es sich bei diesem Code ebenfalls um verwalteten Code handelt.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. Intern besteht die Komponente jedoch aus echtem verwaltetem Code und wird von der Common Language Runtime (CLR) ausgeführt.However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • Komponenten können Typen enthalten, die Anwendungslogik, Windows 8.x StoreWindows 8.x Store-UI-Steuerelemente oder beides implementieren.Components can contain types that implement application logic, Windows 8.x StoreWindows 8.x Store UI controls, or both.

    Hinweis

    Es empfiehlt sich, Benutzeroberflächenelemente von der Anwendungslogik zu trennen.It's good practice to separate UI elements from application logic. Außerdem können Sie Windows 8.x StoreWindows 8.x Store-UI-Steuerelemente nicht in einer Windows 8.x StoreWindows 8.x Store-App verwenden, die mit JavaScript und HTML für Windows erstellt wurde.Also, you can't use Windows 8.x StoreWindows 8.x Store UI controls in a Windows 8.x StoreWindows 8.x Store app built for Windows using JavaScript and HTML.

  • Eine Komponente kann ein Projekt in einer Visual Studio-Projektmappe für eine Windows 8.x StoreWindows 8.x Store-App oder eine wiederverwendbare Komponente sein, die Sie mehreren Projektmappen hinzufügen können.A component can be a project within a Visual Studio solution for a Windows 8.x StoreWindows 8.x Store app, or a reusable component that you can add to multiple solutions.

    Hinweis

    Wenn die Komponente nur mit C# oder Visual Basic verwendet wird, gibt es keinen Grund, sie als Windows-RuntimeWindows Runtime-Komponente zu erstellen.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows-RuntimeWindows Runtime component. Wenn Sie sie stattdessen als gewöhnliche .NET Framework-Klassenbibliothek erstellen, müssen Sie die öffentliche API-Schnittstelle nicht auf Windows-RuntimeWindows Runtime-Typen einschränken.If you make it an ordinary .NET Framework class library instead, you don't have to restrict its public API surface to Windows-RuntimeWindows Runtime types.

  • Sie können Releaseversionen der wiederverwendbare Komponenten mithilfe der Windows-RuntimeWindows Runtime VersionAttribute Attribut identifiziert die Typen (und welche Member in einem Typ) in verschiedenen Versionen hinzugefügt wurden.You can release versions of reusable components by using the Windows-RuntimeWindows RuntimeVersionAttribute attribute to identify which types (and which members within a type) were added in different versions.

  • Die Typen in der Komponente können von Windows-RuntimeWindows Runtime-Typen abgeleitet werden.The types in your component can derive from Windows-RuntimeWindows Runtime types. Steuerelemente können Ableitung von primitiven Steuerelementtypen in der Windows.UI.Xaml.Controls.Primitives Namespace oder aus mehreren beendeten Steuerelemente wie z. B. Schaltfläche.Controls can derive from the primitive control types in the Windows.UI.Xaml.Controls.Primitives namespace or from more finished controls such as Button.

    Wichtig

    Ab Windows 8Windows 8 und .NET Framework 4.5.NET Framework 4.5 müssen alle öffentlichen Typen in einer verwalteten Windows-RuntimeWindows Runtime-Komponente versiegelt werden.Starting with Windows 8Windows 8 and the .NET Framework 4.5.NET Framework 4.5, all public types in a managed Windows-RuntimeWindows Runtime component must be sealed. Ein Typ in einer anderen Windows-RuntimeWindows Runtime-Komponente kann nicht von ihnen abgeleitet werden.A type in another Windows-RuntimeWindows Runtime component can't derive from them. Wenn Sie polymorphes Verhalten in der Komponente ermöglichen möchten, können Sie eine Schnittstelle erstellen und sie in polymorphen Typen implementieren.If you want to provide polymorphic behavior in your component, you can create an interface and implement it in the polymorphic types.

  • Alle Parameter und Rückgabetypen für die öffentlichen Typen in der Komponente müssen Windows-RuntimeWindows Runtime-Typen sein (einschließlich der Windows-RuntimeWindows Runtime-Typen, die die Komponente definiert).All parameter and return types on the public types in your component must be Windows-RuntimeWindows Runtime types (including the Windows-RuntimeWindows Runtime types that your component defines).

Die folgenden Abschnitte enthalten Beispiele für häufig vorkommende Szenarien.The following sections provide examples of common scenarios.

Anwendungslogik für eine Windows 8.x StoreWindows 8.x Store-App mit JavaScriptApplication Logic for a Windows 8.x StoreWindows 8.x Store App with JavaScript

Wenn Sie eine Windows 8.x StoreWindows 8.x Store-App für Windows mit JavaScript entwickeln, stellen Sie möglicherweise fest, dass einige Teile der Anwendungslogik in verwaltetem Code eine bessere Leistung bieten oder einfacher entwickelt werden können.When you develop a Windows 8.x StoreWindows 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 kann .NET Framework-Klassenbibliotheken nicht direkt verwenden. Sie können die Klassenbibliothek jedoch als WinMD-Datei erstellen.JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. In diesem Szenario ist die Windows-RuntimeWindows Runtime-Komponente ein wesentlicher Bestandteil der App. Daher ist es nicht sinnvoll, Versionsattribute bereitzustellen.In this scenario, the Windows-RuntimeWindows Runtime component is an integral part of the app, so it doesn't make sense to provide version attributes.

Wiederverwendbare Windows 8.x StoreWindows 8.x Store-UI-SteuerelementeReusable Windows 8.x StoreWindows 8.x Store UI Controls

Sie können einen Satz verwandter UI-Steuerelemente in einer wiederverwendbaren Windows-RuntimeWindows Runtime-Komponente verpacken.You can package a set of related UI controls in a reusable Windows-RuntimeWindows Runtime component. Die Komponente kann eigenständig vermarktet oder als Element in den Apps verwendet werden, die Sie erstellen.The component can be marketed on its own or used as an element in the apps you create. In diesem Fall wird es sinnvoll, verwenden Sie die Windows-RuntimeWindows Runtime VersionAttribute Attribut zum Verbessern der Kompatibilität.In this scenario, it makes sense to use the Windows-RuntimeWindows RuntimeVersionAttribute attribute to improve compatibility.

Wiederverwendbare Anwendungslogik von vorhandenen .NET Framework-AppsReusable Application Logic from Existing .NET Framework Apps

Sie können verwalteten Code aus den vorhandenen Desktop-Apps als eigenständige Windows-RuntimeWindows Runtime-Komponente verpacken.You can package managed code from your existing desktop apps as a standalone Windows-RuntimeWindows Runtime component. So können Sie die Komponente sowohl in Windows 8.x StoreWindows 8.x Store-Apps verwenden, die mithilfe von C++ oder JavaScript erstellt werden, als auch in Windows 8.x StoreWindows 8.x Store-Apps, die mithilfe von C# oder Visual Basic erstellt werden.This enables you to use the component in Windows 8.x StoreWindows 8.x Store apps built using C++ or JavaScript, as well as in Windows 8.x StoreWindows 8.x Store apps built using C# or Visual Basic. Sie sollten die Versionsverwaltung verwenden, wenn der Code in mehreren Szenarien wiederverwendet wird.Versioning is an option if there are multiple reuse scenarios for the code.

TitelTitle BeschreibungDescription
.NET für Windows Store-apps – Übersicht.NET for Windows Store apps overview Beschreibt die .NET Framework-Typen und -Member, die Sie zum Erstellen von Windows 8.x StoreWindows 8.x Store-Apps und Windows-RuntimeWindows Runtime-Komponenten verwenden können.Describes the .NET Framework types and members that you can use to create Windows 8.x StoreWindows 8.x Store apps and Windows-RuntimeWindows RuntimeComponents. (Im Windows Developer Center)(In the Windows Dev Center.)
Roadmap für Windows Store-apps mit c# oder Visual BasicRoadmap for Windows Store apps using C# or Visual Basic Stellt wichtige Ressourcen bereit, die Ihnen beim Einstieg in die Entwicklung von Windows 8.x StoreWindows 8.x Store-Apps mithilfe von C# oder Visual Basic helfen, darunter auch viele Schnellstartthemen, Richtlinien und Best Practices.Provides key resources to help you get started developing Windows 8.x StoreWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Im Windows Developer Center)(In the Windows Dev Center.)
Entwickeln von Windows Store-apps (VB / C#-/ C++ und XAML)Developing Windows Store apps (VB/C#/C++ and XAML) Stellt wichtige Ressourcen bereit, die Ihnen beim Einstieg in die Entwicklung von Windows 8.x StoreWindows 8.x Store-Apps mithilfe von C# oder Visual Basic helfen, darunter auch viele Schnellstartthemen, Richtlinien und Best Practices.Provides key resources to help you get started developing Windows 8.x StoreWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Im Windows Developer Center)(In the Windows Dev Center.)
Erstellen von Windows-Runtime-Komponenten in c# und Visual BasicCreating Windows Runtime Components in C# and Visual Basic Beschreibt die Vorgehensweise beim Erstellen einer Windows-RuntimeWindows Runtime-Komponente mit .NET Framework und erläutert, wie diese als Teil einer Windows 8.x StoreWindows 8.x Store-App verwendet wird, die für Windows mit JavaScript erstellt wird. Außerdem wird beschrieben, wie Sie diese Kombination mit Visual Studio debuggen können.Describes how to create a Windows-RuntimeWindows Runtime component using the .NET Framework, explains how to use it as part of a Windows 8.x StoreWindows 8.x Store app built for Windows using JavaScript, and describes how to debug the combination with Visual Studio. (Im Windows Developer Center)(In the Windows Dev Center.)
Windows-Runtime-VerweisWindows Runtime reference Die Referenzdokumentation für Windows-RuntimeWindows Runtime.The reference documentation for the Windows-RuntimeWindows Runtime. (Im Windows Developer Center)(In the Windows Dev Center.)
Übergeben eines URI an Windows-RuntimePassing a URI to the Windows Runtime Beschreibt ein Problem, das auftreten kann, wenn Sie einen URI aus verwaltetem Code an Windows-RuntimeWindows Runtime übergeben, und wie Sie es vermeiden können.Describes an issue that can arise when you pass a URI from managed code to the Windows-RuntimeWindows Runtime, and how to avoid it.