Compartir código en varias plataformasSharing code on multiple platforms

Estos artículos explican las distintas opciones disponibles para compartir código entre plataformas, incluidos Windows, Android, iOS y mucho más.These articles explain the different options available for sharing code across platforms, including Windows, Android, iOS, and more.

Información general de uso compartido de códigoCode sharing overview

Obtenga información sobre el código diferentes opciones disponibles para los proyectos de Xamarin, incluidas las bibliotecas estándar de .NET y proyectos compartidos de uso compartido.Learn about the different code sharing options available for Xamarin projects, including .NET Standard Libraries and Shared Projects. También se admiten las bibliotecas de clases portables, pero se consideran en desuso en favor de .NET Standard.Portable Class Libraries are also supported, however they are considered deprecated in favor of .NET Standard.

.NET Standard.NET Standard

.NET standard es la opción preferida para compartir código entre plataformas..NET Standard is the preferred option for sharing code across platforms. Código se compila con una versión específica (2.0 ofrece la mejor compatibilidad con la API con el código existente de .NET Framework) y, a continuación, puede ser consumida por otros proyectos que admiten ese nivel o superior.Code is built against a specific version (2.0 provides the best API compatibility with existing .NET Framework code) and can then be consumed by other projects that support that level or higher. Se admiten proyectos de .NET standard en Visual Studio 2017 y Visual Studio para Mac..NET Standard projects are supported in both Visual Studio 2017 and Visual Studio for Mac.

Proyectos compartidosShared Projects

Proyectos compartidos permiten escribir código común que se hace referencia a un número de proyectos de aplicación diferentes.Shared Projects let you write common code that is referenced by a number of different application projects. El código se compila como parte de cada proyecto que hace referencia y puede incluir directivas de compilador para ayudar a incorporar la funcionalidad específica de la plataforma en el código base compartido.The code is compiled as part of each referencing project and can include compiler directives to help incorporate platform-specific functionality in the shared code base. Este artículo describe cómo funcionan los proyectos compartidos y cómo crearlos y utilizarlos con proyectos de Xamarin.This article discusses how Shared Projects work and how to create and use them with Xamarin projects.

Bibliotecas de clases portablesPortable Class Libraries

Proyectos de biblioteca de clases Portable le permiten crear y distribuir los ensamblados que contienen código compartido que se ejecuta en varias plataformas.Portable Class Library projects let you build and distribute assemblies that contain shared code to run on multiple platforms. Para crear una biblioteca de clases Portable (o "PCL") que seleccione en primer lugar qué plataformas de destino y, después, escribir código contra un subjuego de .NET Framework que está disponible en el perfil definido para esas plataformas.To create a Portable Class Library (or "PCL") you first select which platforms to target, then write code against a sub-set of the .NET Framework that is available in the profile defined for those platforms. Las PCL se consideran en desuso en las últimas versiones de Visual Studio; los desarrolladores pueden realizar para usar .NET Standard 2.0 en su lugar.PCLs are considered to be deprecated in the latest versions of Visual Studio; developers are encouraged to use .NET Standard 2.0 instead.

Proyectos de NuGet: bibliotecas multiplataforma para compartir códigoNuGet projects: Multiplatform Libraries for code sharing

Paquetes de NuGet pueden generarse automáticamente desde proyectos de PCL o .NET standard; y se pueden empaquetar proyectos compartidos en paquetes de NuGet "gancho" con el tipo de proyecto de NuGet independiente.NuGet packages can be automatically generated from PCL or .NET standard projects; and Shared Projects can be packaged into "bait and switch" NuGet packages using the separate NuGet project type. Esta sección explica cómo crear paquetes de NuGet para cada escenario de uso compartido de código.This section explains how to create NuGet packages for each code-sharing scenario.

Crear manualmente los paquetes de NuGet para XamarinManually creating NuGet packages for Xamarin

Sugerencias para crear paquetes de NuGet que funcionan con la plataforma Xamarin.Tips for creating NuGet packages that work with the Xamarin platform.