BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias .NET Core mais fácil com o pacote de compatibilidade do Windows

.NET Core mais fácil com o pacote de compatibilidade do Windows

Uma das principais razões para mudar do .NET para o .NET Core é a capacidade de ser executado no Linux. Não é viável migrar aplicações grandes em uma única etapa; por isso a Microsoft recomenda uma transição incremental:

  • Migrar para o ASP.NET Core (enquanto está segmentando o .NET Framework)
  • Migrar para o .NET Core (enquanto estiver no Windows)
  • Migrar para o Linux
  • Migrar para [Linux hospedado em] Azure

Embora pareça bom, na prática, a falta de APIs de missão crítica ainda pode impedir que os projetos deem o segundo passo. Neste momento, entra em jogo o Pacote de Compatibilidade do Windows para o .NET Core. Abrangendo 20.000 APIs, esta coleção de pacotes NuGet pretende ajudar os desenvolvedores de aplicativos web e suas demandas com bibliotecas.

As APIs são divididas em duas categorias: somente para Windows e cross-plataform. As APIs somente para Windows incluem:

  • Active Directory;
  • Criptografia;
  • Logs de eventos e contadores de desempenho;
  • Segurança no sistema de arquivos;
  • Canais nomeados;
  • Acesso ao registro;
  • Serviços do Windows.

Em sua maior parte, estas APIs estão profundamente ligadas ao sistema operacional Windows, embora seus equivalentes no Linux sejam muitas vezes diferentes apenas em design.

As bibliotecas cross-platform incluem:

  • Cache;
  • ConfigurationManager (tal como, arquivos app.config ou web.config);
  • DatasetExtensions (usado para acessar o banco de dados sem um ORM);
  • Acesso ao banco de dados ODBC;
  • System.Configuration.ConfigurationManager (MEF v1);
  • System.Drawing;
  • System.IO.Packaging (usado para interagir com arquivos Zip estilo MS Office);
  • System.ServiceModel (tal como, Windows Communication Foundation).

Deve-se notar que essas APIs estão sendo omitidas intencionalmente na distribuição .NET Core completa. Immo Landwerth, funcionário da Microsoft, explicou:

A primeira razão para ser um pacote separado é que muitas APIs são fornecidas apenas por motivos de compatibilidade. A segunda razão é que o novo código não deve depender delas, pois muitas APIs são apenas para Windows. Não queremos guiá-los por um caminho que dificulta a evolução do seu aplicativo entre plataformas.

Para facilitar a distinção entre as APIs somente para Windows e cross-platforms, um analisador de compatibilidade de API pode ser usado para sinalizar as APIs das quais os aplicativos não devem mais depender.

São dadas as mesmas opções de omissão que as APIs obsoletas, mas também há a opção de suprimir avisos para plataformas específicas. Isso é útil se estiver planejando suportar seu código em um subconjunto específico de plataformas (por exemplo, apenas Windows e Linux, mas não Mac OS). Para fazer isso, só é preciso editar seu arquivo de projeto e adicionar uma propriedade "PlatformCompatIgnore" cuja qual lista todas as plataformas a serem ignoradas.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT