Совместное использование кода на нескольких платформахSharing code on multiple platforms

В этой статье рассматривается различные параметры, доступные для совместного использования кода на платформах, включая Windows, Android, iOS и многое другое.These articles explain the different options available for sharing code across platforms, including Windows, Android, iOS, and more.

Совместное использование Обзор кодаCode sharing overview

Дополнительные сведения о различных параметры, доступные для проектов Xamarin, включая стандартные библиотеки .NET и проектах общих совместного использования кода.Learn about the different code sharing options available for Xamarin projects, including .NET Standard Libraries and Shared Projects. Переносимые библиотеки классов, также поддерживаются, однако считается устаревшим в связи с .NET Standard.Portable Class Libraries are also supported, however they are considered deprecated in favor of .NET Standard.

.NET Standard.NET Standard

.NET standard является предпочтительным при совместное использование кода несколькими платформами..NET Standard is the preferred option for sharing code across platforms. Код создан для конкретной версии (2.0 обеспечивает лучший API совместимости с существующим кодом .NET Framework) и может быть принято элементом других проектов, которые поддерживают этот уровень или более поздней версии.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. Проектов .NET standard, поддерживаются в Visual Studio 2019 и 2019 г. Visual Studio для Mac..NET Standard projects are supported in both Visual Studio 2019 and Visual Studio 2019 for Mac.

Общие проектыShared Projects

Общие проекты позволяют писать общий код, на который ссылается несколько проектов различных приложений.Shared Projects let you write common code that is referenced by a number of different application projects. Код компилируется как часть каждого ссылающийся проект и могут включать директивы компилятора для внедрения функциональных возможностей платформы базы общего кода.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. В этой статье рассматриваются как общие проекты работают и как создать и использовать их с проектами Xamarin.This article discusses how Shared Projects work and how to create and use them with Xamarin projects.

Переносимые библиотеки классовPortable Class Libraries

Проекты переносимой библиотеки классов можно создавать и распространять сборки, содержащие общий код для запуска на нескольких платформах.Portable Class Library projects let you build and distribute assemblies that contain shared code to run on multiple platforms. Для создания переносимой библиотеки классов (или «PCL») сначала выбрать какие платформы для целевой, а затем написать код для подмножество .NET Framework, которая доступна в профиле, определенных для этих платформ.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. PCL считается устаревшим в последних версиях Visual Studio; Разработчики, рекомендуется вместо этого использовать .NET Standard 2.0.PCLs are considered to be deprecated in the latest versions of Visual Studio; developers are encouraged to use .NET Standard 2.0 instead.

Проекты NuGet: Обеспечивает реализацию многоплатформенных библиотек для совместного использования кодаNuGet projects: Multiplatform Libraries for code sharing

Пакеты NuGet можно автоматически создавать из проектов переносимой библиотеки Классов или .NET standard; и проектах общих можно упаковать в пакеты NuGet «с подменой», с помощью отдельный тип проекта NuGet.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. В этом разделе описывается создание пакетов NuGet для каждого сценария совместного использования кода.This section explains how to create NuGet packages for each code-sharing scenario.

Вручную созданию пакетов NuGet для XamarinManually creating NuGet packages for Xamarin

Советы по созданию пакетов NuGet, которые работают на платформе Xamarin.Tips for creating NuGet packages that work with the Xamarin platform.

Использование библиотек C/C++ в проектах Xamarin кросс платформенныеUse C/C++ Libraries in Cross-Platform Xamarin Projects

Этот метод позволяет отделить развития библиотек C/C++, C# привязки в приложения Xamarin и NuGet.This technique allows you to decouple the evolution of your C/C++ libraries, a C# binding in a NuGet, and your Xamarin applications. Функциональность обеспечивается библиотеки платформы машинный код C/C++, но изолированный от окончательного приложения Xamarin, позволяя производительности максимальное возможное с без дублирования кода весь код конкретной платформы.Functionality is provided by the native-platform C/C++ library, but all platform-specific code is isolated from the final Xamarin application(s), allowing the highest-possible performance with no code duplication.