Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Alguns dos problemas mais comuns encontrados ao portar o código existente do .NET Framework para o .NET são dependências de APIs e tecnologias encontradas apenas no .NET Framework. O Pacote de Compatibilidade do Windows fornece muitas dessas tecnologias, portanto, é muito mais fácil criar aplicativos .NET e bibliotecas .NET Standard.
O pacote de compatibilidade é uma extensão lógica do .NET Standard 2.0 que aumenta significativamente o conjunto de API. O código existente é compilado com quase nenhuma modificação. Para manter a promessa de "o conjunto de APIs que todas as implementações do .NET fornecem", o .NET Standard não inclui tecnologias que não funcionam em todas as plataformas, como Registro, WMI (Instrumentação de Gerenciamento do Windows) ou APIs de emissão de reflexão. O Pacote de Compatibilidade do Windows é baseado no .NET Standard e fornece acesso a essas tecnologias exclusivas para Windows. É especialmente útil para clientes que desejam migrar para o .NET, mas planejam permanecer no Windows, pelo menos como uma primeira etapa. Nesse cenário, o uso de tecnologias exclusivas do Windows pode remover o obstáculo de migração.
Conteúdo do pacote
O Pacote de Compatibilidade do Windows é fornecido por meio do pacote NuGet Microsoft.Windows.Compatibility e pode ser referenciado a partir de projetos direcionados ao .NET ou ao .NET Standard.
Ele fornece cerca de 20.000 APIs, incluindo APIs exclusivas para Windows e multiplataforma das seguintes áreas de tecnologia:
- Páginas de código
- CodeDom
- Configuração
- Serviços de Diretório
- Desenho
- ODBCODBC
- Permissões
- Portas
- ACL (Listas de Controle de Acesso do Windows)
- Windows Communication Foundation (WCF)
- Criptografia do Windows
- Log de Eventos do Windows
- WMI (Instrumentação de Gerenciamento do Windows)
- Contadores de desempenho do Windows
- Registro do Windows
- Cache do Windows Runtime
- Serviços Windows
Para obter mais informações, consulte a especificação do pacote de compatibilidade.
Comece agora
Antes da portabilidade, confira o processo de portabilidade.
Ao portar o código existente para .NET ou .NET Standard, instale o pacote NuGet Microsoft.Windows.Compatibility.
Se você quiser permanecer no Windows, está tudo pronto.
Se você quiser executar o aplicativo .NET ou a biblioteca .NET Standard no Linux ou macOS, use o analisador de compatibilidade da plataforma para localizar o uso de APIs que não funcionarão entre plataformas.
Remova os usos dessas APIs, substitua-as por alternativas multiplataforma ou proteja-as usando uma verificação de plataforma, como:
private static string GetLoggingPath() { // Verify the code is running on Windows. if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Fabrikam\AssetManagement")) { if (key?.GetValue("LoggingDirectoryPath") is string configuredPath) return configuredPath; } } // This is either not running on Windows or no logging path was configured, // so just use the path for non-roaming user-specific data files. var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); return Path.Combine(appDataPath, "Fabrikam", "AssetManagement", "Logging"); }
Para obter uma demonstração, confira o vídeo do Canal 9 do Pacote de Compatibilidade do Windows.