Compilación XAML en Xamarin.Forms

XAML se puede compilar de forma opcional directamente en lenguaje intermedio (IL) con el compilador XAML (XAMLC).

La compilación XAML ofrece una serie de ventajas:

  • Realiza la comprobación en tiempo de compilación de XAML, notificando al usuario de 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 XAML está deshabilitada de forma predeterminada en el marco. Sin embargo, está habilitada en las plantillas para nuevos proyectos. Puede habilitarse o deshabilitarse explícitamente (XamlCompilationOptions.Skip) tanto a nivel de ensamblado como de clase añadiendo el atributo XamlCompilation.

En el ejemplo de código siguiente se muestra cómo habilitar la compilación XAML en el nivel de ensamblado:

using Xamarin.Forms.Xaml;
...
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace PhotoApp
{
  ...
}

Aunque el atributo se puede colocar en cualquier lugar, un buen lugar para colocarlo es en AssemblyInfo.cs.

En este ejemplo, se realizará la comprobación en tiempo de compilación de todos los XAML contenidos en el ensamblado, con errores XAML que se notifican en tiempo de compilación en lugar de en tiempo de ejecución. Por lo tanto, el prefijo assembly en el atributo XamlCompilation especifica que el atributo se aplica a todo el ensamblado.

Nota:

El atributo XamlCompilation y la enumeración XamlCompilationOptions residen en el espacio de nombres Xamarin.Forms.Xaml, que se debe importar para usarlos.

En el ejemplo de código siguiente se muestra cómo habilitar la compilación XAML en el nivel de clase:

using Xamarin.Forms.Xaml;
...
[XamlCompilation (XamlCompilationOptions.Compile)]
public class HomePage : ContentPage
{
  ...
}

En este ejemplo, la comprobación en tiempo de compilación de XAML de la clase HomePage se realizará y se notificarán errores como parte del proceso de compilación.

Nota:

Los enlaces compilados pueden habilitarse para mejorar el rendimiento del enlace de datos en aplicaciones de Xamarin.Forms. Para obtener más información, vea Enlaces compilados.