Panoramica di .NET per le app di Windows Store
In .NET Framework viene fornito un sottoinsieme di tipi gestiti che puoi usare per creare app di Windows Store per Windows usando C# o Visual Basic. Questo subset di tipi gestiti viene chiamato .NET per app di 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.
Usa 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 app di 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 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 usato in un'app desktop di .NET Framework non esiste in .NET per app di Windows Store. In alternativa, puoi usare un tipo da Windows Runtime. Ad esempio, la classe System.IO.IsolatedStorage.IsolatedStorageSettings non è inclusa nel .NET per app di Windows Store, ma la classe Windows.Storage.ApplicationDataContainer fornisce un comportamento simile per la memorizzazione 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 app di Windows Store nel progetto quando si crea un'app in Windows Store usando C# o Visual Basic. Pertanto, puoi usare uno dei tipi supportati da .NET per app di Windows Store nel progetto senza altre azioni. Per un elenco degli spazi dei nomi combinati forniti da .NET per app di 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 for Windows Store apps – supported APIs.
Puoi inoltre creare un progetto Libreria di classi portabile per sviluppare una libreria .NET Framework che può essere usata 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 usate dalle app per tipi diversi di piattaforme, ad esempio un'app Windows Phone e Windows Store. Vedere Portable Class Libraries.
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
Questi argomenti includono informazioni sulla conversione di altre parti dell'app a 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 usare 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 Border si trova nello spazio dei nomi Windows.UI.Xaml.Controls. |
Per altre informazioni sulla portabilità del codice dell'interfaccia utente, vedi Migrazione di un'app di Windows Phone 7 a 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, invece di usare la classe System.IO.IsolatedStorage, usare i tipi negli spazi dei nomi Windows.Storage.
Sostituire |
Con |
---|---|
Classe System.IO.IsolatedStorage.IsolatedStorageFile |
Proprietà LocalFolder nella classe Windows.Storage.ApplicationData
|
Classe System.IO.IsolatedStorage.IsolatedStorageSettings |
Proprietà LocalSettings nella classe Windows.Storage.ApplicationData
|
Per altre informazioni, vedi Dati dell'applicazione.
Modifiche di rete
Sostituire |
Con |
---|---|
Classe System.Net.WebClient |
Classe 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 altre informazioni, vedi Passing a URI to the 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 altre informazioni, vedi Reflection in the .NET Framework for Windows Store Apps 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 usato nelle app desktop. Usa inoltre i tipi di risorsa degli spazi dei nomi Windows.ApplicationModel.Resources e Windows.ApplicationModel.Resources.Core invece dello spazio dei nomi System.Resources.
Per altre informazioni, vedi Creazione e recupero di risorse nelle applicazioni Windows Store.
Modifiche di eccezione
In alcuni casi, un tipo gestito genera un'eccezione che non è inclusa in .NET per app di 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 app di Windows Store. FormatException è la classe padre di UriFormatException.
Modifiche WCF
Nelle app in Windows Store, puoi usare 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.Array.AsReadOnly e System.Collections.Generic.List<T>.AsReadOnly |
Una nuova istanza della classe ReadOnlyCollection creata nel modo seguente:
|
Metodi di estensione per tipi di conversione
Nella maggior parte dei casi, sviluppa le app in Windows Store usando 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:
WindowsRuntimeStreamExtensions: per la conversione tra i flussi gestiti e i flussi in Windows Runtime.
WindowsRuntimeStorageExtensions: per aprire i file e le cartelle Windows Runtime come flussi gestiti.
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 app di 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 o versione successiva, 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
Altre risorse
.NET for Windows Store apps – supported APIs
Creating Windows Runtime Components for Javascript, in C# and Visual Basic
.NET Framework Support for Windows Store Apps and Windows Runtime