Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
0 de 2 pessoas classificaram isso como útil - Avalie este tópico

Suporte do .NET Framework para aplicativos da Windows Store e Tempo de Execução do Windows

.NET Framework 4.5

.NET Framework 4.5 suporte a um número de cenários de programação de software com Tempo de Execução do Windows. Esses cenários se enquadram em três categorias:

Este tópico descreve o suporte que o.NET Framework fornece para todas as três categorias, e descreve cenários para componentes de Tempo de Execução do Windows . A primeira seção inclui informações básicas sobre a relação entre o.NET Framework e Tempo de Execução do Windows, e explica algumas estranhezas que você pode encontrar no sistema de ajuda e no IDE. segunda seção descreve cenários para desenvolver componentes de Tempo de Execução do Windows .

O .NET Framework suporta os três cenários de desenvolvimento listados anteriormente, fornecendo .NET para aplicativos da Windows Storee suporte Tempo de Execução do Windows próprio.

  • o .NET para aplicativos do Windows Store fornece uma visão agilizada das bibliotecas de classes do.NET Framework e incluem apenas os tipos e membros que você pode usar para criar aplicativos de Windows Store e componentes de Tempo de Execução do Windows .

    • Quando você usa o Visual Studio (Visual Studio 2012 ou posterior) para desenvolver um aplicativo de Windows Store ou um componente de Tempo de Execução do Windows , um conjunto de assemblies de referência garante que você consulte somente tipos e membros relevantes.

    • Isso API aerodinamizado definido é simplificado mais pela remoção de recursos que são duplicados dentro do.NET Framework ou recursos que duplicados de Tempo de Execução do Windows . Por exemplo, contém somente as versões genéricas de tipos de coleção, e o modelo de objeto de documento XML é eliminado em favor de Tempo de Execução do Windows XML API define.

    • Os recursos que envolvem simplesmente o sistema operacional API são removidos também, porque Tempo de Execução do Windows é fácil de chamar de código gerenciado.

    Para ler mais sobre .NET para aplicativos da Windows Store, consulte visão geral sobre o.NET para aplicativos do Windows Store no centro de dev do Windows. Para ler sobre o processo de seleção API, consulte o .NET para aplicativos do Windows Store a entrada no blog .NET.

  • Tempo de Execução do Windows Fornece os elementos de interface de usuário para criar aplicativos de Windows Store , e fornece acesso aos recursos do sistema operacional. Como o.NET Framework, Tempo de Execução do Windows tem metadados que permitem que os compiladores C# e Visual Basic para usar Tempo de Execução do Windows a maneira que usam as bibliotecas de classes do.NET Framework. O.NET Framework facilita usar Tempo de Execução do Windows ocultar algumas diferenças:

    • Algumas diferenças em padrões de programação entre o.NET Framework e Tempo de Execução do Windows, como o padrão para adicionar e remover manipuladores de eventos, são ocultas. Você simplesmente usa o padrão do .NET Framework.

    • Algumas diferenças em tipos de uso geral (por exemplo, tipos primitivos e coleções são ocultas.) Você usa apenas o tipo do .NET Framework, conforme discutido em Diferenças que são visíveis no IDE, mais adiante neste artigo.

Observação Observação

Para obter mais informações sobre a maneira que o.NET Framework usa metadados do Windows para simplificar a programação com Tempo de Execução do Windows, baixar CLR e Tempo de Execução do Windows o Livro Branco de centro de dev do Windows.

Na maioria das vezes, o suporte do.NET Framework para Tempo de Execução do Windows transparente. A próxima seção aborda algumas das diferenças entre aparentes código gerenciado e Tempo de Execução do Windows.

Hh694558.collapse_all(pt-br,VS.110).gifO.NET Framework e documentação de referência de Tempo de Execução do Windows

Windows e conjuntos de documentação do .NET Framework são separados. Se você pressionar F1 para exibir a ajuda em um tipo ou um membro, documentação de referência do conjunto apropriado é exibida. Entretanto, se você procurar por Referência de Tempo de Execução do Windows você pode encontrar exemplos que aparecem confuso:

  • Os tópicos como Interface de IIterable não têm a sintaxe da declaração para Visual Basic ou C#. Em vez disso, uma nota aparece acima da seção sintaxe (neste caso, “.NET: Essa interface aparece como System.Collections.Generic.IEnumerableT”).<> Isso ocorre porque o.NET Framework e Tempo de Execução do Windows fornecem funcionalidade semelhante com interfaces diferentes. Além disso, existem diferenças de comportamento: IIterable tem um método de First em vez de um método de GetEnumerator para retornar o enumerador. Em vez de forçá-lo para aprender uma maneira diferente de executar uma tarefa comum, o.NET Framework oferece suporte Tempo de Execução do Windows fazendo seu código gerenciado aparece para usar o tipo que você é familiarizado. Você não verá a interface de IIterable no IDE, e portanto a única maneira que você encontrará na documentação de referência de Tempo de Execução do Windows é navegação através da documentação diretamente.

  • Construtor de SyndicationFeed A documentação ilustra um problema estreitamente relacionados: Os tipos de parâmetro parecem ser diferentes para diferentes idiomas. Para C# e Visual Basic, os tipos de parâmetro são System.String e System.Uri. Além disso, isso ocorre porque o.NET Framework tem seu próprio String e Uri tipos, e para esses tipos de uso geral não faz sentido forçar usuários do .NET Framework para aprender uma maneira diferente de fazer coisas. No IDE, o .NET Framework oculta os tipos correspondentes de Tempo de Execução do Windows .

  • Em alguns casos, como Windows.UI.Xaml.GridLength a estrutura, o.NET Framework fornece um tipo com o mesmo nome mas mais funcionalidade. Por exemplo, um conjunto de construtor e os tópicos de propriedade são associados com GridLength, mas tem blocos de sintaxe somente para Visual Basic e C# porque os membros estão disponíveis somente no código gerenciado. Em Tempo de Execução do Windows, estruturas têm somente campos. A estrutura de Tempo de Execução do Windows requer uma classe auxiliar Windows.UI.Xaml.GridLengthHelper, para fornecer funcionalidade equivalente. Você não verá que a classe auxiliar no IDE quando você estiver escrevendo código gerenciado.

  • No IDE, os tipos de Tempo de Execução do Windows aparecem para derivar de System.Object. Parecem ter membros herdados de Object, como Object.ToString. Esses membros operam como se os tipos herdados de realmente Object, e os tipos de Tempo de Execução do Windows podem ser convertidos a Object. Essa funcionalidade é parte de suporte que o.NET Framework fornece para Tempo de Execução do Windows. Entretanto, se você exibe os tipos na documentação de referência de Tempo de Execução do Windows , nenhum membro aparece. A documentação para esses membros herdados aparentes é fornecida pela documentação de referência de System.Object .

Hh694558.collapse_all(pt-br,VS.110).gifDiferenças que são visíveis no IDE

Em cenários mais avançados de programação, 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 aplicativo de Windows Store compilado para o Windows usando JavaScript, como diferenças são aparentes no IDE assim como na documentação. Quando o componente retorna IDictionary<int, string> a JavaScript, e você tem no depurador de JavaScript, você verá os métodos de IMap<int, string> porque JavaScript usa o tipo de Tempo de Execução do Windows . Alguns tipos de coleção comumente usadas de forma diferente que aparecem nos dois idiomas são mostrados na tabela a seguir:

Tipo Tempo de Execução do Windows

Combinando o tipo do .NET Framework

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

Em Tempo de Execução do Windows, IMap<K, V> e IMapView<K, V> são iterados usando IKeyValuePair. Quando você os passa para código gerenciado, aparecem como IDictionary<TKey, TValue> e IReadOnlyDictionary<TKey, TValue>naturalmente, portanto você usa System.Collections.Generic.KeyValuePair<TKey, TValue> para enumerá-los.

As interfaces de maneira aparecem em afeta de código gerenciado os tipos de maneira que implementam essas interfaces aparecem. Por exemplo, a classe de PropertySet implementa IMap<K, V>, que aparece no código gerenciado como IDictionary<TKey, TValue>. PropertySet parece que implementa IDictionary<TKey, TValue> em vez de IMap<K, V>, o que em código gerenciado parece ter um método de Add , que se comporta como o método de Add em dicionários do .NET Framework. Não parece ter um método de Insert .

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 de Tempo de Execução do Windows em C# e Visual Basic no centro de dev do Windows.

Hh694558.collapse_all(pt-br,VS.110).gifTipos primitivos

Para permitir o uso natural de Tempo de Execução do Windows em código gerenciado, os tipos primitivos do .NET Framework aparecem em vez de tipos primitivos de Tempo de Execução do Windows em seu código. No .NET Framework, os tipos primitivos como a estrutura de Int32 têm muitos propriedades e métodos úteis, como o método de Int32.TryParse . Por outro lado, os tipos primitivos e as estruturas em Tempo de Execução do Windows possuem apenas campos. Quando você usa primitivos em código gerenciado, parecem ser tipos.NET Framework, e você pode usar as propriedades e métodos do .NET Framework tipo como você normalmente. A lista a seguir fornece um resumo:

  • Para primitivos Int32de Tempo de Execução do Windows , 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 espaço de System .

  • Para UInt8, use System.Byte.

  • Para Char16, use System.Char.

  • Para a interface de IInspectable , use System.Object.

  • Para HRESULT, use uma estrutura com um membro de System.Int32 .

Como com tipos de interface, a única vez que você pode ver a evidência dessa representação é quando seu projeto do.NET Framework é um componente de Tempo de Execução do Windows que é usado por um aplicativo de Windows Store compilado usando JavaScript.

Outros tipos básicos, de uso geral de Tempo de Execução do Windows que aparecem em código gerenciado como seus equivalentes do .NET Framework incluem a estrutura de Windows.Foundation.DateTime , que aparece no código gerenciado como a estrutura de System.DateTimeOffset , e na estrutura de Windows.Foundation.TimeSpan , que aparece como a estrutura de System.TimeSpan .

Hh694558.collapse_all(pt-br,VS.110).gifOutras diferenças

Em alguns casos, o fato que o Framework .NET aparece no seu código em vez de tipos de Tempo de Execução do Windows requer a ação de sua parte. Por exemplo, Windows.Foundation.Uri a classe aparece como System.Uri no código do .NET Framework. System.Uri permite o URL relativa, mas Windows.Foundation.Uri requer o URL absoluto. Portanto, quando você passa um URI para um método de Tempo de Execução do Windows , você deve garantir que é absoluto. (Consulte Passando um URI para o Tempo de Execução do Windows.)

Cenários que são suportados para componentes gerenciados de Tempo de Execução do Windows dependem dos seguintes princípios gerais:

  • os componentes deTempo de Execução do Windows que são criados usando o.NET Framework não têm nenhuma diferença aparente de outras bibliotecas de Tempo de Execução do Windows . Por exemplo, se você novamente implementar um componente nativo de Tempo de Execução do Windows usando código gerenciado, os dois componentes é indistinguível externa. O fato de que o componente será escrito em código gerenciado é invisível para o código que usa ele, mesmo que o código é próprio código gerenciado. No entanto, internamente, o componente é um código gerenciado válido e executa em Common Language Runtime (CLR).

  • Componentes podem conter tipos que implementam a lógica do aplicativo, controles de Windows Store interface do usuário, ou ambos.

    Observação Observação

    É recomendável separar os elementos de interface de usuário da lógica do aplicativo. Além disso, você não pode usar controles de Windows Store interface do usuário em um aplicativo de Windows Store compilado para o Windows usando JavaScript e HTML.

  • Um componente pode ser um projeto em uma solução do Visual Studio para um aplicativo de Windows Store , ou um componente reutilizável que você pode adicionar as várias soluções.

    Observação Observação

    Se o componente será usado somente com C# ou Visual Basic, não há nenhum motivo para fazer-lhe um componente de Tempo de Execução do Windows . Se você o fizer uma biblioteca comum de classes do.NET Framework em vez disso, você não tem que restringir a superfície de API pública para tipos de Tempo de Execução do Windows .

  • Você pode versões de lançamento de componentes reutilizáveis usando o atributo Tempo de Execução do Windows VersionAttribute para identificar qual os tipos (e que membros em um tipo) foram adicionados em versões diferentes.

  • Os tipos em seu componente podem derivar dos tipos de Tempo de Execução do Windows . Os controles podem derivar do tipo primitivo controle dentro Windows.UI.Xaml.Controls.Primitives do namespace ou mais controles como Botãoconcluídos.

    Observação importante Importante

    Iniciando com Windows 8 e .NET Framework 4.5, qualquer público em um componente gerenciado de Tempo de Execução do Windows deve ser lacrado. Digite que outro componente de Tempo de Execução do Windows não pode derivar deless. Se você desejar fornecer o comportamento polimorfo no seu componente, você pode criar uma interface e implementá-lo em tipos polimórficas.

  • Qualquer parâmetro e tipos de retorno no público em seu componente devem ser tipos de Tempo de Execução do Windows (incluindo os tipos de Tempo de Execução do Windows que o componente define).

As seções a seguir fornecem exemplos de cenários comuns.

Hh694558.collapse_all(pt-br,VS.110).gifLógica do aplicativo para um aplicativo de Windows Store com JavaScript

Quando você desenvolver um aplicativo de Windows Store para o Windows usando JavaScript, você pode achar que algumas partes da lógica do aplicativo executam melhor em código gerenciado, ou são mais fáceis de se tornar. JavaScript não pode usar bibliotecas de classes do.NET Framework diretamente, mas você pode fazer para a biblioteca de classes um arquivo de .WinMD. Nesse cenário, o componente de Tempo de Execução do Windows é uma parte integral do aplicativo, portanto não faz sentido fornecer atributos de versão.

Hh694558.collapse_all(pt-br,VS.110).gifControles reutilizáveis de Windows Store interface de usuário

Você pode compactar um conjunto de controles relacionados de interface do usuário em um componente reutilizável de Tempo de Execução do Windows . O componente pode ser introduzido no mercado sozinho ou ser usado como um elemento em aplicativos que você cria. Nesse cenário, faz sentido usar o atributo VersionAttribute de Tempo de Execução do Windows para melhorar a compatibilidade.

Hh694558.collapse_all(pt-br,VS.110).gifLógica reutilizável de aplicativo de aplicativos existentes do .NET Framework

Você pode compactar o código gerenciado de seus aplicativos existentes de área de trabalho como um componente de Tempo de Execução do Windows autônomo. Isso permite que você usar o componente em aplicativos de Windows Store criados usando C++ ou JavaScript, bem como aplicativos de Windows Store criados usando C# ou Visual Basic. O controle de versão é uma opção se houver vários cenários reutilização de código.

Título

Descrição

visão geral sobre o.NET para aplicativos do Windows Store

Descreve os tipos e membros do.NET Framework que você pode usar para criar aplicativos de Windows Store e componentes de Tempo de Execução do Windows . (No centro de dev do Windows.)

Mapa para aplicativos do Windows Store usando C# ou Visual Basic

Fornece recursos principais para obter ajudá-lo a desenvolver aplicativos iniciados de Windows Store usando C# ou Visual Basic, incluindo vários tópicos de Quickstart, diretrizes, e práticas recomendadas. (No centro de dev do Windows.)

Aplicativos do Windows Store desenvolvimento (VB/C#/C++ e XAML)

Fornece recursos principais para obter ajudá-lo a desenvolver aplicativos iniciados de Windows Store usando C# ou Visual Basic, incluindo vários tópicos de Quickstart, diretrizes, e práticas recomendadas. (No centro de dev do Windows.)

Criando componentes do tempo de execução do Windows em C# ou 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 aplicativo de Windows Store compilado para o Windows usando JavaScript, e descreve como depurar a combinação com Visual Studio. (No centro de dev do Windows.)

Referência de Tempo de Execução do Windows

Documentação de referência para Tempo de Execução do Windows. (No centro de dev do Windows.)

Passando um URI para o Tempo de Execução do Windows

Descreve um problema que pode ocorrer quando você passa o URI de código gerenciado para Tempo de Execução do Windows, e como o evitar.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft. Todos os direitos reservados.