Suporte do .NET Framework para aplicativos da Windows Store e Windows Runtime.NET Framework Support for Windows Store Apps and Windows Runtime

O .NET Framework 4.5 oferece suporte a vários cenários de desenvolvimento de software com o tempo de execução do Windows.The .NET Framework 4.5 supports a number of software development scenarios with the Windows Runtime. Esses cenários se enquadram em três categorias:These scenarios fall into three categories:

Este tópico descreve o suporte que o .NET Framework fornece para todas as três categorias e descreve os cenários para componentes de tempo de execução do Windows.This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows Runtime Components. A primeira seção inclui informações básicas sobre a relação entre o .NET Framework e o tempo de execução do Windows e explica algumas Singularidades do que você pode encontrar no sistema de Ajuda e o 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. O segunda seção aborda cenários para o desenvolvimento de componentes de tempo de execução do Windows.The second section discusses scenarios for developing Windows Runtime Components.

Os conceitos básicosThe Basics

O .NET Framework oferece suporte os cenários de desenvolvimento de três listados anteriormente, fornecendo .NET para aplicativos da Windows 8.x Store.NET for Windows 8.x Store appse dando suporte a tempo de execução do Windows em si.The .NET Framework supports the three development scenarios listed earlier by providing .NET para aplicativos da Windows 8.x Store.NET for Windows 8.x Store apps, and by supporting the Windows Runtime itself.

  • Namespaces do .NET framework e o tempo de execução do Windows fornece uma exibição simplificada das bibliotecas de classes do .NET Framework e incluem somente os tipos e membros que você pode usar para criar Windows Store 8.xWindows 8.x Store aplicativos e componentes de tempo de execução do Windows..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 Windows Store 8.xWindows 8.x Store apps and Windows Runtime Components.

    • Quando você usa o Visual Studio (Visual Studio 2012 ou posterior) para desenvolver um Windows Store 8.xWindows 8.x Store aplicativo ou um componente de tempo de execução do Windows, um conjunto de assemblies de referência garante que você vê apenas os tipos relevantes e membros.When you use Visual Studio (Visual Studio 2012 or later) to develop a Windows Store 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.

    • Esse conjunto de APIs simplificado é simplificado ainda mais pela remoção de recursos que estão duplicadas dentro do .NET Framework ou que duplicar o tempo de execução do Windows apresenta.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 exemplo, ele contém apenas as versões genéricas dos tipos de coleção, e o modelo de objeto do documento XML é eliminado em favor a API do Windows em tempo de execução XML definido.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.

    • Recursos que simplesmente encapsulam a API do sistema operacional também são removidos, porque o tempo de execução do Windows é fácil chamar do código gerenciado.Features that simply wrap the operating system API are also removed, because the Windows Runtime is easy to call from managed code.

    Para ler mais sobre o .NET para aplicativos da Windows 8.x Store.NET for Windows 8.x Store apps, consulte o visão geral de aplicativos .NET para Windows Store.To read more about the .NET para aplicativos da Windows 8.x Store.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview. Para ler sobre o processo de seleção de API, consulte o .NET para aplicativos estilo Metro entrada no blog do .NET.To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • O tempo de execução do Windows fornece elementos da interface do usuário para a compilação Windows Store 8.xWindows 8.x Store aplicativos e fornece acesso aos recursos do sistema operacional.The Windows Runtime provides the user interface elements for building Windows Store 8.xWindows 8.x Store apps, and provides access to operating system features. Como o .NET Framework, o tempo de execução do Windows tem metadados que permite que o C# e bibliotecas de classes de compiladores do Visual Basic para usar o tempo de execução do Windows da maneira que eles usam o .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. O .NET Framework torna mais fácil de usar o tempo de execução do Windows, ocultando algumas diferenças:The .NET Framework makes it easier to use the Windows Runtime by hiding some differences:

    • Algumas diferenças nos padrões entre o .NET Framework e o tempo de execução do Windows, como o padrão para adicionar e remover manipuladores de eventos, de programação estão ocultos.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. Você simplesmente usa o padrão do .NET Framework.You simply use the .NET Framework pattern.

    • Algumas diferenças nos tipos comumente usados (por exemplo, tipos primitivos e coleções) ficam ocultos.Some differences in commonly used types (for example, primitive types and collections) are hidden. Basta usar o tipo do .NET Framework, conforme discutido em diferenças que são visíveis no IDE, mais adiante neste artigo.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

Na maioria das vezes, o suporte do .NET Framework para o tempo de execução do Windows é transparente.Most of the time, .NET Framework support for the Windows Runtime is transparent. A próxima seção discute algumas das diferenças aparentes entre código gerenciado e o tempo de execução do Windows.The next section discusses some of the apparent differences between managed code and the Windows Runtime.

O .NET Framework e a documentação de referência de tempo de execução do WindowsThe .NET Framework and the Windows Runtime Reference Documentation

O tempo de execução do Windows e os conjuntos de documentação do .NET Framework são separados.The Windows Runtime and the .NET Framework documentation sets are separate. Se você pressionar F1 para exibir a Ajuda em um tipo ou membro, documentação de referência do conjunto apropriado de é exibida.If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. No entanto, se você procurar por meio de referência de tempo de execução do Windows você pode encontrar exemplos parecem confusas:However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • Tópicos como a IIterable<T> interface não tiver a sintaxe de declaração para o Visual Basic ou c#.Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. Em vez disso, uma anotação é exibida acima da seção de sintaxe (nesse caso, ".NET: Essa interface é exibido como System.Collections.Generic.IEnumerable<T > ").Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). Isso ocorre porque o .NET Framework e o tempo de execução do Windows fornecem funcionalidade semelhante com interfaces diferentes.This is because the .NET Framework and the Windows Runtime provide similar functionality with different interfaces. Além disso, há diferenças de comportamento: IIterable tem uma First método em vez de um GetEnumerator método para retornar o enumerador.In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. Em vez de forçá-lo a aprender uma maneira diferente de executar uma tarefa comum, o .NET Framework dá suporte a tempo de execução do Windows, fazendo com que seu código gerenciado são exibidos usar o tipo que você está familiarizado com.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. Você não verá o IIterable no IDE de interface e, portanto, a única maneira de você o encontrará na documentação de referência do tempo de execução do Windows está navegando por meio dessa documentação diretamente.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.

  • O SyndicationFeed(String, String, Uri) documentação ilustra um problema intimamente relacionado: Seus tipos de parâmetro parecem ser diferentes para diferentes idiomas.The SyndicationFeed(String, String, Uri) documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. Para c# e Visual Basic, os tipos de parâmetro são System.String e System.Uri.For C# and Visual Basic, the parameter types are System.String and System.Uri. Novamente, isso ocorre porque o .NET Framework tem seu próprio String e Uri tipos de e para tipos tais comumente usadas, ele não faz sentido para forçar os usuários do .NET Framework para aprender uma maneira diferente de fazer as coisas.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. No IDE, o .NET Framework impede que os tipos de tempo de execução do Windows correspondentes.In the IDE, the .NET Framework hides the corresponding Windows Runtime types.

  • Em alguns casos, como o GridLength estrutura, o .NET Framework fornece um tipo com o mesmo nome, mas mais funcionalidade.In a few cases, such as the GridLength structure, the .NET Framework provides a type with the same name but more functionality. Por exemplo, um conjunto de tópicos do construtor e a propriedade estão associados GridLength, mas eles têm blocos de sintaxe apenas do Visual Basic e c# porque os membros estão disponíveis apenas em código gerenciado.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. No tempo de execução do Windows, as estruturas têm apenas campos.In the Windows Runtime, structures have only fields. A estrutura de tempo de execução do Windows requer uma classe auxiliar, GridLengthHelper, para fornecer funcionalidade equivalente.The Windows Runtime structure requires a helper class, GridLengthHelper, to provide equivalent functionality. Você não verá que a classe auxiliar no IDE quando você está escrevendo o código gerenciado.You won't see that helper class in the IDE when you're writing managed code.

  • No IDE, os tipos de tempo de execução do Windows são exibidos derivar de System.Object.In the IDE, Windows Runtime types appear to derive from System.Object. Eles parecem ter membros herdados Object, tais como Object.ToString.They appear to have members inherited from Object, such as Object.ToString. Esses membros operam como fariam se os tipos, na verdade, herdada de Object, e tipos de tempo de execução do Windows podem ser convertidos em Object.These members operate as they would if the types actually inherited from Object, and Windows Runtime types can be cast to Object. Essa funcionalidade é parte do suporte que o .NET Framework fornece para o tempo de execução do Windows.This functionality is part of the support that the .NET Framework provides for the Windows Runtime. No entanto, se você exibir os tipos na documentação de referência do tempo de execução do Windows, esses membros não são exibidos.However, if you view the types in the Windows Runtime reference documentation, no such members appear. A documentação para esses membros herdados aparentes é fornecida pelo System.Object documentação de referência.The documentation for these apparent inherited members is provided by the System.Object reference documentation.

Diferenças que são visíveis no IDEDifferences That Are Visible in the IDE

Mais programação cenários avançados, como o uso de um componente de tempo de execução do Windows escrito em C# para fornecer a lógica do aplicativo para um Windows Store 8.xWindows 8.x Store aplicativo compilado para Windows usando JavaScript, essas diferenças são aparentes no IDE, bem como no documentação.In more advanced programming scenarios, such as using a Windows Runtime component written in C# to provide the application logic for a Windows Store 8.xWindows 8.x Store app built for Windows using JavaScript, such differences are apparent in the IDE as well as in the documentation. Quando o seu componente retorna um IDictionary<int, string> com o JavaScript e examinar o depurador do JavaScript, você verá os métodos de IMap<int, string> como o JavaScript usa o tipo de tempo de execução do Windows.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. Alguns usados com frequência a coleção de tipos que aparecem de forma diferente em dois idiomas são mostrados na tabela a seguir:Some commonly used collection types that appear differently in the two languages are shown in the following table:

Tipo do Windows RuntimeWindows Runtime type Tipo correspondente do .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

No tempo de execução Windows IMap<K, V> e IMapView<K, V> são iterados usando IKeyValuePair.In the Windows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. Quando você os transmite para código gerenciado, eles aparecem como IDictionary<TKey, TValue> e IReadOnlyDictionary<TKey, TValue>, então, naturalmente, você usa System.Collections.Generic.KeyValuePair<TKey, TValue> para enumerá-los.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.

A forma como as interfaces aparecem no código gerenciado afeta a forma como aparecem os tipos que implementam essas interfaces.The way interfaces appear in managed code affects the way types that implement these interfaces appear. Por exemplo, a classe PropertySet implementa IMap<K, V>, que aparece no código gerenciado 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 se ele tivesse implementado IDictionary<TKey, TValue> em vez de IMap<K, V>, por isso, no código gerenciado, ele parece ter um método Add, que se comporta como o método Add em dicionários do .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. Ela não parece ter um método Insert.It doesn't appear to have an Insert method.

Para obter mais informações sobre como usar o .NET Framework para criar um componente de tempo de execução do Windows e um passo a passo que mostra como usar um componente com JavaScript, consulte Criando componentes do tempo de execução do Windows em C# e 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 o uso natural do Windows Runtime em código gerenciado, tipos primitivos do .NET Framework aparecem em vez de tipos primitivos de tempo de execução do Windows em seu 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. No .NET Framework, os tipos primitivos como a estrutura Int32, têm muitas propriedades e métodos úteis, como o 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 outro lado, tipos primitivos e estruturas em tempo de execução do Windows têm apenas campos.By contrast, primitive types and structures in the Windows Runtime have only fields. Quando você usa primitivos no código gerenciado, eles parecem ser tipos do .NET Framework, e você pode usar as propriedades e métodos de tipos do .NET Framework, como faria 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. A lista a seguir fornece um resumo:The following list provides a summary:

  • Para os primitivos de tempo de execução do Windows Int32, Int64, Single, Double, Boolean, String (uma coleção imutável de caracteres Unicode) Enum, UInt32, UInt64, e Guid, use o tipo de mesmo nome no System namespace.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 a interface IInspectable, use System.Object.For the IInspectable interface, use System.Object.

  • Para HRESULT, use uma estrutura com um System.Int32 membro.For HRESULT, use a structure with one System.Int32 member.

Como com tipos de interface, a única vez em que você pode ver evidências de que essa representação é quando seu projeto do .NET Framework é um componente de tempo de execução do Windows que é usado por um Windows Store 8.xWindows 8.x Store aplicativo criado usando 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 Windows Store 8.xWindows 8.x Store app built using JavaScript.

Outros tipos de tempo de execução do Windows básicos, comumente usados que aparecem no código gerenciado como seus equivalentes do .NET Framework incluem o Windows.Foundation.DateTime estrutura, que aparece no código gerenciado como o System.DateTimeOffset estrutura e o Windows.Foundation.TimeSpan estrutura, que aparece como o System.TimeSpan estrutura.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.

Outras diferençasOther Differences

Em alguns casos, o fato de que os tipos do .NET Framework aparecem no seu código em vez de tipos de tempo de execução do Windows requer a ação de sua 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 exemplo, o Windows.Foundation.Uri classe aparece como System.Uri no código do .NET Framework.For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Uri permite que um URI relativo, mas Windows.Foundation.Uri requer um URI absoluto.System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. Portanto, quando você passar um URI para um método de tempo de execução do Windows, você deve garantir que ele é absoluto.Therefore, when you pass a URI to a Windows Runtime method, you must ensure that it's absolute. (Consulte passando um URI para o tempo de execução do Windows.)(See Passing a URI to the Windows Runtime.)

Cenários para o desenvolvimento de componentes de tempo de execução do WindowsScenarios for Developing Windows Runtime Components

Os cenários com suporte para componentes de tempo de execução do Windows gerenciados dependem dos seguintes princípios gerais:The scenarios that are supported for managed Windows Runtime Components depend on the following general principles:

  • Componentes de tempo de execução do Windows que são criados usando o .NET Framework não têm nenhuma diferença aparente de outros Runtimelibraries do Windows.Windows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows Runtimelibraries. Por exemplo, se você implementar novamente um componente de tempo de execução do Windows nativo usando código gerenciado, os dois componentes são indistinguíveis externamente.For example, if you re-implement a native Windows Runtime component by using managed code, the two components are outwardly indistinguishable. O fato de que seu componente é escrito em código gerenciado é invisível para o código que usa a ele, mesmo que o código seja próprio código gerenciado.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. No entanto, internamente, o componente é o verdadeiro código gerenciado e é executado no common language runtime (CLR).However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • Componentes podem conter tipos que implementam a lógica do aplicativo, Windows Store 8.xWindows 8.x Store UI controles, ou ambos.Components can contain types that implement application logic, Windows Store 8.xWindows 8.x Store UI controls, or both.

    Observação

    É recomendável separar elementos de interface do usuário da lógica do aplicativo.It's good practice to separate UI elements from application logic. Além disso, você não pode usar Windows Store 8.xWindows 8.x Store controles de interface do usuário em um Windows Store 8.xWindows 8.x Store aplicativo compilado para Windows usando JavaScript e HTML.Also, you can't use Windows Store 8.xWindows 8.x Store UI controls in a Windows Store 8.xWindows 8.x Store app built for Windows using JavaScript and HTML.

  • Um componente pode ser um projeto dentro de uma solução do Visual Studio para um Windows Store 8.xWindows 8.x Store aplicativo ou um componente reutilizável que você pode adicionar a várias soluções.A component can be a project within a Visual Studio solution for a Windows Store 8.xWindows 8.x Store app, or a reusable component that you can add to multiple solutions.

    Observação

    Se seu componente for usado apenas com C# ou Visual Basic, não é motivo para torná-lo em um componente de tempo de execução do Windows.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows Runtime component. Se você fizer uma biblioteca de classes do .NET Framework comum em vez disso, você não tiver que restringir sua superfície de API pública para tipos de tempo de execução do Windows.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.

  • Você pode liberar versões dos componentes reutilizáveis, usando o tempo de execução do Windows VersionAttribute atributo para identificar quais tipos (e quais membros dentro de um tipo) foram adicionadas em versões 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.

  • Os tipos no seu componente podem derivar de tipos de tempo de execução do Windows.The types in your component can derive from Windows Runtime types. Controles podem derivar dos tipos primitivos de controle na Windows.UI.Xaml.Controls.Primitives namespace ou de mais terminado controles 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

    Começando com Windows 8Windows 8 e o .NET Framework 4.5, todos os tipos públicos em um componente de tempo de execução do Windows gerenciado deve ser lacrado.Starting with Windows 8Windows 8 and the .NET Framework 4.5, all public types in a managed Windows Runtime component must be sealed. Um tipo em outro componente de tempo de execução do Windows não pode derivar de-los.A type in another Windows Runtime component can't derive from them. Se você quiser fornecer um comportamento polimórfico no seu componente, você pode criar uma interface e implementá-lo nos 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 os tipos de parâmetro e retorno sobre os tipos públicos em seu componente devem ser tipos de tempo de execução do Windows (incluindo os tipos de tempo de execução do Windows que define seu 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).

As seções a seguir fornecem exemplos de cenários comuns.The following sections provide examples of common scenarios.

Lógica do aplicativo para um Windows Store 8.xWindows 8.x Store aplicativo com o JavaScriptApplication Logic for a Windows Store 8.xWindows 8.x Store App with JavaScript

Quando você desenvolve um Windows Store 8.xWindows 8.x Store aplicativo para Windows usando JavaScript, você pode descobrir que algumas partes da lógica do aplicativo funcionar melhor em código gerenciado, ou são mais fáceis de desenvolver.When you develop a Windows Store 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 não é possível usar as bibliotecas de classes do .NET Framework diretamente, mas você pode tornar a biblioteca de classes um. Arquivo WinMD.JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. Nesse cenário, o componente de tempo de execução do Windows é parte integrante do aplicativo, portanto, não faz sentido para fornecer atributos de versão.In this scenario, the Windows Runtime component is an integral part of the app, so it doesn't make sense to provide version attributes.

Reutilizável Windows Store 8.xWindows 8.x Store controles de interface do usuárioReusable Windows Store 8.xWindows 8.x Store UI Controls

Você pode empacotar um conjunto de controles de interface do usuário relacionados em um componente reutilizável de tempo de execução do Windows.You can package a set of related UI controls in a reusable Windows Runtime component. O componente pode ser comercializado por conta própria ou usado como um elemento em aplicativos que você cria.The component can be marketed on its own or used as an element in the apps you create. Nesse cenário, faz sentido usar o tempo de execução do Windows VersionAttribute atributo para melhorar a compatibilidade.In this scenario, it makes sense to use the Windows Runtime VersionAttribute attribute to improve compatibility.

Lógica de aplicativo reutilizáveis de aplicativos existentes do .NET FrameworkReusable Application Logic from Existing .NET Framework Apps

Você pode empacotar o código gerenciado de seus aplicativos de área de trabalho existentes como um componente de tempo de execução do Windows autônomo.You can package managed code from your existing desktop apps as a standalone Windows Runtime component. Isso permite que você use o componente no Windows Store 8.xWindows 8.x Store os aplicativos criados usando C++ ou JavaScript, bem como em Windows Store 8.xWindows 8.x Store aplicativos criados usando c# ou Visual Basic.This enables you to use the component in Windows Store 8.xWindows 8.x Store apps built using C++ or JavaScript, as well as in Windows Store 8.xWindows 8.x Store apps built using C# or Visual Basic. Controle de versão é uma opção, se houver vários cenários de reutilização para que o código.Versioning is an option if there are multiple reuse scenarios for the code.

TítuloTitle DescriçãoDescription
Visão geral dos aplicativos .NET para Windows Store.NET for Windows Store apps overview Descreve os tipos do .NET Framework e os membros que você pode usar para criar Windows Store 8.xWindows 8.x Store RuntimeComponents do Windows e aplicativos.Describes the .NET Framework types and members that you can use to create Windows Store 8.xWindows 8.x Store apps and Windows RuntimeComponents. (No Centro de desenvolvimento do Windows.)(In the Windows Dev Center.)
Roteiro para aplicativos da Windows Store usando c# ou Visual BasicRoadmap for Windows Store apps using C# or Visual Basic Fornece os principais recursos para ajudá-lo a começar a desenvolver Windows Store 8.xWindows 8.x Store aplicativos usando c# ou Visual Basic, incluindo muitos tópicos do guia de início rápido, diretrizes e práticas recomendadas.Provides key resources to help you get started developing Windows Store 8.xWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (No Centro de desenvolvimento do Windows.)(In the Windows Dev Center.)
Como tos (XAML)How tos (XAML) Fornece os principais recursos para ajudá-lo a começar a desenvolver Windows Store 8.xWindows 8.x Store aplicativos usando c# ou Visual Basic, incluindo muitos tópicos do guia de início rápido, diretrizes e práticas recomendadas.Provides key resources to help you get started developing Windows Store 8.xWindows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (No Centro de desenvolvimento do Windows.)(In the Windows Dev Center.)
Criando componentes do Windows Runtime no C# e no Visual BasicCreating Windows Runtime Components in C# and Visual Basic Descreve como criar um componente de tempo de execução do Windows usando o .NET Framework, explica como usá-lo como parte de um Windows Store 8.xWindows 8.x Store aplicativo compilado para Windows usando JavaScript e descreve como depurar a combinação com o Visual Studio.Describes how to create a Windows Runtime component using the .NET Framework, explains how to use it as part of a Windows Store 8.xWindows 8.x Store app built for Windows using JavaScript, and describes how to debug the combination with Visual Studio. (No Centro de desenvolvimento do Windows.)(In the Windows Dev Center.)
Referência de tempo de execução do WindowsWindows Runtime reference A documentação de referência para o tempo de execução do Windows.The reference documentation for the Windows Runtime. (No Centro de desenvolvimento do Windows.)(In the Windows Dev Center.)
Passando um URI para o Windows RuntimePassing a URI to the Windows Runtime Descreve um problema que pode surgir quando você passa um URI de código gerenciado para o tempo de execução do Windows e como evitá-la.Describes an issue that can arise when you pass a URI from managed code to the Windows Runtime, and how to avoid it.