.NET Standard의 새로운 기능

.NET Standard는 해당 버전의 표준에 부합하는 .NET 구현체에서 사용할 수 있어야 하는 버전이 지정된 API 세트를 정의합니다. .NET Standard는 라이브러리 개발자에서 대상으로 지정됩니다. .NET Standard 버전을 대상으로 하는 라이브러리는 해당 버전의 표준을 지원하는 모든 .NET 또는 Xamarin 구현에서 사용할 수 있습니다.

NET 표준은 .NET SDK에 포함되어 있습니다. .NET 워크로드를 선택하는 경우에도 Visual Studio에 포함됩니다.

.NET Standard 2.1은 마지막으로 릴리스되는 .NET Standard 버전입니다. 자세한 내용은 .NET 5 이상 및 .NET Standard를 참조하세요.

지원되는 .NET 구현체

.NET Standard 2.1은 다음 .NET 구현에서 지원됩니다.

  • .NET Core 3.0 이상(.NET 5 이상 포함)
  • Mono 6.4 이상
  • Xamarin.iOS 12.16 이상
  • Xamarin.Android 10.0 이상

.NET Standard 2.0은 다음 .NET 구현체에서 지원됩니다.

  • .NET Core 2.0 이상(.NET 5 이상 포함)
  • .NET Framework 4.6.1 이상
  • Mono 5.4 이상
  • Xamarin.iOS 10.14 이상
  • Xamarin.Mac 3.8 이상
  • Xamarin.Android 8.0 이상
  • 유니버설 Windows 플랫폼 10.0.16299 이상

.NET Standard 2.1의 새로운 기능

.NET Standard 2.1은 표준에 많은 API를 추가합니다. 그 중 일부는 새로운 API이고 다른 일부는 .NET 구현을 더욱 통합하는 데 도움이 되는 기존 API입니다. .NET Standard 2.1에 추가된 API의 목록은 .NET Standard 2.1 및 2.0을 참조하세요.

자세한 내용은 .NET Standard 2.1 발표 블로그 게시물을 참조하세요.

.NET Standard 2.0의 새로운 기능

.NET Standard 2.0에는 다음과 같은 새로운 기능이 포함되어 있습니다.

매우 폭넓은 API 집합

버전 1.6에는 비교적 적은 .NET Standard API가 포함되었습니다. 여기에는 .NET Framework 또는 Xamarin에서 일반적으로 사용된 많은 API가 제외되었습니다. 이로 인해 개발이 복잡해집니다. 개발자들이 여러 .NET 구현을 대상으로 하는 애플리케이션과 라이브러리를 개발할 때 친숙한 API에 대한 적합한 대체 API를 찾아야 하기 때문입니다. .NET Standard 2.0은 이전 Standard 버전인 .NET Standard 1.6에서 제공된 것보다 20,000개 더 많은 API를 추가하여 이 제약 사항을 해결합니다. .NET Standard 2.0에 추가된 API의 목록은 .NET Standard 2.0 및 1.6을 참조하세요.

.NET Standard 2.0에서 System 네임스페이스에 대해 추가된 기능의 일부는 다음과 같습니다.

  • AppDomain 클래스에 대한 지원.
  • Array 클래스에 있는 추가 멤버의 배열을 사용하기 위한 향상된 지원.
  • Attribute 클래스에 있는 추가 멤버의 속성을 사용하기 위한 향상된 지원.
  • DateTime 값에 대한 향상된 달력 지원 및 추가 서식 옵션.
  • 추가 Decimal 반올림 기능.
  • Environment 클래스의 추가 기능.
  • GC 클래스를 통해 가비지 수집기 제어 강화.
  • String 클래스의 문자열 비교, 열거 및 정규화를 위한 향상된 지원.
  • TimeZoneInfo.AdjustmentRuleTimeZoneInfo.TransitionTime 클래스의 일광 절약 조정 및 전환 시간에 대한 지원.
  • Type 클래스의 크게 향상된 기능.
  • SerializationInfoStreamingContext 매개 변수를 통해 예외 생성자를 추가하여 예외 개체를 역직렬화하는 기능에 대한 향상된 지원.

.NET Framework 라이브러리에 대한 지원

많은 라이브러리는 .NET Standard가 아닌 .NET Framework를 대상으로 합니다. 그러나 이러한 라이브러리에서 대부분의 호출은 .NET Standard 2.0에 포함된 API를 대상으로 합니다. .NET Standard 2.0부터는 호환성 shim을 사용하여 .NET Standard 라이브러리에서 .NET Framework 라이브러리에 액세스할 수 있습니다. 이 호환성 레이어는 개발자에게 투명하며, .NET Framework 라이브러리를 이용하기 위해 아무것도 할 필요가 없습니다.

한 가지 요구 사항은 .NET Framework 클래스 라이브러리에서 호출하는 API가 .NET Standard 2.0에 포함되어야 한다는 것입니다.

Visual Basic에 대한 지원

이제 Visual Basic에서 .NET Standard 라이브러리를 개발할 수 있습니다. .NET Core 워크로드가 설치된 Visual Studio 2019 및 Visual Studio 2017 버전 15.3 이상에는 .NET Standard 클래스 라이브러리 템플릿이 포함되어 있습니다. 다른 개발 도구와 환경을 사용하는 Visual Basic 개발자의 경우 dotnet new 명령을 사용하여 .NET Standard 라이브러리 프로젝트를 만들 수 있습니다. 자세한 내용은 .NET Standard 라이브러리에 대한 도구 지원을 참조하세요.

.NET Standard 라이브러리의 도구 지원

.NET Core 2.0 및 .NET Standard 2.0의 출시와 함께 Visual Studio 2017과 .NET CLI 모두 .NET Standard 라이브러리 생성을 위한 도구 지원이 포함됩니다.

.NET Core 플랫폼 간 개발 워크로드를 통해 Visual Studio를 설치하는 경우 다음 그림과 같이 프로젝트 템플릿을 사용하여 .NET Standard 2.0 라이브러리 프로젝트를 만들 수 있습니다.

Add New .NET Standard library project

.NET CLI를 사용하는 경우 다음과 같이 dotnet new 명령을 통해 .NET Standard 2.0을 대상으로 하는 클래스 라이브러리 프로젝트를 만듭니다.

dotnet new classlib

참고 항목