Modernizzare dopo l'aggiornamento a .NET da .NET Framework
Articolo
In questo articolo verranno illustrati i diversi modi in cui è possibile modernizzare l'app dopo l'aggiornamento da .NET Framework a .NET. Usa lo strumento .NET Upgrade Assistant per aggiornare l'app a .NET.
API mancanti
Quando si aggiorna un'app .NET Framework, è probabile che si verifichino alcune incompatibilità. Questo avviene perché .NET Framework è una tecnologia solo Windows e .NET è una tecnologia multipiattaforma. Alcune librerie non lo sono. Ad esempio, .NET non fornisce API predefinite per accedere al Registro di sistema di Windows come .NET Framework. Il supporto per il Registro di sistema di Windows viene fornito dal pacchetto NuGet Microsoft.Win32.Registry. Molte librerie specifiche di .NET Framework sono state convertite in .NET o .NET Standard e sono ospitate in NuGet. Se si trova un riferimento mancante nel progetto, cerca NuGet.
Windows Compatibility Pack
Se dopo la migrazione sono presenti alcune dipendenze dalle API .NET Framework non supportate nella nuova versione di .NET, è possibile trovarle nel Microsoft.Windows.Compatibility pacchetto NuGet. Aggiunge circa 20.000 API al progetto .NET, aumentando significativamente il set di API disponibile per il progetto. Queste API includono API solo Windows, ad esempio quelle correlate a Strumentazione gestione Windows (WMI) e a EventLog di Windows. Per altre informazioni, fai riferimento a Usare Windows Compatibility Pack per convertire il codice per .NET
Controllo Web browser
I progetti destinati a una tecnologia desktop Windows, ad esempio Windows Presentation Foundation o Windows Form, possono includere un controllo Web browser. Il controllo web browser fornito è stato progettato molto probabilmente prima di HTML5 e altre tecnologie Web moderne ed è considerato obsoleto. Microsoft pubblica il Microsoft.Web.WebView2pacchetto NuGet come sostituzione moderna del controllo web browser.
App.config
.NET Framework usa il file App.config per caricare le impostazioni dell'app, ad esempio le stringhe di connessione e la configurazione dei provider di registrazione. Il .NET moderno usa il file appsettings.json per le impostazioni dell'app. La versione dell'interfaccia della riga di comando di Upgrade Assistant gestisce la conversione dei file App.config in appsettings.json, ma l'estensione di Visual Studio non esegue tali operazioni.
Suggerimento
Se non desideri usare il file appsettings.json, puoi aggiungere il pacchetto NuGet System.Configuration.ConfigurationManager all'app e il codice compilerà e userà il file App.config.
Anche se appsettings.json è il modo moderno per archiviare e recuperare le impostazioni e le stringhe di connessione, la tua app ha ancora il codice che usa il file App.config. Quando è stata eseguita la migrazione dell'app, il pacchetto NuGet System.Configuration.ConfigurationManager è stato aggiunto al progetto in modo che il codice che usa il file App.config continui a essere compilato.
Quando le librerie passano a .NET, si modernizzano supportando appsettings.json anziché App.config. Ad esempio, i provider di registrazione in .NET Framework aggiornati a .NET 6+ non utilizzano più App.config per le impostazioni. È consigliabile seguire la loro direzione e abbandonare l'uso di App.config.
Il supporto per appsettings.json viene fornito dal pacchetto NuGet Microsoft.Extensions.Configuration.
Per usare il file appsettings.json come provider di configurazione, segui questa procedura:
Rimuovi il pacchetto NuGet System.Configuration.ConfigurationManager o la libreria se si fa riferimento all'app aggiornata.
Aggiungere il pacchetto NuGet Microsoft.Extensions.Configuration.Json.
Crea un file denominato appsettings.json.
Fai clic con il pulsante destro del mouse sul file di progetto nella finestra Esplora soluzioni e scegli Aggiungi>Nuovo elemento....
Nella casella di ricerca immettere json.
Seleziona il modello file di configurazione JSON JavaScript e imposta il Nome su appsettings.json.
Premi Aggiungi per aggiungere il nuovo file al progetto.
Impostare il file appsettings.json da copiare nella directory di output.
Nella finestra Esplora soluzioni, trova il file appsettings.json e impostare le seguenti Proprietà:
Azione di compilazione: Contenuto
Copia nella directory di output: Copia sempre
Nel codice di avvio dell'app è necessario caricare il file di impostazioni.
Il codice di avvio per l'app varia in base al tipo di progetto. Ad esempio, un'app WPF usa il file App.xaml.cs per la configurazione globale e un'app Windows Form usa il metodo Program.Main per l'avvio. Indipendentemente da ciò, è necessario eseguire due operazioni all'avvio:
Creare un membro internal static (Friend Shared in Visual Basic) accessibile da qualsiasi posizione dell'app.
Durante l'avvio assegnare un'istanza a tale membro.
L'esempio seguente crea un membro denominato Config, lo assegna a un'istanza nel metodo Main e carica un stringa di connessione:
C#
using Microsoft.Extensions.Configuration;
internalclassProgram
{
internalstatic IConfiguration Config { get; privateset; }
privatestaticvoidMain(string[] args)
{
Config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
// Use the config file to get a connection stringstring? 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
Aggiornare il resto del codice per usare le nuove API di configurazione.
Eliminare il file App.config dal progetto.
Attenzione
Assicurarsi che l'app venga eseguita correttamente senza il file App.config. Eseguire il backup del file App.config tramite il controllo del codice sorgente o copiando il file altrove. Dopo aver testato accuratamente l'app, eliminare il file App.config.
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.