Modernizar após a migração do .NET Framework para o .NET
Neste artigo, você aprenderá sobre diferentes maneiras de modernizar seu aplicativo depois que ele for atualizado do .NET Framework para o .NET. Use a ferramenta Assistente de Atualização do .NET para atualizar seu aplicativo para o .NET.
APIs ausentes
Ao atualizar um aplicativo .NET Framework, você provavelmente terá algumas incompatibilidades. Isso ocorre porque o .NET Framework é uma tecnologia somente do Windows e o .NET é uma tecnologia multiplataforma. Algumas bibliotecas não são. Por exemplo, o .NET não fornece APIs prontas para acessar o Registro do Windows, como o .NET Framework fez. O suporte para o Registro do Windows é fornecido pelo pacote NuGet Microsoft.Win32.Registry
. Muitas bibliotecas específicas do .NET Framework foram portadas para .NET ou .NET Standard e estão hospedadas no NuGet. Se você encontrar uma referência ausente em seu projeto, pesquise o NuGet.
Pacote de Compatibilidade do Windows
Se após a migração você tiver algumas dependências em APIs do .NET Framework que não têm suporte em sua nova versão do .NET, você poderá encontrá-las no Microsoft.Windows.Compatibility
pacote NuGet. Ele adiciona cerca de 20.000 APIs ao seu projeto .NET, aumentando significativamente o conjunto de API disponível para seu projeto. Essas APIs incluem APIs somente do Windows, como aquelas relacionadas à WMI (Instrumentação de Gerenciamento do Windows) e ao EventLog do Windows. Para obter mais informações, consulte Usar o Pacote de Compatibilidade do Windows para portar o código para o .NET.
Controle do navegador da Web
Projetos direcionados a uma tecnologia da área de trabalho do Windows, como o Windows Presentation Foundation ou o Windows Forms, podem incluir um controle de navegador da Web. O controle do navegador da Web fornecido provavelmente foi projetado antes do HTML5 e de outras tecnologias modernas da Web e é considerado obsoleto. A Microsoft publica o pacote NuGet Microsoft.Web.WebView2
como substituição moderna do controle do navegador da Web.
App.config
O .NET Framework usa o arquivo App.config para carregar configurações para seu aplicativo, como cadeias de conexão e configuração do provedor de log. O .NET moderno usa o arquivo appsettings.json para configurações de aplicativo. A versão da CLI do Assistente de Atualização manipula a conversão de arquivos App.config em appsettings.json, mas a extensão do Visual Studio não.
Dica
Se você não quiser usar o arquivo appsettings.json, poderá adicionar o System.Configuration.ConfigurationManager
pacote NuGet ao seu aplicativo e seu código será compilado e usará o arquivo App.config.
Embora appsettings.json seja a maneira moderna de armazenar e recuperar configurações e cadeias de conexão, seu aplicativo ainda tem código que usa o arquivo App.config. Quando seu aplicativo foi migrado, o System.Configuration.ConfigurationManager
pacote NuGet foi adicionado ao projeto para que seu código usando o arquivo App.config continue a ser compilado.
À medida que as bibliotecas são atualizadas para o .NET, elas são modernizadas com suporte appsettings.json em vez de App.config. Por exemplo, os provedores de log no .NET Framework que foram atualizados para .NET 6+ não usam mais App.config para configurações. É bom que você siga a direção deles e também se afaste do uso de App.config.
O suporte para appsettings.json é fornecido pelo pacote NuGet Microsoft.Extensions.Configuration
.
Execute as seguintes etapas para usar o arquivo appsettings.json como seu provedor de configuração:
Remova o pacote ou biblioteca
System.Configuration.ConfigurationManager
do NuGet, caso seja referenciado pelo seu aplicativo atualizado.Adicione o pacote NuGet
Microsoft.Extensions.Configuration.Json
.Criar um arquivo chamado appsettings.json.
- Clique com o botão direito do mouse no arquivo de projeto dentro do Gerenciador de Soluções e selecione Adicionar>Novo Item.
- Na caixa de pesquisa, insira
json
. - Selecione o modelo Arquivo de Configuração JSON do JavaScript e defina o Nome como appsettings.json.
- Pressione Adicionar para adicionar o novo arquivo ao projeto.
Defina o arquivo appsettings.json para copiar para o diretório de saída.
No Gerenciador de Soluções, localize o arquivo appsettings.json e defina as seguintes Propriedades:
- Ação de Construção: Conteúdo
- copiar para o diretório de saída: copiar sempre
No código de inicialização do aplicativo, você precisa carregar o arquivo de configurações.
O código de inicialização do aplicativo varia de acordo com o tipo de projeto. Por exemplo, um aplicativo WPF usa o arquivo
App.xaml.cs
para configuração global e um aplicativo do Windows Forms usa o métodoProgram.Main
para inicialização. Independentemente disso, você precisa fazer duas coisas na inicialização:- Crie um membro
internal static
(Friend Shared
no Visual Basic) que pode ser acessado em qualquer lugar do seu aplicativo. - Durante a inicialização, atribua uma instância a esse membro.
O exemplo a seguir cria um membro chamado
Config
, atribui-lhe uma instância no métodoMain
e carrega uma cadeia de conexão:using Microsoft.Extensions.Configuration; internal class Program { internal static IConfiguration Config { get; private set; } private static void Main(string[] args) { Config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); // Use the config file to get a connection string. string? myConnectionString = Config.GetConnectionString("database"); // Run the rest of your app. } }
Imports Microsoft.Extensions.Configuration Module Program Private _config As IConfiguration ' Shared not required since Program is a Module Friend Property Config As IConfiguration Get Return _config End Get Private Set(value As IConfiguration) _config = value End Set End Property Sub Main(args As String()) Config = New ConfigurationBuilder() _ .AddJsonFile("appsettings.json") _ .Build() ' Use the config file to get a connection string Dim myConnectionString As String = Config.GetConnectionString("database") ' Run the rest of your app End Sub End Module
- Crie um membro
Atualize o restante do código para usar as novas APIs de configuração.
Exclua o arquivo App.config do projeto.
Cuidado
Verifique se o aplicativo é executado corretamente sem o arquivo App.config. Faça backup do arquivo App.config por meio do controle do código-fonte ou copiando o arquivo em outro lugar. Depois de testar completamente seu aplicativo, exclua o arquivo App.config.