Visão geral dos aplicativos .NET para Windows Store
O .NET Framework fornece um subconjunto de tipos gerenciados que você pode usar para criar aplicativos Windows Store usando C# ou Visual Basic. Esse subconjunto dos tipos gerenciados é denominado .NET para aplicativos da Windows Store e permite que os desenvolvedores do .NET Framework criem apps do Windows Store em uma estrutura familiar de programação. Quaisquer tipos que não são relacionados para desenvolver apps do Windows Store não são incluídos no subconjunto.
Você usa esses tipos gerenciados com tipos da API Tempo de Execução do Windows para criar apps do Windows Store. Normalmente, você não irá notar nenhuma diferenças entre usar os tipos gerenciados e os tipos do Tempo de Execução do Windows exceto que os tipos gerenciados residem nos namespaces que começam com Sistema, e os tipos do Tempo de Execução do Windows residem nos namespaces que começam com Janelas. Juntos, o .NET para aplicativos da Windows Store e o Tempo de Execução do Windows fornecem o conjunto completo de tipos e de membros disponíveis para desenvolver apps do Windows Store com o C# ou Visual Basic.
O subconjunto dos tipos gerenciados e de membros foi projetado com um foco claro no desenvolvimento de app do Windows Store. Como resultado, ele omite o seguinte:
Tipos e membros que não são aplicáveis para desenvolver apps do Windows Store (como o console e os tipos do ASP.NET).
Tipos obsoletos e herdados.
Tipos que apresentam sobreposição com tipos do Tempo de Execução do Windows.
Tipos e membros que envolvem a funcionalidade do sistema operacional (como System.Diagnostics.EventLog e contadores de desempenho).
Membros que causam a confusão (como o método de Close em tipos de E/S).
Em alguns casos, um tipo que você usa em uma área de trabalho app do .NET Framework não existe dentro do .NET para aplicativos da Windows Store. Em vez de isso, você pode usar um tipo do Tempo de Execução do Windows. Por exemplo, a classe de System.IO.IsolatedStorage.IsolatedStorageSettings não está incluída no .NET para aplicativos da Windows Store, mas a classe Windows.Storage.ApplicationDataContainer fornece o comportamento semelhante para armazenar configurações do app. Exemplos de alterações comuns que você pode ter que fazer estão incluídos na seção Convertendo seu código existente do .NET Framework.
Todo o conjunto de assemblies para o .NET para aplicativos da Windows Store é referenciado em seu projeto automaticamente quando você cria um app Windows Store usando o C# ou Visual Basic. Portanto, você pode usar qualquer um dos tipos suportados pelo .NET para aplicativos da Windows Store em seu projeto sem nenhuma ação adicional. Para obter uma lista de namespaces combinadas fornecidas pelo .NET para aplicativos da Windows Store e pelo Tempo de Execução do Windows (agrupados por área funcional), consulte a seção de Namespaces do Tempo de Execução do Windows e do .NET Framework.
Para obter uma lista de namespaces e tipos incluídos no subconjunto do .NET Framework, consulte Aplicativos .NET para Windows Store - APIs com suporte.
Você também pode criar um projeto do Biblioteca de Classes Portátil para desenvolver uma biblioteca do .NET Framework que pode ser usada a partir de um app do Windows Store. O projeto deve incluir o .NET para aplicativos Windows Store como uma das plataformas de destino. O Biblioteca de Classes Portátil é particularmente útil quando você deseja desenvolver classes que podem ser usadas a partir de apps para diferentes tipos de plataformas, como o app Windows Phone, apps da área de trabalho, e o app Windows Store. Consulte Desenvolvimento entre plataformas com o .NET Framework.
Este tópico inclui as seções a seguir:
Convertendo seu código existente do .NET Framework
Métodos de extensão para converter tipos
Namespaces do Tempo de Execução do Windows e do .NET Framework
Convertendo seu código existente do .NET Framework
Normalmente, você não simplesmente converte um app do .NET Framework existente para um app do Windows Store; reprojeta o app do .NET Framework para a nova experiência do usuário. No entanto, você pode querer converter partes de um app do .NET Framework existente para uso em novo app do Windows Store. Quando você converte o código existente do .NET Framework, deve estar ciente das seguintes alterações que talvez precisam ser feitas em seu app do Windows Store:
alterações da interface do usuário
alterações de E/S
alterações de armazenamento
alterações de rede
alterações de thread
alterações de reflexão
alterações de segurança
alterações de recursos
alterações de exceção
alterações WFC
alterações em tipos gerais do .NET Framework
alterações da interface do usuário
Quando você converte o código da interface do usuário a partir de um app com base no Silverlight ou do Windows Phone, poderá usar muitos dos mesmos tipos da interface do usuário, mas os tipos agora estão localizados nos namespaces do Windows.UI.Xaml em vez de namespaces do System.Windows. Esses novos tipos da interface do usuário são semelhantes aos tipos anteriores da interface do usuário do .NET Framework mas contêm alguns membros diferentes.
Substituir |
Por |
---|---|
Tipos da interface do usuário namespaces do System.Windows.* |
Tipos da interface do usuário namespaces do Windows.UI.Xaml* (por exemplo, a classe Borda está localizada no namespace Windows.UI.Xaml.Controls) |
Para obter mais informações sobre como mover o código da interface do usuário, consulte Migrar o app Windows Phone 7 para XAML.
alterações de E/S
Os tipos de E/S incluem novos membros para oferecer suporte para a nova palavra-chave do await no modelo de programação assíncrona.
alterações de armazenamento
Em vez de usar a classe do System.IO.IsolatedStorage, use os tipos nos namespaces do Windows.Storage para armazenar dados e arquivos locais.
Substituir |
Por |
---|---|
Classe System.IO.IsolatedStorage.IsolatedStorageFile |
A propriedade LocalFolder na classe Windows.Storage.ApplicationData
|
Classe System.IO.IsolatedStorage.IsolatedStorageSettings |
A propriedade LocalSettings na classe Windows.Storage.ApplicationData
|
Para obter mais informações, consulte Dados do aplicativo.
alterações de rede
Substituir |
Por |
---|---|
Classe System.Net.WebClient |
Classe System.Net.Http.HttpClient para enviar solicitações HTTP e para receber respostas HTTP - ou - Tipos no namespace Windows.Networking.BackgroundTransfer para carregar ou baixar grandes quantidades de dados |
Tipos no namespace System.Net.Sockets |
Tipos no namespace Windows.Networking.Sockets |
URIs relativos quando passados para os tipos Tempo de Execução do Windows |
URIs absolutos Para obter mais informações, consulte Passando um URI para o Tempo de Execução do Windows. |
Código de tratamento de exceção que captura a exceção UriFormatException |
Código que captura a exceção de FormatException, que é a classe principal do UriFormatException |
alterações de thread
Alguns dos membros de thread do .NET Framework mudaram, e alguns tipos agora estão disponíveis na API do Tempo de Execução do Windows.
Substituir |
Por |
---|---|
Método System.Threading.Thread.MemoryBarrier |
Método Interlocked.MemoryBarrier no namespace System.Threading |
Propriedade System.Threading.Thread.ManagedThreadId |
Propriedade Environment.CurrentManagedThreadId no namespace System |
Propriedade System.Threading.Thread.CurrentCulture |
Propriedade CultureInfo.CurrentCulture no namespace System.Globalization |
Propriedade System.Threading.Thread.CurrentUICulture |
Propriedade CultureInfo.CurrentUICulture no namespace System.Globalization |
Classe System.Threading.Timer |
|
Classe System.Threading.ThreadPool |
|
Código com que as filas trabalham para o pool |
|
Código com que as filas trabalham para o pool e aguarda a conclusão |
|
Código que cria um item de trabalho de longa execução |
|
alterações de reflexão
A maioria do membros da classe System.Type foram movidos para a classe System.Reflection.TypeInfo. Você pode recuperar o objeto TypeInfo ao chamar o método System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type), que é um método de extensão para Type.
Substituir |
Por |
---|---|
type.Assembly |
type.GetTypeInfo().Assembly |
type.GetMethods(BindingFlags.DeclaredOnly) |
type.GetTypeInfo().DeclaredMethods |
type.GetMethod("MethodName", BindingFlags.DeclaredOnly) |
type.GetTypeInfo().GetDeclaredMethod("MethodName") |
type.GetNestedTypes() |
type.GetTypeInfo().DeclaredNestedTypes |
Método System.Delegate.CreateDelegate |
Método MethodInfo.CreateDelegate |
Para obter mais informações, consulte Reflexão no .NET Framework para aplicativos da Windows Store na Biblioteca MSDN.
alterações de segurança
Muitos dos tipos de segurança, autenticação, e operações de criptografia estão disponíveis através dos tipos doe Tempo de Execução do Windows. Para obter uma lista completa dos namespaces de segurança que estão disponíveis para apps do Windows Store, consulte a lista de namespaces de segurança posteriormente neste tópico.
alterações de recursos
Para apps do Windows Store, você cria um único arquivo de recurso em vez do modelo hub e spoke que é usado em apps da área de trabalho. Além de isso, use os tipos de recursos no Windows.ApplicationModel.Resources e nos namespaces Windows.ApplicationModel.Resources.Core ao invés do namespace de System.Resources.
Para obter mais informações, consulte Criando e recuperando recursos em aplicativos da Windows Store.
alterações de exceção
Em alguns casos, um tipo gerenciado gera uma exceção que não está incluída no .NET para aplicativos da Windows Store. Neste casos, você pode capturar a classe principal da exceção que não está incluída. Por exemplo, em um aplicativo da área de trabalho, você captura a exceção UriFormatException para tratar de um URI inválido; mas em um aplicativo do Windows Store, capture a exceção FormatException já que UriFormatException não está incluída no .NET para aplicativos da Windows Store. FormatException é a classe pai de UriFormatException.
alterações WFC
Nos apps Windows Store, é possível utilizar a funcionalidade cliente Windows Communication Foundation (WCF) para recuperar dados do serviço WCF, mas não é possível criar um serviço WCF para servir dados.
alterações em tipos gerais do .NET Framework
Substituir |
Por |
---|---|
Método System.Xml.XmlConvert.ToDateTime |
Método XmlConvert.ToDateTimeOffset |
Interface System.ICloneable |
Um método personalizado que retorna o tipo apropriado |
Métodos System.Array.AsReadOnly e System.Collections.Generic.List<T>.AsReadOnly |
Uma nova instância da classe System.Collections.ObjectModel.ReadOnlyCollection<T>, criada como segue:
|
Métodos de extensão para converter tipos
Na maioria dos casos, você desenvolve apps do Windows Store usando tipos .NET Framework e tipos do Tempo de Execução do Windows juntos sem nenhuma consideração especial ou nenhuma conversão. No entanto, em alguns casos, o .NET Framework fornece métodos de extensão para simplificar a interação entre tipos do .NET Framework e tipos do Tempo de Execução do Windows. Esses métodos de extensão estão nas seguintes classes:
System.IO.WindowsRuntimeStreamExtensions – para converter entre fluxos gerenciados e fluxos no Tempo de Execução do Windows.
System.IO.WindowsRuntimeStorageExtensions – para abrir arquivos e pastas do Tempo de Execução do Windows como fluxos gerenciados.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions – para converter para e de IBuffer.
.NET Framework e namespaces do Tempo de Execução do Windows
As seções a seguir listam os namespaces fornecidos no .NET para aplicativos da Windows Store e em Tempo de Execução do Windows, organizados por funcionalidade.
Coleções
Núcleo
Dados e conteúdo
Dispositivos
Diagnósticos
Arquivos e pastas
Globalização
Gráficos
Managed Extensibility Framework (MEF)
Para instalar os seguintes namespaces, abra seu projeto no Visual Studio 2012, escolha Gerenciar pacotes de NuGet do menu do Projeto, e pesquise on-line pelo pacote de Microsoft.Composition.
Mídia
Rede
Apresentação
Imprimindo
Reflexão
Recursos
Segurança
Social
Threading
Automação da interface do usuário
Interação do usuário
Linguagens e compiladores
Consulte também
Conceitos
Aplicativos .NET para Windows Store - APIs com suporte
Criando componentes do Tempo de Execução do Windows em C# e Visual Basic
Outros recursos
Suporte do .NET Framework para aplicativos da Windows Store e Tempo de Execução do Windows