Compartir a través de


Compilación de XAML

El XAML de la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) se compila directamente en lenguaje intermedio (IL) con el compilador de XAML (XAMLC). La compilación de XAML ofrece una serie de ventajas:

  • Hace la comprobación en tiempo de compilación de XAML, notificando sobre los errores.
  • Reduce parte del tiempo de carga y creación de instancias para los elementos XAML.
  • Facilita reducir el tamaño de archivo del ensamblado final al dejar de incluir archivos .xaml.

La compilación de XAML está habilitada de forma predeterminada en aplicaciones .NET MAUI. En el caso de las aplicaciones compiladas con la configuración de depuración, la compilación de XAML proporciona validación en tiempo de compilación de XAML, pero no convierte el XAML a IL en el ensamblado. En su lugar, los archivos XAML se incluyen como recursos incrustados en el paquete de aplicaciones y se evalúan en tiempo de ejecución. En el caso de las aplicaciones creadas con la configuración de versión, la compilación de XAML ofrece validación en tiempo de compilación de XAML y convierte el XAML en IL que se escribe en el ensamblado. Sin embargo, el comportamiento de compilación XAML se puede invalidar en ambas configuraciones con la clase XamlCompilationAttribute.

Importante

Los enlaces compilados se pueden habilitar para mejorar el rendimiento del enlace de datos en aplicaciones .NET MAUI. Para obtener más información, vea Enlaces compilados.

Habilitación de la compilación de XAML

La compilación de XAML se puede deshabilitar pasando XamlCompilationOptions.Skip a XamlCompilationAttribute:

[assembly: XamlCompilation(XamlCompilationOptions.Skip)]

En este ejemplo, la compilación de XAML está deshabilitada en el ensamblado y los errores de XAML se notifican en tiempo de ejecución en lugar de hacerlo en tiempo de compilación.

La compilación de XAML también se puede deshabilitar en el nivel de tipo:

[XamlCompilation (XamlCompilationOptions.Skip)]
public partial class MyPage : ContentPage
{
    ...
}

En este ejemplo, la compilación de XAML solo está deshabilitada para la clase MyPage.

Advertencia

No se recomienda deshabilitar la compilación de XAML porque después se analiza e interpreta XAML en el tiempo de ejecución, lo que reducirá el rendimiento de la aplicación.

Habilitación de la compilación de XAML

Dado que la compilación de XAML está habilitada de forma predeterminada en las aplicaciones .NET MAUI, quitar cualquier instrucción XamlCompilation(XamlCompilationOptions.Skip) garantizará que se habilite la compilación de XAML.

Como alternativa, la compilación de XAML se puede habilitar de forma forzosa pasando XamlCompilationOptions.Compile a XamlCompilationAttribute:

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

En este ejemplo, la compilación de XAML está habilitada para todo el XAML incluido en el ensamblado y los errores en XAML se notifican en tiempo de compilación en lugar de hacerlo en tiempo de ejecución.

La compilación de XAML también se puede habilitar en el nivel de tipo:

[XamlCompilation (XamlCompilationOptions.Compile)]
public partial class MyPage : ContentPage
{
    ...
}

En este ejemplo, la compilación de XAML solo está habilitada para la clase MyPage.