Compartir a través de


Diferencias con WPF .NET

En este artículo se describen las diferencias entre Windows Presentation Foundation (WPF) en .NET y .NET Framework. WPF para .NET es un marco de código abierto bifurcado desde el código fuente original de WPF para .NET Framework.

Hay algunas características de .NET Framework que .NET no admite. Para obtener más información sobre las tecnologías no admitidas, consulte Tecnologías de .NET Framework no disponibles en .NET.

Proyectos de estilo SDK

.NET usa archivos de proyecto de estilo SDK. Estos archivos de proyecto son diferentes de los archivos de proyecto tradicionales de .NET Framework administrados por Visual Studio. Para migrar tus aplicaciones WPF de .NET Framework a .NET, debes convertir tus proyectos. Para obtener más información, vea Cómo actualizar una aplicación de escritorio de WPF a .NET 7.

Referencias de paquetes NuGet

Si la aplicación de .NET Framework muestra sus dependencias de NuGet en un archivo packages.config, migre al formato <PackageReference>:

  1. En Visual Studio, abra el panel Explorador de soluciones.
  2. En el proyecto de WPF, haga clic con el botón derecho enpackages.config>Migrar packages.config a PackageReference.

El menú contextual del Explorador de soluciones de Visual Studio, que muestra el elemento

Aparecerá un cuadro de diálogo en el que se muestran las dependencias de NuGet calculadas de nivel superior y se pregunta qué otros paquetes NuGet deben promoverse al nivel superior. Seleccione Aceptar y el archivo packages.config se quitará del proyecto y <PackageReference> se agregarán elementos al archivo del proyecto.

Cuando el proyecto usa <PackageReference>, los paquetes no se almacenan localmente en una carpeta Packages , se almacenan globalmente. Abra el archivo del proyecto y quite los <Analyzer> elementos a los que se hace referencia a la carpeta Packages . Estos analizadores se incluyen automáticamente con las referencias del paquete NuGet.

Seguridad de acceso del código

La seguridad de acceso al código (CAS) no es compatible con .NET moderno, es un concepto de solo .NET Framework. Todas las funcionalidades relacionadas con CAS se tratan bajo la suposición de plena confianza. WPF para .NET quita el código relacionado con CAS. La superficie de API pública de estos tipos sigue existiendo para garantizar que las llamadas a estos tipos tengan éxito.

Los tipos relacionados con CAS, definidos públicamente, se trasladaron de los ensamblados de WPF a los ensamblados de la biblioteca Core de .NET. Los ensamblados de WPF tienen la redirección de tipos establecida hacia la nueva ubicación de los tipos reubicados.

Ensamblado de origen Ensamblado de destino Tipo
WindowsBase.dll System.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dll System.Security.Permissions.dll XamlLoadPermission
System.Xaml.dll System.Windows.Extension.dll XamlAccessLevel

Nota:

Para minimizar la fricción de transferencia, la funcionalidad para almacenar y recuperar información relacionada con las siguientes propiedades se ha conservado en el tipo XamlAccessLevel.

  • PrivateAccessToTypeName
  • AssemblyNameString