Modernización después de actualizar a .NET desde .NET Framework
En este artículo, obtendrá información sobre las distintas formas en que puede modernizar la aplicación después de actualizarla desde .NET Framework a .NET. Utiliza la herramienta Asistente de Actualización de .NET para actualizar tu aplicación a .NET.
Faltan API
Al actualizar una aplicación de .NET Framework, lo más probable es que tenga algunas incompatibilidades. Esto se debe a que .NET Framework es una tecnología solo de Windows y .NET es una tecnología multiplataforma. Algunas bibliotecas no lo son. Por ejemplo, .NET no proporciona API integradas para acceder al Registro de Windows como lo hizo .NET Framework. El paquete Microsoft.Win32.Registry
NuGet proporciona compatibilidad con el Registro de Windows. Muchas bibliotecas específicas de .NET Framework se han migrado a .NET o .NET Standard y se hospedan en NuGet. Si encuentra una referencia que falta en el proyecto, busque NuGet.
Paquete de compatibilidad de Windows
Si después de la migración tiene algunas dependencias en las API de .NET Framework que no son compatibles con la nueva versión de .NET, es posible que las encuentre en el paquete nuGet de Microsoft.Windows.Compatibility
. Agrega alrededor de 20 000 API al proyecto de .NET, lo que aumenta significativamente el conjunto de API disponible para el proyecto. Estas API incluyen API solo de Windows, como las relacionadas con Instrumental de administración de Windows (WMI) y Windows EventLog. Para obtener más información, vea Usar el paquete de compatibilidad de Windows para migrar código a .NET.
Control del explorador web
Los proyectos que tienen como destino una tecnología de escritorio de Windows, como Windows Presentation Foundation o Windows Forms, pueden incluir un control de explorador web. El control del explorador web proporcionado se diseñó más probablemente antes de HTML5 y otras tecnologías web modernas y se considera obsoleto. Microsoft publica el Microsoft.Web.WebView2
paquete NuGet como reemplazo moderno del control del explorador web.
App.config
.NET Framework usa el archivo App.config para cargar la configuración de la aplicación, como las cadenas de conexión y la configuración del proveedor de registros. .NET moderno usa el archivo appsettings.json para la configuración de la aplicación. La versión de la CLI del Asistente para actualización controla la conversión de archivos App.config en appsettings.json, pero la extensión de Visual Studio no lo hace.
Sugerencia
Si no quieres usar el archivo appsettings.json, puedes agregar el paquete NuGet System.Configuration.ConfigurationManager
a la aplicación y el código se compilará y usará el archivo App.config.
Aunque appsettings.json es la forma moderna de almacenar y recuperar la configuración y las cadenas de conexión, la aplicación todavía tiene código que usa el archivo App.config. Cuando se migró la aplicación, el paquete NuGet System.Configuration.ConfigurationManager
se agregó al proyecto para que el código que usa el archivo App.config continúe compilando.
A medida que las bibliotecas se actualizan a .NET, modernizan al admitir appsettings.json en lugar de App.config. Por ejemplo, los proveedores de registro de .NET Framework que se han actualizado para .NET 6+ ya no usan App.config para la configuración. Es bueno para usted seguir sus indicaciones y también alejarse del uso de App.config.
El paquete nuGet Microsoft.Extensions.Configuration
proporciona compatibilidad con appsettings.json.
Realice los pasos siguientes para usar el archivo appsettings.json como proveedor de configuración:
Quite el paquete NuGet o biblioteca
System.Configuration.ConfigurationManager
si la aplicación actualizada hace referencia a ese paquete.Agregue el paquete NuGet
Microsoft.Extensions.Configuration.Json
.Cree un archivo denominado appsettings.json.
- Haga clic con el botón derecho en el archivo de proyecto en Explorador de Soluciones y seleccione Agregar>Nuevo elemento.
- En el cuadro de búsqueda, escriba
json
. - Seleccione la plantilla Archivo de configuración JSON de JavaScript y establezca Nombre en appsettings.json.
- Presione Agregar para agregar el nuevo archivo al proyecto.
Establezca el archivo appsettings.json que se va a copiar en el directorio de salida.
En Explorador de Soluciones, busque el archivo appsettings.json y establezca las siguientes Propiedades:
- Acción de compilación: Contenido
- copiar al directorio de salida: copiar siempre
En el código de inicio de la aplicación, debe cargar el archivo de configuración.
El código de inicio de la aplicación varía en función del tipo de proyecto. Por ejemplo, una aplicación WPF usa el archivo
App.xaml.cs
para la configuración global y una aplicación de Windows Forms usa el métodoProgram.Main
para el inicio. Independientemente, necesitas hacer dos cosas al inicio:- Cree un miembro
internal static
(Friend Shared
en Visual Basic) al que se pueda acceder desde cualquier lugar de la aplicación. - Durante el inicio, asigne una instancia a ese miembro.
En el ejemplo siguiente se crea un miembro denominado
Config
, se le asigna una instancia del métodoMain
y se carga una cadena de conexión: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
- Cree un miembro
Actualice el resto del código para usar las nuevas API de configuración.
Elimine el archivo App.config del proyecto.
Cautela
Asegúrese de que la aplicación se ejecuta correctamente sin el archivo App.config. Realice una copia de seguridad del archivo App.config a través del control de código fuente o copie el archivo en otro lugar. Después de probar exhaustivamente la aplicación, elimine el archivo App.config.