Vue d'ensemble de .NET pour les applications Windows Store

Le .NET Framework propose un sous-ensemble de types managés que vous pouvez utiliser pour créer des applications Windows Store à l'aide de C# ou Visual Basic. Ce sous-ensemble de types managés est appelé .NET pour les applications du Windows Store et permet aux développeurs .NET Framework de créer des applications Windows Store dans une infrastructure de programmation familière. Les types qui ne sont pas liés au développement d'applications Windows Store ne sont pas inclus dans le sous-ensemble.

Vous utilisez ces types managés avec des types de l'API Windows Runtime pour créer des applications Windows Store. En général, vous ne remarquerez aucune différence entre l'utilisation des types managés et des types Windows Runtime, mais les types managés résident dans les espaces de noms qui commencent par System et les types Windows Runtime résident dans les espaces de noms qui commencent par Windows. Ensemble, les .NET pour les applications du Windows Store et Windows Runtime fournissent un ensemble complet de types et de membres disponibles pour développer des applications Windows Store avec C# ou Visual Basic.

Le sous-ensemble de types et de membres managés a été clairement conçu pour développer des applications Windows Store. Par conséquent, il omet les éléments suivants :

  • Les types et les membres qui ne sont pas applicables au développement des applications Windows Store (par exemple, les types ASP.NET et console).

  • Les types hérités et obsolètes.

  • Les types qui se superposent avec les types Windows Runtime.

  • Les types et les membres qui incluent dans un wrapper des fonctionnalités du système d'exploitation (par exemple EventLog et les compteurs de performance).

  • Les membres qui sont source de confusion (par exemple, la méthode Close sur les types d'E/S).

Dans certains cas, un type utilisé dans une application de bureau .NET Framework n'existe pas dans les .NET pour les applications du Windows Store. À la place, vous pouvez utiliser un type de Windows Runtime. Par exemple, la classe System.IO.IsolatedStorage.IsolatedStorageSettings n'est pas incluse dans le .NET pour les applications du Windows Store, mais la classe Windows.Storage.ApplicationDataContainer offre un comportement similaire pour le stockage des paramètres de l'application. La section Convertir votre code .NET Framework existant présente des exemples de modifications courantes que vous devrez peut-être apporter.

Le jeu complet d'assemblys pour les .NET pour les applications du Windows Store est référencé automatiquement dans votre projet lorsque vous créez une application Windows Store à l'aide de C# ou Visual Basic. Par conséquent, vous pouvez utiliser l'un des types pris en charge par les .NET pour les applications du Windows Store dans votre projet sans qu'aucune action supplémentaire ne soit nécessaire. Pour obtenir la liste des espaces de noms combinés fournis par les .NET pour les applications du Windows Store et Windows Runtime (regroupés par domaine fonctionnel), consultez la section Espaces de noms .NET Framework et Windows Runtime.

Pour obtenir une liste des espaces de noms et des types inclus dans le sous-ensemble du .NET Framework, consultez .NET for Windows Store apps – supported APIs.

Vous pouvez également créer un projet Bibliothèque de classes portable pour développer une bibliothèque .NET Framework qui peut être utilisée à partir d'une application Windows Store. Le projet doit inclure .NET pour les applications Windows Store comme l'une des plateformes cibles. Bibliothèque de classes portable est particulièrement utile pour développer des classes qui peuvent être utilisées à partir d'applications pour différents types de plateformes, comme une application Windows Phone, une application de bureau et une application Windows Store. Consultez Développement interplateforme avec la bibliothèque de classes portable.

Cette rubrique inclut les sections suivantes :

  • Convertir votre code .NET Framework existant

  • Méthodes d'extension pour les types de conversion.

  • Espaces de noms .NET Framework et Windows Runtime

Ces rubriques fournissent des informations sur la conversion d'autres parties de votre application vers Windows Runtime :

Convertir votre code .NET Framework existant

En général, vous ne vous contentez pas de convertir une application .NET Framework existante en application Windows Store. Vous reconcevez l'application .NET Framework pour la nouvelle expérience utilisateur. Toutefois, vous pouvez convertir des parties d'une application .NET Framework existante afin de l'utiliser dans une application Windows Store. Lorsque vous convertissez un code .NET Framework existant, vous devez savoir que vous devrez peut-être apporter les modifications suivantes à votre application Windows Store :

  • Modifications de l'interface utilisateur

  • Modifications d'E/S

  • Modifications de stockage

  • Modifications de réseau

  • Modifications des threads

  • Modifications des réflexions

  • Modifications de la sécurité

  • Modifications des ressources

  • Modifications des exceptions

  • Modifications de WCF

  • Modifications des types .NET Framework généraux

BR230302.collapse_all(fr-fr,VS.120).gifModifications de l'interface utilisateur

Lorsque vous convertissez un code d'interface utilisateur à partir d'une application Silverlight ou Windows Phone, vous pouvez utiliser un grand nombre des types d'interface utilisateur, mais les types se trouvent désormais dans les espaces de noms Windows.UI.Xaml et non dans les espaces de noms System.Windows. Ces nouveaux types d'interface utilisateur sont semblables aux types d'interface utilisateur .NET Framework précédents, mais certains de leurs membres sont différents.

Remplacer

Par

Types d'interface utilisateur dans les espaces de noms System.Windows.*

Types d'interface utilisateur dans les espaces de noms Windows.UI.Xaml.*

(Par exemple, la classe Border se trouve dans l'espace de noms Windows.UI.Xaml.Controls)

Pour plus d'informations sur le portage du code de l'interface utilisateur, consultez Migration d'une application Windows Phone 7 vers XAML.

BR230302.collapse_all(fr-fr,VS.120).gifModifications d'E/S

Les types d'E/S contiennent de nouveaux membres pour prendre en charge le nouveau mot clé await dans le modèle de programmation asynchrone.

Remplacer

Par

Méthodes System.IO.Stream.BeginRead et EndRead

Méthode System.IO.Stream.ReadAsync

Pour obtenir un exemple, consultez ReadAsync(array<Byte[], Int32, Int32).

Méthodes System.IO.Stream.BeginWrite et EndWrite

Méthode System.IO.Stream.WriteAsync

Pour obtenir un exemple, consultez WriteAsync(array<Byte[], Int32, Int32).

Méthode Close() sur les classes d'E/S

Méthode Dispose() sur les classes d'E/S.

ou

Déclarez et instanciez l'objet d'E/S dans une instruction using (C#) ou Using (Visual Basic) pour vérifier qu'elle est correctement supprimée. Par exemple :

using (StreamReader sr = 
  new StreamReader(await passedFile.OpenStreamForReadAsync()))
{
    while ((nextLine = await sr.ReadLineAsync()) != null)
    {
        contents.Append(nextLine);
    }
}
Using sr As StreamReader = 
  New StreamReader(Await passedFile.OpenStreamForReadAsync())
    While (nextLine = Await sr.ReadLineAsync()) <> Nothing
        contents.Append(nextLine)
    End While
End Using

Méthode System.IO.File.ReadAllText

La méthode ReadTextAsync dans la classe Windows.Storage.PathIO

Code pour récupérer et ouvrir un fichier

public static async void ReadFileSamples()
{
  // Read a file from package
  StorageFolder packageFolder = 
      ApplicationModel.Package.Current.InstalledLocation;
  StorageFile packagedFile = 
      await packageFolder.GetFileAsync("FileInPackage");

  // Read a file from AppData
  StorageFolder localFolder = ApplicationData.Current.LocalFolder;
  StorageFile localFile = 
    await localFolder.GetFileAsync("FileInAppData");
}
Public Async Shared Sub ReadFileSamples()
  ' Read a file from package
  Dim packageFolder As StorageFolder = 
      ApplicationModel.Package.Current.InstalledLocation
  Dim packagedFile As StorageFile = 
      Await packageFolder.GetFileAsync("FileInPackage")

  ' Read a file from AppData
  Dim localFolder As StorageFolder = ApplicationData.Current.LocalFolder
  Dim localFile As StorageFile = 
    Await localFolder.GetFileAsync("FileInAppData ")
End Sub

BR230302.collapse_all(fr-fr,VS.120).gifModifications de stockage

Au lieu d'utiliser la classe System.IO.IsolatedStorage, utilisez les types dans les espaces de noms Windows.Storage pour stocker des données et des fichiers locaux.

Remplacer

Par

Classe System.IO.IsolatedStorage.IsolatedStorageFile

La propriété LocalFolder sur la classe Windows.Storage.ApplicationData

ApplicationData.Current.LocalFolder

Classe System.IO.IsolatedStorage.IsolatedStorageSettings

La propriété LocalSettings sur la classe Windows.Storage.ApplicationData

ApplicationData.Current.LocalSettings

Pour plus d'informations, consultez Données de l'application.

BR230302.collapse_all(fr-fr,VS.120).gifModifications de réseau

Remplacer

Par

Classe System.Net.WebClient

Classe HttpClient pour envoyer des requêtes HTTP et recevoir des réponses HTTP

ou

Types dans l'espace de noms Windows.Networking.BackgroundTransfer pour charger vers le serveur ou télécharger de grandes quantités de données

Types dans l'espace de noms System.Net.Sockets

Types dans l'espace de noms Windows.Networking.Sockets

URI relatifs, lorsqu'ils sont passés à Windows Runtime

URI absolus

Pour plus d'informations, consultez Transmission d'un URI à Windows Runtime.

Code de gestion des exceptions qui intercepte l'exception UriFormatException

Code qui intercepte l'exception FormatException, qui est la classe parente de UriFormatException

BR230302.collapse_all(fr-fr,VS.120).gifModifications des threads

Certains membres de thread .NET Framework ont changé et certains types sont maintenant disponibles dans l'API Windows Runtime.

Remplacer

Par

Méthode System.Threading.Thread.MemoryBarrier

Méthode Interlocked.MemoryBarrier dans l'espace de noms System.Threading

Propriété System.Threading.Thread.ManagedThreadId

Propriété Environment.CurrentManagedThreadId dans l'espace de noms System

Propriété System.Threading.Thread.CurrentCulture

Propriété CultureInfo.CurrentCulture dans l'espace de noms System.Globalization

Propriété System.Threading.Thread.CurrentUICulture

Propriété CultureInfo.CurrentUICulture dans l'espace de noms System.Globalization

Classe System.Threading.Timer

Classe Windows.System.Threading.ThreadPoolTimer

Classe System.Threading.ThreadPool

Classe Windows.System.Threading.ThreadPool

Code qui place en file d'attente le travail vers le pool

Task.Run(() => 
{ 
  // work goes here
});
Task.Run(
    Sub()
        ' work goes here
    End Sub)

Code qui place en file d'attente le travail vers le pool et qui attend la fin de l'exécution

await Task.Run(() => 
{ 
  // work goes here
});
Await Task.Run(
    Sub()
        ' work goes here
    End Sub)

Code qui crée un élément de travail de longue durée

Task.Factory.StartNew(() => 
{ 
  // work goes here
}, TaskCreationOptions.LongRunning);
Task.Factory.StartNew(
    Sub()
        ' work goes here
    End Sub, TaskCreationOptions.LongRunning)

BR230302.collapse_all(fr-fr,VS.120).gifModifications des réflexions

La plupart des membres de la classe System.Type ont été déplacés vers la classe System.Reflection.TypeInfo. Vous pouvez récupérer l'objet TypeInfo en appelant la méthode System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type), qui est une méthode d'extension pour Type.

Remplacer

Par

type.Assembly

type.GetTypeInfo().Assembly

type.GetMethods(BindingFlags.DeclaredOnly)

type.GetTypeInfo().DeclaredMethods

type.GetMethod("MethodName", BindingFlags.DeclaredOnly)

type.GetTypeInfo().GetDeclaredMethod("MethodName")

type.GetNestedTypes()

type.GetTypeInfo().DeclaredNestedTypes

Méthode System.Delegate.CreateDelegate

Méthode MethodInfo.CreateDelegate

Pour plus d'informations, consultez Réflexion dans le .NET Framework pour les applications Windows Store dans MSDN Library.

BR230302.collapse_all(fr-fr,VS.120).gifModifications de la sécurité

La plupart des types pour les opérations de sécurité, d'authentification et de chiffrement sont disponibles via les types Windows Runtime. Pour obtenir une liste complète des espaces de noms de sécurité disponibles pour les applications Windows Store, consultez la liste des espaces de noms de sécurité plus loin dans cette rubrique.

BR230302.collapse_all(fr-fr,VS.120).gifModifications des ressources

Pour les applications Windows Store, vous créez un fichier de ressources unique au lieu du modèle « hub and spoke » utilisé dans les applications de bureau. Utilisez aussi les types de ressources dans les espaces de noms Windows.ApplicationModel.Resources et Windows.ApplicationModel.Resources.Core au lieu de l'espace de noms System.Resources.

Pour plus d'informations, consultez Création et récupération de ressources dans les applications Windows Store.

BR230302.collapse_all(fr-fr,VS.120).gifModifications des exceptions

Dans certains cas, un type managé lève une exception qui n'est pas incluse dans les .NET pour les applications du Windows Store. Dans ces cas, vous pouvez intercepter la classe parente de l'exception qui n'est pas incluse. Par exemple, dans une application de bureau, vous interceptez l'exception UriFormatException pour gérer une URI valide. En revanche, dans une application Windows Store, vous interceptez l'exception FormatException, car UriFormatException n'est pas incluse dans les .NET pour les applications du Windows Store. FormatException est la classe parente de UriFormatException.

BR230302.collapse_all(fr-fr,VS.120).gifModifications de WCF

Dans les applications de Windows Store, vous pouvez utiliser la fonctionnalité cliente Windows Communication Foundation (WCF) pour récupérer des données d'un service WCF, mais vous ne pouvez pas créer un service WCF pour fournir les données.

BR230302.collapse_all(fr-fr,VS.120).gifModifications des types .NET Framework généraux

Remplacer

Par

Méthode System.Xml.XmlConvert.ToDateTime

Méthode XmlConvert.ToDateTimeOffset

Interface System.ICloneable

Méthode personnalisée qui retourne le type approprié

Méthodes System.Array.AsReadOnly et System.Collections.Generic.List<T>.AsReadOnly

Nouvelle instance de la classe ReadOnlyCollection, créée comme suit :

new ReadOnlyCollection<string>(selectedList)
New ReadOnlyCollection(Of String)(selectedList)

Méthodes d'extension pour les types de conversion.

Dans la plupart des cas, vous développez des applications Windows Store à l'aide des types .NET Framework et Windows Runtime, sans considération ni conversion spécifique. Toutefois, dans certains cas, le .NET Framework fournit des méthodes d'extension pour simplifier l'interaction entre les types .NET Framework et les types Windows Runtime. Ces méthodes d'extension figurent dans les classes suivantes :

  • WindowsRuntimeStreamExtensions, pour la conversion entre les flux managés et les flux de Windows Runtime.

  • WindowsRuntimeStorageExtensions, pour l'ouverture des fichiers et des dossiers Windows Runtime en tant que flux managés.

  • WindowsRuntimeBufferExtensions, pour la conversion vers et à partir de IBuffer.

Espaces de noms .NET Framework et Windows Runtime

Les sections suivantes répertorient les espaces de noms fournis dans les .NET pour les applications du Windows Store et Windows Runtime, organisés par fonctionnalités.

BR230302.collapse_all(fr-fr,VS.120).gifCollections

BR230302.collapse_all(fr-fr,VS.120).gifFondamentaux

BR230302.collapse_all(fr-fr,VS.120).gifDonnées et contenu

BR230302.collapse_all(fr-fr,VS.120).gifAppareils

BR230302.collapse_all(fr-fr,VS.120).gifDiagnostics

BR230302.collapse_all(fr-fr,VS.120).gifFichiers et dossiers

BR230302.collapse_all(fr-fr,VS.120).gifGlobalisation

BR230302.collapse_all(fr-fr,VS.120).gifGraphiques

BR230302.collapse_all(fr-fr,VS.120).gifManaged Extensibility Framework (MEF)

Pour installer les espaces de noms suivants, ouvrez votre projet dans Visual Studio 2012 ou une version ultérieure, sélectionnez Gérer les packages NuGet dans le menu Projet et recherchez en ligne le package Microsoft.Composition.

BR230302.collapse_all(fr-fr,VS.120).gifMédia

BR230302.collapse_all(fr-fr,VS.120).gifRéseau

BR230302.collapse_all(fr-fr,VS.120).gifPrésentation

BR230302.collapse_all(fr-fr,VS.120).gifImpression

BR230302.collapse_all(fr-fr,VS.120).gifRéflexion

BR230302.collapse_all(fr-fr,VS.120).gifRessources

BR230302.collapse_all(fr-fr,VS.120).gifSécurité

BR230302.collapse_all(fr-fr,VS.120).gifSocial

BR230302.collapse_all(fr-fr,VS.120).gifThread

BR230302.collapse_all(fr-fr,VS.120).gifAutomation de l'interface utilisateur

BR230302.collapse_all(fr-fr,VS.120).gifInteraction utilisateur

BR230302.collapse_all(fr-fr,VS.120).gifLangages et compilateurs

Voir aussi

Concepts

Création de composants Windows Runtime en C# et Visual Basic

Autres ressources

.NET for Windows Store apps – supported APIs

Prise en charge .NET Framework pour les applications Windows Store et Windows Runtime