[Xamarin] Xamarin을 위한 .NET Standard Library

2017. 9. 13. 17:56Mobile/Xamarin

원문: https://blog.xamarin.com/net-standard-library-support-for-xamarin/

Xamarin은 .NET Standard Library를 지원합니다. .NET Standard Library를 만들거나 참조하는 것은 물론이고 NuGet에서 .NET Standard를 지원하는 라이브러리를 설치하여 사용할 수 있습니다. .NET Standard로 작성된 코드는 .NET Core, ASP.NET Core, Xamarin 등의 .NET Standard를 지원하는 .NET Platform에서 실행할 수 있습니다.

.NET Standard란?

.NET Standard Library는 .NET API의 정규화된 스펙을 말합니다. .NET Standard에 따라 작성된 코드는 .NET Standard를 지원하는 모든 Runtime에서 실행될 수 있습니다. 좀더 쉽게 생각하면 Portable Class Library가 단순화되고 확장된 버전이라고 볼 수 있습니다. 아래 그림처럼 .NET Standard Library는 단일 라이브러리로써 .NET Standard를 지원하는 .NET Platform에게 일관된 API를 제공합니다.

Nuget과 .NET Standard

지금도 수많은 라이브러리들이 .NET Standard를 지원하도록 업데이트 되고 있습니다. .NET Standard를 지원함으로써 .NET Core, ASP.NET Core 플렛폼을 지원할 수 있기 때문입니다. 따라서 PCL Profile이 아닌 .NET Standard를 기반으로하는 Xamarin 앱은 .NET Standard를 지원하는 수많은 Library를 설치할 수 있게 되었습니다. 예를들어 아래는 .NET Standard 1.6 이상을 지원하는 Windows Azure Storage를 설치하는 모습입니다.

설치가 완료되면 .NET Standard에 해당하는 라이브러리 파일이 프로젝트의 References에 추가되게 됩니다.

.NET STandard로 Xamarin.Forms 시작하기

.NET Standard를 Xamarin.Forms에서 사용하려면 적어도 VIsualStudio 2015 Update3이 필요합니다. 그리고 Xamarin 4.2.2 for VisualStudio로 업데이트해야 합니다. (설치 도움말)

이제 Visual Studio에서 File->New Project의 Portable Class Library (PCL) 프로젝트를 생성합니다.

생성된 프로젝트는 PCL Profile을 사용하기 때문에 .NET Standard Library를 사용하도록 변경이 필요합니다. 프로젝트의 설정에서 Target .NET Platform Standard를 클릭합니다. 그러면 프로젝트가 .NET Standard Library를 사용하도록 변경됩니다.

일부 Visual Studio 버전에서는 해당 링크가 존재하지 않을 수 있는데, 이때는 Visual Studio 업데이트를 통해 .NET Standard 지원하도록 해야합니다. 이미 Visual Studio가 .NET Standard를 지원하는데도 해당 링크가 없다면 직접 Migration작업을 해야 합니다.

.NET Standard는 현재 7개의 API 버전이 존재합니다. 아래 차트는 각 플렛폼 별 .NET Standard API 지원버전을 나타냅니다.

.NET 표준 1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0
.NET Core 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0
.NET Framework(.NET Core 1.x SDK 포함) 4.5 4.5 4.5.1 4.6 4.6.1 4.6.2
.NET Framework(.NET Core 2.0 SDK 포함) 4.5 4.5 4.5.1 4.6 4.6.1 4.6.1 4.6.1 4.6.1
Mono 4.6 4.6 4.6 4.6 4.6 4.6 4.6 5.4
Xamarin.iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.14
Xamarin.Mac 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.8
Xamarin.Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.5
범용 Windows 플랫폼 10.0 10.0 10.0 10.0 10.0 vNext vNext vNext
8.0 8.0 8.1
Windows Phone 8.1 8.1 8.1
Windows Phone Silverlight 8.0

프로젝트가 사용하는 .NET Standard API 버전은 프로젝트 설정을 통해 언제든지 변경할 수 있습니다. Xamarin.Forms의 PCL Profile 버전을 변경하는 것과 유사하므로 큰 어려움은 없을 것입니다.

.NET Standard에 대해 더 많은 정보를 원하시면 아래 링크를 확인해주세요.
https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard