.NET 표준은 형식 집합입니다.NET API 명세, 모든 .NET 구현에서 제공될 것으로 예상됩니다. .NET Standard 도입의 동기는 .NET 생태계의 일관성을 높이기 위함이었습니다. ECMA 335는 .NET 구현 동작의 통일성을 계속 확립하지만, .NET 라이브러리 구현에 대한 .NET 기본 클래스 라이브러리(BCL)에 대한 유사한 명세는 없습니다.
.NET 표준은 다음과 같은 주요 시나리오를 지원합니다:
- 구현하고자 하는 모든 .NET 구현에 대해 통합되고 워크로드에 구애받지 않는 BCL API 세트를 정의하세요.
- 개발자가 동일한 API 세트를 통해 다양한 .NET 구현에서 사용할 수 있는 휴대용 라이브러리를 구축할 수 있도록 합니다.
- .NET API 측면(OS API만)에 대한 공유 소스 코드의 조건부 컴파일을 줄이거나 심지어 없애는 기능입니다.
다양한 .NET 구현은 특정 버전의 .NET Standard를 목표로 합니다. 각 .NET 구현은 지원하는 최고 버전의 .NET Standard 버전을 발표하는데, 이는 이전 버전도 지원한다는 의미입니다. 예를 들어, .NET Framework 4.6은 .NET Standard 1.3을 구현합니다. 즉, .NET Standard 버전 1.0부터 1.3까지 정의된 모든 API를 노출합니다. 마찬가지로, .NET Framework 4.6.1은 .NET Standard 1.4를 구현하고, .NET Core 1.0은 .NET Standard 1.6을 구현합니다.
.NET 표준과 .NET 구현 간의 관계는 HTML 명세와 브라우저 간의 관계와 같습니다. 후자는 전자의 실현이다.
따라서 .NET 프레임워크, Xamarin, 그리고 .NET Core 각각의 관리형 프레임워크는 . NET 표준. 컴퓨터 산업이 새로운 하드웨어와 운영체제를 계속 도입함에 따라, 앞으로도 새로운 하드웨어가 등장할 것입니다. .NET 호스팅 프레임워크. 이 표준은 애플리케이션 개발자들에게 일관된 API 집합에 의존할 수 있음을 알려줍니다.
각각. .NET 버전은 .NET 표준 버전에 해당합니다.
API는 일관성이 있으며, 애플리케이션을 서로 다른 관리형 구현체로 포팅하고 도구를 제공하는 것이 더 간단해질 것입니다.
.NET Standard는 별도의 NuGet 패키지로 정의되어 있습니다. 왜냐하면 모든 . .NET 구현은 반드시 지원되어야 합니다
.NET Standard 대 포터블 라이브러리
휴대용 라이브러리도 같은 기능을 하지 않나요?
포터블 클래스는 여러 플랫폼에서 지원하는 공통 API를 사용합니다. 그 결과, 지원되는 플랫폼이 많을수록 사용 가능한 API는 줄어들고, 특정 플랫폼 조합에 대해서는 어떤 API가 지원되는지 정확히 알기 어려울 수 있습니다. 새로운 플랫폼을 위해서는 기존 PCL을 재컴파일해야 합니다. PCL은 또한 각 플랫폼별로 새로운 프레임워크 구현 포크를 생성하도록 요구합니다. 그 때문에. NET Standard는 구현이 아니라 API를 식별하므로 애플리케이션을 재컴파일할 필요가 없습니다. 새로 출시된 . .NET 구현은 필요한 라이브러리를 구현합니다. 애플리케이션은 새로운 하드웨어 플랫폼이나 운영체제에서 실행되기 위해 재컴파일할 필요가 없습니다. 이론적으로는 API를 호출할 때 NotSupportedException 예외가 발견될 수 있지만, 이는 드뭅니다.
.NET 구현 지원
다음 표는 각 .NET Standard 릴리스를 지원하는 최소 플랫폼 버전을 나열합니다. 이는 나열된 플랫폼의 후속 버전도 해당 .NET Standard 버전을 지원한다는 의미입니다. 예를 들어, .NET Core 2.2는 .NET Standard 2.0 이후를 지원합니다.
|