Compatibilidad de .NET Framework con las aplicaciones de la Tienda Windows y Windows en tiempo de ejecución.NET Framework Support for Windows Store Apps and Windows Runtime

El .NET Framework 4,5 admite varios escenarios de desarrollo de software con la Windows Runtime.The .NET Framework 4.5 supports a number of software development scenarios with the Windows Runtime. Estos escenarios se clasifican en tres categorías:These scenarios fall into three categories:

En este tema se describe la compatibilidad que proporciona el .NET Framework para las tres categorías y se describen los escenarios para los componentes de Windows Runtime.This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows Runtime Components. La primera sección incluye información básica acerca de la relación entre el .NET Framework y el Windows Runtime, y explica algunos singularidades que puede encontrar en el sistema de ayuda y el IDE.The first section includes basic information about the relationship between the .NET Framework and the Windows Runtime, and explains some oddities you might encounter in the Help system and the IDE. En la segunda sección se describen los escenarios para desarrollar componentes de Windows Runtime.The second section discusses scenarios for developing Windows Runtime Components.

Conceptos básicosThe Basics

El .NET Framework admite los tres escenarios de desarrollo enumerados anteriormente al proporcionar .NET para aplicaciones de la Tienda Windows 8.x.NET for Windows 8.x Store apps y al admitir el propio Windows Runtime.The .NET Framework supports the three development scenarios listed earlier by providing .NET para aplicaciones de la Tienda Windows 8.x.NET for Windows 8.x Store apps, and by supporting the Windows Runtime itself.

  • Los espacios de nombres .NET Framework y Windows Runtime proporcionan una vista simplificada de las bibliotecas de clases de .NET Framework e incluyen solo los tipos y miembros que se pueden usar para crear aplicaciones Tienda Windows 8.xWindows 8.x Store y componentes de Windows Runtime..NET Framework and Windows Runtime namespaces provides a streamlined view of the .NET Framework class libraries and include only the types and members you can use to create Tienda Windows 8.xWindows 8.x Store apps and Windows Runtime Components.

    • Cuando se usa Visual Studio (Visual Studio 2012 o posterior) para desarrollar una aplicación Tienda Windows 8.xWindows 8.x Store o un componente Windows Runtime, un conjunto de ensamblados de referencia garantiza que solo se ven los tipos y miembros pertinentes.When you use Visual Studio (Visual Studio 2012 or later) to develop a Tienda Windows 8.xWindows 8.x Store app or a Windows Runtime component, a set of reference assemblies ensures that you see only the relevant types and members.

    • Este conjunto de API simplificado se ha simplificado aún más mediante la eliminación de características que se duplican en el .NET Framework o que duplican características Windows Runtime.This streamlined API set is simplified further by the removal of features that are duplicated within the .NET Framework or that duplicate Windows Runtime features. Por ejemplo, contiene solo las versiones genéricas de los tipos de colección y el modelo de objetos de documento XML se elimina en favor del conjunto de API de Windows Runtime XML.For example, it contains only the generic versions of collection types, and the XML document object model is eliminated in favor of the Windows Runtime XML API set.

    • También se quitan las características que simplemente encapsulan la API del sistema operativo, ya que la Windows Runtime es fácil de llamar desde código administrado.Features that simply wrap the operating system API are also removed, because the Windows Runtime is easy to call from managed code.

    Para obtener más información sobre el .NET para aplicaciones de la Tienda Windows 8.x.NET for Windows 8.x Store apps, consulte la información general de .net para aplicaciones de la tienda Windows.To read more about the .NET para aplicaciones de la Tienda Windows 8.x.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview. Para obtener información sobre el proceso de selección de la API, consulte la entrada .net para aplicaciones estilo metro en el blog de .net.To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • El Windows Runtime proporciona los elementos de la interfaz de usuario para crear aplicaciones de Tienda Windows 8.xWindows 8.x Store y proporciona acceso a las características del sistema operativo.The Windows Runtime provides the user interface elements for building Tienda Windows 8.xWindows 8.x Store apps, and provides access to operating system features. Al igual que el .NET Framework, el Windows Runtime tiene metadatos C# que permiten a los compiladores y Visual Basic usar el Windows Runtime la forma en que usan las bibliotecas de clases de .NET Framework.Like the .NET Framework, the Windows Runtime has metadata that enables the C# and Visual Basic compilers to use the Windows Runtime the way they use the .NET Framework class libraries. El .NET Framework facilita el uso del Windows Runtime ocultando algunas diferencias:The .NET Framework makes it easier to use the Windows Runtime by hiding some differences:

    • Algunas diferencias en los patrones de programación entre el .NET Framework y el Windows Runtime, como el patrón para agregar y quitar controladores de eventos, están ocultas.Some differences in programming patterns between the .NET Framework and the Windows Runtime, such as the pattern for adding and removing event handlers, are hidden. Simplemente se usa el patrón de .NET Framework.You simply use the .NET Framework pattern.

    • Algunas diferencias de tipos de uso general (por ejemplo, los tipos primitivos y las colecciones) están ocultas.Some differences in commonly used types (for example, primitive types and collections) are hidden. Simplemente use el tipo de .NET Framework, como se describe en diferencias que son visibles en el IDE, más adelante en este artículo.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

La mayoría de las veces, la compatibilidad de .NET Framework con la Windows Runtime es transparente.Most of the time, .NET Framework support for the Windows Runtime is transparent. En la sección siguiente se describen algunas de las diferencias aparentes entre el código administrado y el Windows Runtime.The next section discusses some of the apparent differences between managed code and the Windows Runtime.

La documentación de referencia de .NET Framework y Windows RuntimeThe .NET Framework and the Windows Runtime Reference Documentation

Los conjuntos de documentación Windows Runtime y .NET Framework son independientes.The Windows Runtime and the .NET Framework documentation sets are separate. Si presiona F1 para mostrar la ayuda sobre un tipo o miembro, se muestra la documentación de referencia del conjunto correspondiente.If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. Sin embargo, si examina la referencia de Windows Runtime podría encontrar ejemplos que parecen desconcertantes:However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • Los temas como la interfaz IIterable<T> no tienen sintaxis de declaración para Visual Basic C#o.Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. En su lugar, aparece una nota encima de la sección de sintaxis (en este caso, ".NET: Esta interfaz aparece como System. Collections. Generic. IEnumerable @ no__t-0T > ").Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). Esto se debe a que el .NET Framework y el Windows Runtime ofrecen una funcionalidad similar con distintas interfaces.This is because the .NET Framework and the Windows Runtime provide similar functionality with different interfaces. Además, hay diferencias de comportamiento: IIterable tiene un método First en lugar de un método GetEnumerator para devolver el enumerador.In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. En lugar de obligarle a aprender otra manera de realizar una tarea común, el .NET Framework admite el Windows Runtime haciendo que parezca que el código administrado usa el tipo con el que está familiarizado.Instead of forcing you to learn a different way of performing a common task, the .NET Framework supports the Windows Runtime by making your managed code appear to use the type you're familiar with. No verá la interfaz IIterable en el IDE y, por lo tanto, la única manera en que la encontrará en la documentación de referencia de Windows Runtime es examinar la documentación directamente.You won't see the IIterable interface in the IDE, and therefore the only way you'll encounter it in the Windows Runtime reference documentation is by browsing through that documentation directly.

  • La documentación SyndicationFeed(String, String, Uri) ilustra un problema estrechamente relacionado: Sus tipos de parámetro parecen ser diferentes para distintos idiomas.The SyndicationFeed(String, String, Uri) documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. Para C# y Visual Basic, los tipos de parámetros son System.String y System.Uri.For C# and Visual Basic, the parameter types are System.String and System.Uri. Esto también se debe a que .NET Framework tiene sus propios tipos String y Uri, y para esos tipos de uso tan general no tiene sentido obligar a los usuarios de .NET Framework a aprender una forma distinta de hacer las cosas.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. En el IDE, el .NET Framework oculta los tipos de Windows Runtime correspondientes.In the IDE, the .NET Framework hides the corresponding Windows Runtime types.

  • En algunos casos, como la estructura GridLength, el .NET Framework proporciona un tipo con el mismo nombre pero con más funcionalidad.In a few cases, such as the GridLength structure, the .NET Framework provides a type with the same name but more functionality. Por ejemplo, existe un conjunto de temas sobre constructores y propiedades relacionados con GridLength, pero solo tienen bloques de sintaxis para Visual Basic y C# porque los miembros solo están disponibles en el código administrado.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. En el Windows Runtime, las estructuras solo tienen campos.In the Windows Runtime, structures have only fields. La estructura de Windows Runtime requiere una clase auxiliar, GridLengthHelper, para proporcionar una funcionalidad equivalente.The Windows Runtime structure requires a helper class, GridLengthHelper, to provide equivalent functionality. No verá esa clase del asistente en el IDE cuando escriba código administrado.You won't see that helper class in the IDE when you're writing managed code.

  • En el IDE, los tipos de Windows Runtime parecen derivar de System.Object.In the IDE, Windows Runtime types appear to derive from System.Object. Parece que tienen miembros heredados de Object, como Object.ToString.They appear to have members inherited from Object, such as Object.ToString. Estos miembros funcionan como lo harían si los tipos heredados realmente de Object, y los tipos de Windows Runtime se pueden convertir a Object.These members operate as they would if the types actually inherited from Object, and Windows Runtime types can be cast to Object. Esta funcionalidad forma parte de la compatibilidad que proporciona el .NET Framework para la Windows Runtime.This functionality is part of the support that the .NET Framework provides for the Windows Runtime. Sin embargo, si ve los tipos en la documentación de referencia de Windows Runtime, no aparece ningún miembro de este tipo.However, if you view the types in the Windows Runtime reference documentation, no such members appear. La documentación para estos miembros aparentemente heredados se proporciona en la documentación de referencia de System.Object.The documentation for these apparent inherited members is provided by the System.Object reference documentation.

Diferencias que son visibles en el IDEDifferences That Are Visible in the IDE

En escenarios de programación más avanzados, como el uso de un componente de C# Windows Runtime escrito en para proporcionar la lógica de aplicación para una aplicación Tienda Windows 8.xWindows 8.x Store compilada para Windows con JavaScript, estas diferencias se muestran en el IDE, así como en la documentación.In more advanced programming scenarios, such as using a Windows Runtime component written in C# to provide the application logic for a Tienda Windows 8.xWindows 8.x Store app built for Windows using JavaScript, such differences are apparent in the IDE as well as in the documentation. Cuando el componente devuelva un IDictionary<int, string> a JavaScript y lo examine en el depurador de JavaScript, verá los métodos de IMap<int, string> porque JavaScript usa el tipo de Windows Runtime.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 Runtime type. Algunos tipos de colección de uso general que aparecen de manera diferente en los dos lenguajes se muestran en la tabla siguiente:Some commonly used collection types that appear differently in the two languages are shown in the following table:

Tipo de Windows en tiempo de ejecuciónWindows Runtime type Tipo correspondiente de .NET FrameworkCorresponding .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

En el Windows Runtime, IMap<K, V> y IMapView<K, V> se recorren en iteración con IKeyValuePair.In the Windows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. Cuándo se pasan al código administrado, aparecen como IDictionary<TKey, TValue> e IReadOnlyDictionary<TKey, TValue>, por lo que naturalmente se usa System.Collections.Generic.KeyValuePair<TKey, TValue> para enumerarlas.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.

La forma en que las interfaces aparecen en código administrado afecta a la forma en que aparecen los tipos que implementan estas interfaces.The way interfaces appear in managed code affects the way types that implement these interfaces appear. Por ejemplo, la clase PropertySet implementa IMap<K, V>, que aparece en código administrado como IDictionary<TKey, TValue>.For example, the PropertySet class implements IMap<K, V>, which appears in managed code as IDictionary<TKey, TValue>. PropertySet aparece como si se implementara IDictionary<TKey, TValue> en lugar de IMap<K, V>, por lo que en código administrado parece tener un método Add, que se comporta como el método Add en diccionarios de .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. No parece tener un método Insert.It doesn't appear to have an Insert method.

Para obtener más información sobre el uso de la .NET Framework para crear un componente de Windows Runtime y un tutorial que muestra cómo usar este componente con JavaScript, vea crear componentes de C# Windows Runtime en y Visual Basic.For more information about using the .NET Framework to create a Windows 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.

Tipos primitivosPrimitive Types

Para habilitar el uso natural del Windows Runtime en código administrado, aparecen .NET Framework tipos primitivos en lugar de Windows Runtime tipos primitivos en el código.To enable the natural use of the Windows Runtime in managed code, .NET Framework primitive types appear instead of Windows Runtime primitive types in your code. En .NET Framework, los tipos primitivos como la estructura Int32 tienen muchas propiedades y métodos útiles, como el método Int32.TryParse.In the .NET Framework, primitive types like the Int32 structure have many useful properties and methods, such as the Int32.TryParse method. Por el contrario, los tipos primitivos y las estructuras del Windows Runtime solo tienen campos.By contrast, primitive types and structures in the Windows Runtime have only fields. Cuando se usan primitivas en el código administrado, aparecen como si fueran tipos de .NET Framework, y se pueden usar las propiedades y métodos de los tipos de .NET Framework como se haría 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. La lista siguiente contiene un resumen:The following list provides a summary:

  • En el caso de las primitivas Windows Runtime Int32, Int64, Single, Double, Boolean, String (una colección inmutable de caracteres Unicode), Enum, UInt32, UInt64 y Guid, use el tipo del mismo nombre en el espacio de nombres 0.For the Windows 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.

  • Para UInt8, use System.Byte.For UInt8, use System.Byte.

  • Para Char16, use System.Char.For Char16, use System.Char.

  • Para la interfaz IInspectable, use System.Object.For the IInspectable interface, use System.Object.

  • Para HRESULT, use una estructura con un miembro System.Int32.For HRESULT, use a structure with one System.Int32 member.

Al igual que con los tipos de interfaz, la única vez que podría ver evidencia de esta representación es cuando el proyecto de .NET Framework es un componente Windows Runtime que usa una aplicación Tienda Windows 8.xWindows 8.x Store compilada con JavaScript.As with interface types, the only time you might see evidence of this representation is when your .NET Framework project is a Windows Runtime component that is used by a Tienda Windows 8.xWindows 8.x Store app built using JavaScript.

Otros tipos de Windows Runtime básicos, usados comúnmente que aparecen en código administrado como sus .NET Framework equivalentes, incluyen la estructura Windows.Foundation.DateTime, que aparece en código administrado como la estructura System.DateTimeOffset y la estructura Windows.Foundation.TimeSpan, que aparece como System.TimeSpan estructuras.Other basic, commonly used Windows 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.

Otras diferenciasOther Differences

En algunos casos, el hecho de que .NET Framework tipos aparezcan en el código en lugar de Windows Runtime tipos requiere una acción por su parte.In a few cases, the fact that .NET Framework types appear in your code instead of Windows Runtime types requires action on your part. Por ejemplo, la clase Windows.Foundation.Uri aparece como System.Uri en .NET Framework código.For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Uri permite un URI relativo, pero Windows.Foundation.Uri requiere un URI absoluto.System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. Por consiguiente, al pasar un URI a un método Windows Runtime, debe asegurarse de que es absoluto.Therefore, when you pass a URI to a Windows Runtime method, you must ensure that it's absolute. Vea pasar un URI a la Windows Runtime.See Passing a URI to the Windows Runtime.

Escenarios para el desarrollo de componentes de Windows en tiempo de ejecuciónScenarios for Developing Windows Runtime Components

Los escenarios que se admiten para los componentes de Windows Runtime administrados dependen de los siguientes principios generales:The scenarios that are supported for managed Windows Runtime Components depend on the following general principles:

  • Windows Runtime componentes compilados con el .NET Framework no tienen ninguna diferencia aparente de otras Runtimelibraries de Windows.Windows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows Runtimelibraries. Por ejemplo, si se vuelve a implementar un componente de Windows Runtime nativo mediante el uso de código administrado, los dos componentes no se distinguen.For example, if you re-implement a native Windows Runtime component by using managed code, the two components are outwardly indistinguishable. El hecho de que un componente esté escrito en código administrado es invisible para el código que lo utiliza, incluso si dicho código también es código administrado.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. Sin embargo, internamente, el componente es código administrado auténtico y se ejecuta en Common Language Runtime (CLR).However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • Los componentes pueden contener tipos que implementan la lógica de la aplicación, controles de la interfaz de usuario de la Tienda Windows 8.xWindows 8.x Store o ambos.Components can contain types that implement application logic, Tienda Windows 8.xWindows 8.x Store UI controls, or both.

    Nota

    Es recomendable separar los elementos de la interfaz de usuario de la lógica de la aplicación.It's good practice to separate UI elements from application logic. Además, no se pueden usar controles de la interfaz de usuario de la Tienda Windows 8.xWindows 8.x Store en una aplicación de la Tienda Windows 8.xWindows 8.x Store creada para Windows mediante JavaScript y HTML.Also, you can't use Tienda Windows 8.xWindows 8.x Store UI controls in a Tienda Windows 8.xWindows 8.x Store app built for Windows using JavaScript and HTML.

  • Un componente puede ser un proyecto de una solución de Visual Studio para una aplicación de la Tienda Windows 8.xWindows 8.x Store o un componente reutilizable que se puede agregar a varias soluciones.A component can be a project within a Visual Studio solution for a Tienda Windows 8.xWindows 8.x Store app, or a reusable component that you can add to multiple solutions.

    Nota

    Si el componente se va a usar solo C# con o Visual Basic, no hay ningún motivo para convertirlo en un componente Windows Runtime.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows Runtime component. Si se convierte en una biblioteca de clases de .NET Framework normal, no es necesario restringir la superficie de la API pública a los tipos de Windows Runtime.If you make it an ordinary .NET Framework class library instead, you don't have to restrict its public API surface to Windows Runtime types.

  • Puede publicar versiones de componentes reutilizables mediante el Windows Runtime atributo VersionAttribute para identificar qué tipos (y qué miembros dentro de un tipo) se agregaron en versiones diferentes.You can release versions of reusable components by using the Windows Runtime VersionAttribute attribute to identify which types (and which members within a type) were added in different versions.

  • Los tipos del componente pueden derivar de tipos de Windows Runtime.The types in your component can derive from Windows Runtime types. Los controles pueden derivarse de los tipos de controles primitivos del espacio de nombres Windows.UI.Xaml.Controls.Primitives o de controles más terminados, como 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 partir de Windows 8Windows 8 y el .NET Framework 4,5, todos los tipos públicos de un componente de Windows Runtime administrado deben estar sellados.Starting with Windows 8Windows 8 and the .NET Framework 4.5, all public types in a managed Windows Runtime component must be sealed. Un tipo de otro componente de Windows Runtime no puede derivar de ellos.A type in another Windows Runtime component can't derive from them. Si se desea proporcionar un comportamiento polimórfico a un componente, puede crear una interfaz e implementarla en los tipos polimórficos.If you want to provide polymorphic behavior in your component, you can create an interface and implement it in the polymorphic types.

  • Todos los tipos de parámetros y valores devueltos de los tipos públicos del componente deben ser Windows Runtime tipos (incluidos los tipos de Windows Runtime que define el componente).All parameter and return types on the public types in your component must be Windows Runtime types (including the Windows Runtime types that your component defines).

En las secciones siguientes se proporcionan ejemplos de escenarios comunes.The following sections provide examples of common scenarios.

Lógica de aplicación para una aplicación de la Tienda Windows 8.xWindows 8.x Store con JavaScriptApplication Logic for a Tienda Windows 8.xWindows 8.x Store App with JavaScript

Al desarrollar una aplicación de la Tienda Windows 8.xWindows 8.x Store para Windows mediante JavaScript, puede que algunas partes de la lógica de la aplicación funcionen mejor en código administrado, o que sean más fáciles de desarrollar.When you develop a Tienda Windows 8.xWindows 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 no puede utilizar las bibliotecas de clases de .NET Framework directamente, pero puede convertir la biblioteca de clases en un archivo .WinMD.JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. En este escenario, el componente Windows Runtime es una parte integral de la aplicación, por lo que no tiene sentido proporcionar atributos de versión.In this scenario, the Windows Runtime component is an integral part of the app, so it doesn't make sense to provide version attributes.

Controles reutilizables de la interfaz de usuario de la Tienda Windows 8.xWindows 8.x StoreReusable Tienda Windows 8.xWindows 8.x Store UI Controls

Puede empaquetar un conjunto de controles de interfaz de usuario relacionados en un componente de Windows Runtime reutilizable.You can package a set of related UI controls in a reusable Windows Runtime component. El componente se puede comercializar por separado o usarse como elemento de las aplicaciones que se creen.The component can be marketed on its own or used as an element in the apps you create. En este escenario, tiene sentido usar el atributo Windows Runtime VersionAttribute para mejorar la compatibilidad.In this scenario, it makes sense to use the Windows Runtime VersionAttribute attribute to improve compatibility.

Lógica de aplicación reutilizable de aplicaciones existentes de .NET FrameworkReusable Application Logic from Existing .NET Framework Apps

Puede empaquetar el código administrado desde las aplicaciones de escritorio existentes como un componente de Windows Runtime independiente.You can package managed code from your existing desktop apps as a standalone Windows Runtime component. Esto permite usar el componente en las aplicaciones de la Tienda Windows 8.xWindows 8.x Store creadas con C++ o JavaScript, así como en las aplicaciones de la Tienda Windows 8.xWindows 8.x Store creadas con C# o Visual Basic.This enables you to use the component in Tienda Windows 8.xWindows 8.x Store apps built using C++ or JavaScript, as well as in Tienda Windows 8.xWindows 8.x Store apps built using C# or Visual Basic. El control de versiones es una opción si existen varios escenarios de reutilización para el código.Versioning is an option if there are multiple reuse scenarios for the code.

TítuloTitle DescripciónDescription
Información general de .NET para aplicaciones de la Tienda Windows.NET for Windows Store apps overview Describe los tipos de .NET Framework y los miembros que se pueden usar para crear aplicaciones Tienda Windows 8.xWindows 8.x Store y Windows RuntimeComponents.Describes the .NET Framework types and members that you can use to create Tienda Windows 8.xWindows 8.x Store apps and Windows RuntimeComponents. (En el Centro de desarrollo de Windows).(In the Windows Dev Center.)
Guía básica para aplicaciones de la C# tienda Windows mediante o Visual BasicRoadmap for Windows Store apps using C# or Visual Basic Proporciona recursos clave para ayudarle a empezar a desarrollar aplicaciones de la Tienda Windows 8.xWindows 8.x Store mediante C# o Visual Basic, e incluye numerosos tutoriales rápidos, directrices y procedimientos recomendados.Provides key resources to help you get started developing Tienda Windows 8.xWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (En el Centro de desarrollo de Windows).(In the Windows Dev Center.)
Procedimientos (XAML)How tos (XAML) Proporciona recursos clave para ayudarle a empezar a desarrollar aplicaciones de la Tienda Windows 8.xWindows 8.x Store mediante C# o Visual Basic, e incluye numerosos tutoriales rápidos, directrices y procedimientos recomendados.Provides key resources to help you get started developing Tienda Windows 8.xWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (En el Centro de desarrollo de Windows).(In the Windows Dev Center.)
Crear componentes de Windows en tiempo de ejecución en C# y Visual BasicCreating Windows Runtime Components in C# and Visual Basic Describe cómo crear un componente de Windows Runtime mediante el .NET Framework, explica cómo usarlo como parte de una aplicación Tienda Windows 8.xWindows 8.x Store compilada para Windows mediante JavaScript y describe cómo depurar la combinación con Visual Studio.Describes how to create a Windows Runtime component using the .NET Framework, explains how to use it as part of a Tienda Windows 8.xWindows 8.x Store app built for Windows using JavaScript, and describes how to debug the combination with Visual Studio. (En el Centro de desarrollo de Windows).(In the Windows Dev Center.)
Referencia de Windows RuntimeWindows Runtime reference Documentación de referencia para el Windows Runtime.The reference documentation for the Windows Runtime. (En el Centro de desarrollo de Windows).(In the Windows Dev Center.)
Transferencia de un URI a Windows RuntimePassing a URI to the Windows Runtime Describe un problema que puede surgir al pasar un URI del código administrado al Windows Runtime y cómo evitarlo.Describes an issue that can arise when you pass a URI from managed code to the Windows Runtime, and how to avoid it.