Plataforma de destino para Xamarin.Mac

En este artículo se tratan las plataformas de destino (bibliotecas de clases base) disponibles para Xamarin.Mac y las implicaciones de usarlas en el proyecto de Xamarin.Mac.

Opciones de plataforma de destino para las opciones de plataforma de destino de Xamarin.Mac

Información previa

Cada programa o biblioteca de .NET depende de la funcionalidad proporcionada por la biblioteca de clases base (BCL). Esta BCL incluye ensamblados como mscorlib, System, System, System.Net.Http y System.Xml que proporcionan la funcionalidad común integrada en todos los lenguajes .NET.

A lo largo de los años, ha desarrollado varias versiones diferentes de esta BCL, optimizadas para diferentes casos de uso. La BCL de "escritorio" incluye un conjunto más completo de bibliotecas que podrían ser demasiado pesadas para otros casos de uso, mientras que el móvil se centra en garantizar que las API son seguras para la vinculación, lo que elimina el código sin usar para reducir la superficie de la aplicación.

Una de las repercusiones más importantes de estos diferentes marcos de destino es que todos los ensamblados de un programa determinado deben tener como destino ensamblados BCL compatibles. Si este no fuera el caso, podría tener dos ensamblados vinculados con diferentes versiones del System.dll no estar de acuerdo con la firma de un tipo determinado. Una biblioteca compartida puede tener como destino .NET Standard 2, que es el subconjunto común de las plataformas de destino o un marco de destino específico.

Hay tres opciones de plataforma de destino disponibles para Xamarin.Mac, cada una con diferentes ventajas y desventajas:

  • Moderno (llamado Mobile en documentación anterior): un subconjunto muy similar a lo que potencia Xamarin.iOS, muy optimizado para el rendimiento y el tamaño. Esta plataforma de destino es segura para el enlazador, por lo que estos proyectos pueden reducir drásticamente su superficie final mediante la eliminación de código sin usar.

  • Completo (denominado XM 4.5 en documentación anterior): un subconjunto muy similar a la BCL de "escritorio", con algunas eliminaciones pequeñas. Dado que la plataforma de destino es casi idéntica a net45 (y versiones posteriores), puede consumir fácilmente muchos nugets que no proporcionan compilaciones netstandard2 o Xamarin.Mac específicas. Sin embargo, debido al uso de System.Configuration, no es compatible con la vinculación.

  • No compatible (denominado Sistema en documentación anterior): en lugar de vincular a una BCL proporcionada por Xamarin.Mac, use el sistema actual instalado mono. Esto proporciona el conjunto más completo de ensamblados, incluidos algunos conocidos como problemáticos (System.Drawing, por ejemplo). Esta opción solo tiene un "último recurso" y se recomienda agotar otras opciones antes de usarla. Como indica el nombre, los canales de soporte técnico oficiales no admiten el uso.

Establecimiento de marco de trabajo de destino

Para cambiar al tipo de plataforma de destino de un proyecto de Xamarin.Mac, haga lo siguiente:

  1. Abra el proyecto de Xamarin.Mac en Visual Studio para Mac.

  2. En el Explorador de soluciones, haga doble clic en el archivo de proyecto para abrir el cuadro de diálogo Opciones de proyecto.

  3. En la pestaña General , seleccione el tipo de Plataforma de destino que se adapte a las necesidades de la aplicación:

    Usar la ventana Opciones de proyecto para elegir un marco de destino

  4. Haga clic en el botón Aceptar para guardar los cambios.

Debe limpiar y, a continuación, recompilar el proyecto de Xamarin.Mac después de cambiar el tipo de plataforma de destino.

Resumen

En este artículo se han tratado brevemente los diferentes tipos de plataformas de destino (bibliotecas de clases base) disponibles para una aplicación de Xamarin.Mac y cuándo se debe usar cada tipo de marco.