Panoramica di .NET per le applicazioni Windows Store
In .NET Framework viene fornito un sottoinsieme di tipi gestiti che puoi utilizzare per creare app di Windows Store per Windows utilizzando C# o Visual Basic. Questo subset di tipi gestiti viene chiamato .NET per applicazioni Windows Store e consente agli sviluppatori di .NET Framework di creare app in Windows Store in un framework di programmazione noto. Alcuni tipi che non sono correlati allo sviluppo di app in Windows Store non sono inclusi nel subset.
Utilizza questi tipi gestiti con i tipi dall'API Windows Runtime per la creazione delle app in Windows Store. In genere, non noterai alcuna differenza nell'utilizzo di tipi gestiti e di tipi Windows Runtime a parte che i primi risiedono negli spazi dei nomi che iniziano con System, mentre i tipi Windows Runtime risiedono negli spazi dei nomi che iniziano con Windows. .NET per applicazioni Windows Store e Windows Runtime forniscono insieme un set completo di tipi e membri disponibili per lo sviluppo di app in Windows Store con C# o Visual Basic.
Il subset di tipi e membri gestiti è stato progettato con attenzione allo sviluppo di app in Windows Store. Pertanto, non include quanto segue:
I tipi e i membri non applicabili allo sviluppo di app in Windows Store (quali console e tipi ASP.NET).
I tipi obsoleti e legacy.
I tipi che si sovrappongono a Windows Runtime.
I tipi e i membri che eseguono il wrapping della funzionalità del sistema operativo (come System.Diagnostics.EventLog e i contatori delle prestazioni).
I membri che provocano confusione (come il metodo di Close sui tipi di I/O).
In alcuni casi, un tipo utilizzato in un'app desktop di .NET Framework non esiste in .NET per applicazioni Windows Store. In alternativa, puoi utilizzare un tipo da Windows Runtime. Ad esempio, la classe System.IO.IsolatedStorage.IsolatedStorageSettings non è inclusa in .NET per applicazioni Windows Store, ma la classe Windows.Storage.ApplicationDataContainer fornisce un comportamento simile per l'archiviazione delle impostazioni dell'app. Nella sezione Conversione del codice .NET Framework esistente sono inclusi esempi di modifiche comuni che potrebbero essere necessarie.
Viene fatto automaticamente riferimento all'intero set di assembly per .NET per applicazioni Windows Store nel progetto quando si crea un'app in Windows Store utilizzando C# o Visual Basic. Pertanto, puoi utilizzare uno dei tipi supportati da .NET per applicazioni Windows Store nel progetto senza altre azioni. Per un elenco degli spazi dei nomi combinati forniti da .NET per applicazioni Windows Store e da Windows Runtime (raggruppati per area funzionale), vedi la sezione Spazi dei nomi di Windows Runtime e .NET Framework.
Per un elenco di spazi dei nomi e tipi inclusi nel subset .NET Framework, vedi .NET per le applicazioni Windows Store: API supportate.
Puoi inoltre creare un progetto Libreria di classi portabile per sviluppare una libreria .NET Framework che può essere utilizzata da un'app Windows Store. Il progetto deve includere .NET per le applicazioni Windows Store quali le piattaforme di destinazione. Libreria di classi portabile è particolarmente utile quando desideri sviluppare le classi che possono essere utilizzate dalle app per tipi diversi di piattaforme, ad esempio un'app Windows Phone e Windows Store. Vedi Cenni preliminari portabili la libreria di classi.
In questo argomento sono incluse le seguenti sezioni:
Conversione del codice .NET Framework esistente
Metodi di estensione per tipi di conversione
Spazi dei nomi di .NET Framework e Windows Runtime
Conversione del codice .NET Framework esistente
In genere, non converti semplicemente un'app .NET Framework esistente in un'app Windows Store, ma riprogetti l'app .NET Framework per la nuova esperienza utente. Se lo desideri, tuttavia, puoi convertire parti di un'app .NET Framework esistente in una nuova app Windows Store. Quando converti il codice esistente di .NET Framework, ricordati le seguenti modifiche che potrebbe essere necessario apportare nell'app in Windows Store:
Modifiche all'interfaccia utente
Modifiche I/O
Modifiche di archiviazione
Modifiche di rete
Modifiche di threading
Modifiche di reflection
Modifiche di sicurezza
Modifiche di risorsa
Modifiche di eccezione
Modifiche WCF
Modifiche nei tipi .NET Framework generali
Modifiche all'interfaccia utente
Quando converti il codice dell'interfaccia utente da un'app basata su Silverlight o un'app Windows Phone, puoi utilizzare molti degli stessi tipi di interfaccia utente. I tipi si trovano però negli spazi dei nomi di Windows.UI.Xaml anziché di System.Windows. Questi nuovi tipi di interfaccia utente sono simili ai tipi di interfaccia utente .NET Framework precedenti, ma contengono membri diversi.
Sostituire |
Con |
---|---|
Tipi di interfaccia utente negli spazi dei nomi di System.Windows.* |
Tipi di interfaccia utente negli spazi dei nomi di Windows.UI.Xaml.* (ad esempio, la classe Bordo si trova nello spazio dei nomi Windows.UI.Xaml.Controls) |
Per ulteriori informazioni sul codice interfaccia utente di porting, vedi Migrazione di un'app Windows Phone 7 in XAML.
Modifiche I/O
Nei tipi di I/O sono inclusi i nuovi membri per supportare la nuova parola chiave await nel modello di programmazione asincrono.
Modifiche di archiviazione
Per archiviare i dati locali e i file, piuttosto che utilizzare la classe System.IO.IsolatedStorage, utilizzare i tipi negli spazi dei nomi Windows.Storage.
Sostituire |
Con |
---|---|
Classe System.IO.IsolatedStorage.IsolatedStorageFile |
Proprietà LocalFolder della classe Windows.Storage.ApplicationData
|
Classe System.IO.IsolatedStorage.IsolatedStorageSettings |
Proprietà LocalSettings della classe Windows.Storage.ApplicationData
|
Per ulteriori informazioni, vedi Dati applicazione.
Modifiche di rete
Sostituire |
Con |
---|---|
Classe System.Net.WebClient |
Classe System.Net.Http.HttpClient per l'invio delle richieste HTTP e la ricezione di risposte HTTP -o- Tipi nello spazio dei nomi Windows.Networking.BackgroundTransfer per caricare o scaricare grandi quantità di dati |
Tipi nello spazio dei nomi System.Net.Sockets |
Tipi nello spazio dei nomi Windows.Networking.Sockets |
URI relativi, una volta passati ai tipi Windows Runtime |
URI assoluti Per ulteriori informazioni, vedi Passaggio di un URI a Windows Runtime. |
Codice di gestione delle eccezioni che memorizza nella cache l'eccezione UriFormatException |
Codice che memorizza nella cache l'eccezione FormatException che rappresenta la classe padre di UriFormatException |
Modifiche di threading
Parte dei membri di threading di .NET Framework sono stati modificati e alcuni tipi sono ora disponibili nell'API Windows Runtime.
Sostituire |
Con |
---|---|
Metodo System.Threading.Thread.MemoryBarrier |
Metodo Interlocked.MemoryBarrier nello spazio dei nomi System.Threading |
Proprietà System.Threading.Thread.ManagedThreadId |
Proprietà Environment.CurrentManagedThreadId nello spazio dei nomi System |
Proprietà System.Threading.Thread.CurrentCulture |
Proprietà CultureInfo.CurrentCulture nello spazio dei nomi System.Globalization |
Proprietà System.Threading.Thread.CurrentUICulture |
Proprietà CultureInfo.CurrentUICulture nello spazio dei nomi System.Globalization |
Classe System.Threading.Timer |
|
Classe System.Threading.ThreadPool |
|
Codice che accoda lavoro al pool |
|
Il codice che accoda lavoro al pool e ne attende il completamento |
|
Il codice che crea un elemento di lavoro di lunga durata |
|
Modifiche di reflection
La maggior parte dei membri dalla classe System.Type sono stati spostati nella classe System.Reflection.TypeInfo. Puoi recuperare l'oggetto TypeInfo chiamando System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type), che rappresenta un metodo di estensione per Type.
Sostituire |
Con |
---|---|
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 |
Metodo System.Delegate.CreateDelegate |
Metodo MethodInfo.CreateDelegate |
Per ulteriori informazioni, vedi Reflection in .NET Framework per applicazioni Windows Store in MSDN Library.
Modifiche di sicurezza
Per le operazioni di sicurezza, autenticazione e crittografia molti tipi sono disponibili tramite i tipi Windows Runtime. Per un elenco completo degli spazi dei nomi di sicurezza disponibili per le app in Windows Store, vedi l'elenco degli spazi dei nomi di sicurezza più avanti in questo argomento.
Modifiche di risorsa
Per le app in Windows Store, puoi creare un singolo file di risorse anziché il modello hub e spoke utilizzato nelle app desktop. Inoltre, utilizzare i tipi di risorsa negli spazi dei nomi Windows.ApplicationModel.Resources e Windows.ApplicationModel.Resources.Core anziché nello spazio dei nomi System.Resources.
Per ulteriori informazioni, vedi Creazione e recupero di risorse nelle app di Windows Store.
Modifiche di eccezione
In alcuni casi, un tipo gestito genera un'eccezione che non è inclusa in .NET per applicazioni Windows Store. In questi casi, puoi intercettare la classe padre dell'eccezione non inclusa. Ad esempio, in un'applicazione desktop, intercetta l'eccezione UriFormatException per gestire un URI non valido; ma in un'applicazione in Windows Store intercetta l'eccezione FormatException perché UriFormatException non è incluso in .NET per applicazioni Windows Store. FormatException è la classe padre di UriFormatException.
Modifiche WCF
Nelle app in Windows Store, puoi utilizzare la funzionalità client Windows Communication Foundation (WCF) per recuperare dati da un servizio WCF, ma non puoi creare un servizio WCF per l'utilizzo dei dati.
Modifiche nei tipi .NET Framework generali
Sostituire |
Con |
---|---|
Metodo System.Xml.XmlConvert.ToDateTime |
Metodo XmlConvert.ToDateTimeOffset |
Interfaccia System.ICloneable |
Un metodo personalizzato che restituisce il tipo appropriato |
Metodi System.Collections.Generic.List e di System.Array.AsReadOnly<T>.AsReadOnly |
Una nuova istanza della classe System.Collections.ObjectModel.ReadOnlyCollection<T> creata nel modo seguente:
|
Metodi di estensione per tipi di conversione
Nella maggior parte dei casi, sviluppa le app in Windows Store utilizzando i tipi .NET Framework e i tipi Windows Runtime insieme senza alcuna particolare attenzione o conversione. Tuttavia, in alcuni casi, .NET Framework fornisce metodi di estensione per semplificare l'interazione tra i tipi .NET Framework e i tipi Windows Runtime. Tali metodi di estensione si trovano nelle seguenti classi:
System.IO.WindowsRuntimeStreamExtensions: per la conversione tra i flussi gestiti e i flussi in Windows Runtime.
System.IO.WindowsRuntimeStorageExtensions: per aprire i file e le cartelle Windows Runtime come flussi gestiti.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions: per la conversione verso e da IBuffer.
Spazi dei nomi .NET Framework e Windows Runtime
Nelle sezioni seguenti sono elencati gli spazi dei nomi forniti in .NET per applicazioni Windows Store e in Windows Runtime, organizzati per funzionalità.
Raccolte
Core
Dati e contenuto
Dispositivi
Diagnostica
File e cartelle
Globalizzazione
Grafica
Managed Extensibility Framework (MEF)
Per installare i seguenti spazi dei nomi, apri il progetto in Visual Studio 2012, seleziona Gestione pacchetti NuGet dal menu Progetto e cerca online il pacchetto Microsoft.Composition.
Supporti multimediali
Servizi di rete
Presentazione
Stampa
Reflection
Risorse
Sicurezza
Sociale
Threading
Automazione interfaccia utente
Interazione utente
Linguaggi e compilatori
Vedere anche
Concetti
.NET per le applicazioni Windows Store: API supportate
Creazione di componenti Windows Runtime in C# e Visual Basic
Altre risorse
Supporto .NET Framework per applicazioni Windows Store e Windows Runtime