Supporto .NET Framework per applicazioni Windows Store e Windows Runtime.NET Framework Support for Windows Store Apps and Windows Runtime

.NET Framework 4.5.NET Framework 4.5 supporta numerosi scenari di sviluppo software con Windows RuntimeWindows Runtime.The .NET Framework 4.5.NET Framework 4.5 supports a number of software development scenarios with the Windows RuntimeWindows Runtime. Questi scenari sono suddivisi in tre categorie:These scenarios fall into three categories:

In questo argomento viene descritto il supporto fornito da .NET Framework per tutte e tre le categorie e vengono illustrati gli scenari per i componenti Windows RuntimeWindows Runtime.This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows RuntimeWindows Runtime Components. Nella prima sezione sono incluse informazioni di base sulla relazione tra .NET Framework e Windows RuntimeWindows Runtime e vengono spiegate alcune singolarità che si possono verificare nel sistema della Guida e nell'IDE.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. Il seconda sezione vengono illustrati gli scenari per lo sviluppo di Windows RuntimeWindows Runtime componenti.The second section discusses scenarios for developing Windows RuntimeWindows Runtime Components.

Nozioni di baseThe Basics

.NET Framework supporta i tre scenari di sviluppo elencati in precedenza fornendo .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps e supportando Windows RuntimeWindows Runtime stesso.The .NET Framework supports the three development scenarios listed earlier by providing .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps, and by supporting the Windows RuntimeWindows Runtime itself.

  • .NET per applicazioni Windows Store fornisce una visualizzazione semplice delle librerie di classi di .NET Framework e includere solo i tipi e membri che è possibile utilizzare per creare Windows 8.x StoreWindows 8.x Store le App e Windows RuntimeWindows Runtime componenti..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.

    • Quando si utilizza Visual Studio (Visual Studio 2012Visual Studio 2012 o versioni successive) per sviluppare un'applicazione Windows 8.x StoreWindows 8.x Store o un componente Windows RuntimeWindows Runtime, grazie a un set di assembly di riferimento è possibile visualizzare solo i tipi e i membri appropriati.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.

    • Questo set di API efficace viene semplificato ulteriormente con la rimozione di funzionalità che sono duplicate in .NET Framework o tramite cui vengono duplicate funzionalità di Windows RuntimeWindows Runtime.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. Ad esempio, sono incluse solo le versioni generiche di tipi di raccolta e il modello a oggetti del documento XML viene eliminato a favore del set di API XML di Windows RuntimeWindows Runtime.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.

    • Anche le funzionalità tramite cui viene eseguito semplicemente il wrapping delle API del sistema operativo vengono rimosse, dal momento che Windows RuntimeWindows Runtime è semplice da chiamare dal codice gestito.Features that simply wrap the operating system API are also removed, because the Windows RuntimeWindows Runtime is easy to call from managed code.

    Per ulteriori informazioni, vedere la .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps, vedere la Panoramica le app .NET per Windows Store.To read more about the .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview. Per informazioni sul processo di selezione di API, vedere la .NET per applicazioni in stile Metro voce nel blog di .NET.To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • Il Windows Runtime fornisce all'utente gli elementi dell'interfaccia per la compilazione Windows 8.x StoreWindows 8.x Store App e fornisce l'accesso alle funzionalità del sistema operativo.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. Come per .NET Framework, in Windows RuntimeWindows Runtime sono disponibili metadati che consentono ai compilatori C# e Visual Basic di utilizzare Windows RuntimeWindows Runtime nello stesso modo in cui utilizzano le librerie di classi .NET Framework.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 semplifica l'utilizzo di Windows RuntimeWindows Runtime nascondendo alcune differenze:The .NET Framework makes it easier to use the Windows RuntimeWindows Runtime by hiding some differences:

    • Vengono celate alcune differenze nei modelli di programmazione tra .NET Framework e Windows RuntimeWindows Runtime, ad esempio il modello per aggiungere e rimuovere i gestori di eventi.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. È sufficiente utilizzare il modello di .NET Framework.You simply use the .NET Framework pattern.

    • Vengono celate alcune differenze nei tipi comunemente utilizzati, ad esempio i tipi primitivi e le raccolte.Some differences in commonly used types (for example, primitive types and collections) are hidden. Sufficiente usare il tipo di .NET Framework, come descritto in differenze visibili nell'IDE, più avanti in questo articolo.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

In genere, il supporto di .NET Framework per Windows RuntimeWindows Runtime è trasparente.Most of the time, .NET Framework support for the Windows RuntimeWindows Runtime is transparent. Nella sezione successiva vengono illustrate alcune delle differenze evidenti tra il codice gestito e Windows RuntimeWindows Runtime.The next section discusses some of the apparent differences between managed code and the Windows RuntimeWindows Runtime.

Documentazione di riferimento di .NET Framework e Windows RuntimeWindows RuntimeThe .NET Framework and the Windows RuntimeWindows Runtime Reference Documentation

Windows Runtime e i set di documentazione di .NET Framework sono separati.The Windows Runtime and the .NET Framework documentation sets are separate. Se si preme F1 per visualizzare la Guida su un tipo o un membro, viene visualizzata la documentazione di riferimento del set appropriato.If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. Tuttavia, se si esamina il riferimento Windows Runtime riscontrati esempi perplessità:However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • Argomenti, ad esempio il IIterable<T> interfaccia non dispone di sintassi di dichiarazione per Visual Basic o c#.Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. Al contrario, viene visualizzata una nota sopra la sezione relativa alla sintassi (in questo caso ".NET: questa interfaccia viene visualizzata come System<T >").Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). Ciò si verifica perché .NET Framework e Windows RuntimeWindows Runtime forniscono funzionalità simili con interfacce differenti.This is because the .NET Framework and the Windows RuntimeWindows Runtime provide similar functionality with different interfaces. Inoltre, vi sono differenze di comportamento: IIterable dispone di un metodo First anziché di un metodo GetEnumerator per restituire l'enumeratore.In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. Anziché dover apprendere un modo diverso per eseguire un'attività comune, .NET Framework supporta Windows RuntimeWindows Runtime visualizzando il codice gestito per utilizzare il tipo noto all'utente.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. L'interfaccia IIterable non verrà visualizzata nell'IDE e, pertanto, l'unico modo per riscontrarla nella documentazione di riferimento di Windows RuntimeWindows Runtime è scorrere direttamente la documentazione in questione.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.

  • Il SyndicationFeed(String, String, Uri) documentazione viene illustrato un problema strettamente correlato: vengono visualizzati i tipi di parametro può essere diverso per le diverse lingue.The SyndicationFeed(String, String, Uri) documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. Per C# e Visual Basic, i tipi di parametro sono System.String e System.Uri.For C# and Visual Basic, the parameter types are System.String and System.Uri. Inoltre, questa situazione si verifica in quanto .NET Framework dispone di propri tipi String e Uri e, per questi tipi comunemente utilizzati, non ha senso imporre agli utenti di .NET Framework di apprendere un modo diverso per eseguire le operazioni.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. Nell'IDE .NET Framework nasconde i corrispondenti tipi Windows RuntimeWindows Runtime.In the IDE, the .NET Framework hides the corresponding Windows RuntimeWindows Runtime types.

  • In alcuni casi, ad esempio il GridLength struttura, .NET Framework fornisce un tipo con lo stesso nome ma con altre funzionalità.In a few cases, such as the GridLength structure, the .NET Framework provides a type with the same name but more functionality. Ad esempio, un set di argomenti su costruttori e proprietà è associato a GridLength, ma con blocchi di sintassi solo per Visual Basic e C# perché i membri sono disponibili solo nel codice gestito.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 le strutture dispongono solo di campi.In the Windows RuntimeWindows Runtime, structures have only fields. Il Windows RuntimeWindows Runtime struttura richiede una classe helper, GridLengthHelper, per fornire una funzionalità equivalente.The Windows RuntimeWindows Runtime structure requires a helper class, GridLengthHelper, to provide equivalent functionality. Non verrà visualizzata la classe di supporto nell'IDE quando si scrive il codice gestito.You won't see that helper class in the IDE when you're writing managed code.

  • Nell'IDE, i tipi Windows RuntimeWindows Runtime sembrano derivare da System.Object.In the IDE, Windows RuntimeWindows Runtime types appear to derive from System.Object. Sembrano disporre di membri ereditati da Object, ad esempio Object.ToString.They appear to have members inherited from Object, such as Object.ToString. Questi membri funzionano come se i tipi ereditassero effettivamente da Object e se fosse possibile eseguire il cast dei tipi Windows RuntimeWindows Runtime a Object.These members operate as they would if the types actually inherited from Object, and Windows RuntimeWindows Runtime types can be cast to Object. Questa funzionalità fa parte del supporto fornito da .NET Framework per Windows RuntimeWindows Runtime.This functionality is part of the support that the .NET Framework provides for the Windows RuntimeWindows Runtime. Tuttavia, se si visualizzano i tipi nella documentazione di riferimento di Windows RuntimeWindows Runtime, non viene visualizzato alcun membro.However, if you view the types in the Windows RuntimeWindows Runtime reference documentation, no such members appear. La documentazione per questi membri apparentemente ereditati viene fornita dalla documentazione di riferimento a System.Object.The documentation for these apparent inherited members is provided by the System.Object reference documentation.

Differenze visibili nell'IDEDifferences That Are Visible in the IDE

In scenari di programmazione più avanzati, quali l'utilizzo di un componente Windows RuntimeWindows Runtime scritto in C# per fornire la logica per un'applicazione Windows 8.x StoreWindows 8.x Store compilata per Windows utilizzando JavaScript, queste differenze sono evidenti nell'IDE, nonché nella documentazione.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. Quando il componente restituisce un'interfaccia IDictionary<int, string> a JavaScript e l'utente lo esamina nel debugger di JavaScript, visualizzerà i metodi di IMap<int, string> poiché viene utilizzato il tipo Windows RuntimeWindows Runtime da parte di JavaScript.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. Alcuni tipi di raccolte comunemente utilizzati che vengono visualizzati in modo diverso nei due linguaggi sono riportati nella tabella seguente:Some commonly used collection types that appear differently in the two languages are shown in the following table:

Tipo Windows RuntimeWindows RuntimeWindows RuntimeWindows Runtime type Tipo .NET Framework corrispondenteCorresponding .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, IMap<K, V> e IMapView<K, V> vengono iterate utilizzando IKeyValuePair.In the Windows RuntimeWindows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. Quando vengono passate al codice gestito, vengono visualizzate come IDictionary<TKey, TValue> e IReadOnlyDictionary<TKey, TValue>, ed è quindi naturale utilizzare System.Collections.Generic.KeyValuePair<TKey, TValue> per enumerarle.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.

Il modo in cui le interfacce vengono visualizzate nel codice gestito influisce sul modo in cui vengono visualizzati i tipi tramite cui vengono implementate queste interfacce.The way interfaces appear in managed code affects the way types that implement these interfaces appear. Ad esempio, la classe PropertySet implementa IMap<K, V>, che compare nel codice gestito come IDictionary<TKey, TValue>.For example, the PropertySet class implements IMap<K, V>, which appears in managed code as IDictionary<TKey, TValue>. PropertySet compare come se avesse implementato IDictionary<TKey, TValue> anziché IMap<K, V>, dunque nel codice gestito risulta avere un metodo Add che si comporta come il metodo Add nei dizionari di .NET Framework.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. Non risulta avere un metodo Insert.It doesn't appear to have an Insert method.

Per ulteriori informazioni sull'utilizzo di .NET Framework per creare una Windows RuntimeWindows Runtime componente e una procedura dettagliata viene illustrato come utilizzare un componente di questo tipo con JavaScript, vedere creazione di componenti Windows Runtime in c# e Visual Basic.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.

Tipi primitiviPrimitive Types

Per abilitare l'utilizzo naturale di Windows RuntimeWindows Runtime nel codice gestito, vengono visualizzati i tipi primitivi di .NET Framework anziché quelli di Windows RuntimeWindows Runtime nel codice.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 i tipi primitivi quali la struttura Int32 presentano numerosi metodi e proprietà utili, ad esempio il metodo Int32.TryParse.In the .NET Framework, primitive types like the Int32 structure have many useful properties and methods, such as the Int32.TryParse method. Al contrario, i tipi primitivi e le strutture di Windows RuntimeWindows Runtime dispongono solo di campi.By contrast, primitive types and structures in the Windows RuntimeWindows Runtime have only fields. Quando si utilizzano le primitive nel codice gestito, sembrano essere tipi .NET Framework e si possono utilizzare le proprietà e i metodi dei tipi .NET Framework normalmente.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. Nell'elenco seguente viene fornito un riepilogo:The following list provides a summary:

  • Per le primitive di Windows RuntimeWindows Runtime Int32, Int64, Single, Double, Boolean, String (una raccolta non modificabile di caratteri Unicode), Enum, UInt32, UInt64 e Guid, utilizza il tipo con lo stesso nome nello spazio dei nomi System.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.

  • Per UInt8, utilizzare System.Byte.For UInt8, use System.Byte.

  • Per Char16, utilizzare System.Char.For Char16, use System.Char.

  • Per l'interfaccia IInspectable, utilizzare System.Object.For the IInspectable interface, use System.Object.

  • Per HRESULT, utilizzare una struttura con un membro System.Int32.For HRESULT, use a structure with one System.Int32 member.

Analogamente ai tipi di interfaccia, l'unico caso in cui si potrebbe verificare l'evidenza di questa rappresentazione è quando il progetto .NET Framework è un componente Windows RuntimeWindows Runtime utilizzato da un'applicazione Windows 8.x StoreWindows 8.x Store compilata tramite JavaScript.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.

Altri tipi Windows RuntimeWindows Runtime di base di uso comune visualizzati nel codice gestito come equivalenti di .NET Framework prevedono la struttura Windows.Foundation.DateTime, visualizzata nel codice gestito come struttura System.DateTimeOffset e la struttura Windows.Foundation.TimeSpan, visualizzata come struttura System.TimeSpan.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.

Altre differenzeOther Differences

In alcuni casi, poiché nel codice gestito vengono visualizzati i tipi .NET Framework anziché i tipi Windows RuntimeWindows Runtime, sono necessarie azioni aggiuntive.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. Ad esempio, il Windows.Foundation.Uri classe viene visualizzata come System.Uri nel codice .NET Framework.For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Uri consente a un URI relativo, ma Windows.Foundation.Uri richiede un URI assoluto.System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. Pertanto, quando si passa un URI a un metodo di Windows RuntimeWindows Runtime, è necessario assicurarsi che sia assoluto.Therefore, when you pass a URI to a Windows RuntimeWindows Runtime method, you must ensure that it's absolute. (Vedere passaggio di un URI a Windows Runtime.)(See Passing a URI to the Windows Runtime.)

Scenari per lo sviluppo di componenti Windows RuntimeScenarios for Developing Windows Runtime Components

Gli scenari supportati per i componenti Windows RuntimeWindows Runtime gestiti dipendono dai seguenti principi generali:The scenarios that are supported for managed Windows RuntimeWindows Runtime Components depend on the following general principles:

  • I componenti Windows RuntimeWindows Runtime compilati tramite .NET Framework non presentano differenze evidenti rispetto ad altre librerie Windows RuntimeWindows Runtime.Windows RuntimeWindows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows RuntimeWindows Runtimelibraries. Ad esempio, se si implementa di nuovo un componente nativo Windows RuntimeWindows Runtime tramite codice gestito, i due componenti sono apparentemente indistinguibili.For example, if you re-implement a native Windows RuntimeWindows Runtime component by using managed code, the two components are outwardly indistinguishable. Il fatto che il componente sia scritto in codice gestito non è visibile al codice in cui viene utilizzato, anche se il codice è esso stesso codice gestito.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. Tuttavia, internamente, il componente è realmente codice gestito e viene eseguito in Common Language Runtime (CLR).However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • Nei componenti possono essere contenuti tipi tramite cui viene implementata la logica dell'applicazione, i controlli dell'interfaccia utente di Windows 8.x StoreWindows 8.x Store o entrambi.Components can contain types that implement application logic, Windows 8.x StoreWindows 8.x Store UI controls, or both.

    Nota

    È consigliabile separare gli elementi dell'interfaccia utente dalla logica dell'applicazione.It's good practice to separate UI elements from application logic. Inoltre, non è possibile utilizzare i controlli dell'interfaccia utente di Windows 8.x StoreWindows 8.x Store in un'applicazione Windows 8.x StoreWindows 8.x Store compilata per Windows utilizzando JavaScript e HTML.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.

  • Un componente può essere un progetto all'interno di una soluzione Visual Studio per un'applicazione Windows 8.x StoreWindows 8.x Store oppure un componente riutilizzabile che è possibile aggiungere a più soluzioni.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.

    Nota

    Se il componente verrà utilizzato solo con C# o Visual Basic, non vi è alcun motivo di convertirlo in un componente Windows RuntimeWindows Runtime.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows RuntimeWindows Runtime component. Se lo si rende invece una comune libreria di classi .NET Framework, non è necessario limitare la relativa superficie dell'API pubblica a tipi Windows RuntimeWindows Runtime.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.

  • È possibile rilasciare le versioni di componenti riutilizzabili tramite il Windows RuntimeWindows Runtime VersionAttribute attributo per identificare quali tipi (e i membri all'interno di un tipo) sono state aggiunte nelle diverse versioni.You can release versions of reusable components by using the Windows RuntimeWindows Runtime VersionAttribute attribute to identify which types (and which members within a type) were added in different versions.

  • I tipi nel componente possono derivare da tipi Windows RuntimeWindows Runtime.The types in your component can derive from Windows RuntimeWindows Runtime types. I controlli possono derivare dai tipi di controllo primitivi nel Windows.UI.Xaml.Controls.Primitives spazio dei nomi o da più controlli, ad esempio 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.

    Importante

    A partire da Windows 8Windows 8 e .NET Framework 4.5.NET Framework 4.5, tutti i tipi pubblici in un componente Windows RuntimeWindows Runtime gestito devono essere sealed.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. Un tipo in un altro componente Windows RuntimeWindows Runtime non può derivare da questi.A type in another Windows RuntimeWindows Runtime component can't derive from them. Se si desidera fornire il comportamento polimorfico nel componente, è possibile creare un'interfaccia e implementarla nei tipi polimorfici.If you want to provide polymorphic behavior in your component, you can create an interface and implement it in the polymorphic types.

  • Tutti i parametri e i tipi restituiti nei tipi pubblici nel componente devono essere tipi Windows RuntimeWindows Runtime, inclusi i tipi Windows RuntimeWindows Runtime definiti dal componente in questione.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).

Nelle sezioni seguenti vengono forniti esempi di scenari comuni.The following sections provide examples of common scenarios.

Logica di un'applicazione Windows 8.x StoreWindows 8.x Store con JavaScriptApplication Logic for a Windows 8.x StoreWindows 8.x Store App with JavaScript

Quando si sviluppa un'applicazione Windows 8.x StoreWindows 8.x Store per Windows utilizzando JavaScript, è possibile che alcune parti della logica dell'applicazione vengano eseguite in maniera ottimale nel codice gestito o risultino più semplici da sviluppare.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. Con JavaScript non è possibile utilizzare direttamente le librerie di classi .NET Framework, ma si può rendere la libreria di classi un file con estensione WinMD.JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. In questo scenario, il componente Windows RuntimeWindows Runtime è parte integrante dell'applicazione, pertanto può non essere opportuno fornire attributi della versione.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.

Controlli riutilizzabili dell'interfaccia utente di Windows 8.x StoreWindows 8.x StoreReusable Windows 8.x StoreWindows 8.x Store UI Controls

È possibile inserire in un pacchetto un set di controlli correlati dell'interfaccia utente in un componente Windows RuntimeWindows Runtime riutilizzabile.You can package a set of related UI controls in a reusable Windows RuntimeWindows Runtime component. Il componente può essere commercializzato da solo o utilizzato come elemento nelle applicazioni create.The component can be marketed on its own or used as an element in the apps you create. In questo scenario, è opportuno usare la Windows RuntimeWindows Runtime VersionAttribute attributi per migliorare la compatibilità.In this scenario, it makes sense to use the Windows RuntimeWindows Runtime VersionAttribute attribute to improve compatibility.

Logica di un'applicazione riutilizzabile da applicazioni .NET Framework esistentiReusable Application Logic from Existing .NET Framework Apps

È possibile inserire in un pacchetto il codice gestito di applicazioni desktop esistenti come componente Windows RuntimeWindows Runtime autonomo.You can package managed code from your existing desktop apps as a standalone Windows RuntimeWindows Runtime component. In questo modo è possibile utilizzare il componente in applicazioni Windows 8.x StoreWindows 8.x Store compilate con C++ o JavaScript, nonché in applicazioni Windows 8.x StoreWindows 8.x Store compilate con C# o Visual Basic.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. Il controllo delle versioni rappresenta un'opzione in caso di più scenari di riutilizzo del codice.Versioning is an option if there are multiple reuse scenarios for the code.

TitoloTitle DescrizioneDescription
Panoramica di .NET per le app di Windows Store.NET for Windows Store apps overview Descrive i tipi e i membri di .NET Framework usabili per creare app Windows 8.x StoreWindows 8.x Store e componenti Windows RuntimeWindows Runtime.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. In Dev Center di Windows.(In the Windows Dev Center.)
Guida di orientamento alle App Windows Store scritte in c# o Visual BasicRoadmap for Windows Store apps using C# or Visual Basic Fornisce risorse chiave per iniziare a sviluppare applicazioni Windows 8.x StoreWindows 8.x Store utilizzando C# o Visual Basic, inclusi molti argomenti della guida rapida, linee guida e procedure consigliate.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. In Dev Center di Windows.(In the Windows Dev Center.)
Modalità tos (XAML)How tos (XAML) Fornisce risorse chiave per iniziare a sviluppare applicazioni Windows 8.x StoreWindows 8.x Store utilizzando C# o Visual Basic, inclusi molti argomenti della guida rapida, linee guida e procedure consigliate.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. In Dev Center di Windows.(In the Windows Dev Center.)
Creazione di componenti Windows Runtime in C# e Visual BasicCreating Windows Runtime Components in C# and Visual Basic Viene illustrato come creare un componente Windows RuntimeWindows Runtime utilizzando .NET Framework, viene spiegato come utilizzarlo come parte di un'applicazione Windows 8.x StoreWindows 8.x Store compilata per Windows utilizzando JavaScript e viene descritto come eseguire il debug della combinazione con Visual Studio.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. In Dev Center di Windows.(In the Windows Dev Center.)
Riferimento a Windows RuntimeWindows Runtime reference Documentazione di riferimento per Windows RuntimeWindows Runtime.The reference documentation for the Windows RuntimeWindows Runtime. In Dev Center di Windows.(In the Windows Dev Center.)
Passaggio di un URI a Windows RuntimePassing a URI to the Windows Runtime Viene descritto un problema che può verificarsi quando si passa un URI dal codice gestito a Windows RuntimeWindows Runtime e come evitare questo inconveniente.Describes an issue that can arise when you pass a URI from managed code to the Windows RuntimeWindows Runtime, and how to avoid it.