2017-09-11 6 views
1

.NET Standard 및 .NET Core에 대한 몇 가지 사항을 읽었으며 일반적으로 "이 작업을 수행하는 새로운 방식이며 여기에는 장점과 단점이 있습니다.".NET Standard 및 .NET Core에서 해결해야 할 문제점은 무엇입니까?

필자가 보지 못했지만 .NET Standard 및 .NET Core와 같은 현상 유지에있어 잘못된 점에 대한 명확하고 명확한 설명이 필요했습니다. 내가 이것을 위해 사용해야하는 것을 정말로 판단하기 위해, 그들이 왜 존재 하는지를 아는 것이 도움이 될 것입니다.

.NET Standard 및 .NET Core는 어떤 문제를 해결할 수 있습니까? (b) 해결 방법은 무엇입니까?

답변

9

.NET 표준은 라이브러리 계약 집합입니다. 각 버전에는 이전 버전의 모든 계약이 포함되어 있으므로 netstandard1.4의 모든 내용이 netstandard1.5에 들어 있습니다.

.NET Core는 Windows, Linux 및 OSX에서 실행되는 .NET Standard (및 일부 추가 기능)의 구현입니다.

가장 큰 문제는 그들이 해결 :

  • 리눅스 /에서라도에 Microsoft에서 제공/지원 툴체인과 런타임을 필요하지 않습니다. Windows 또는 Mono에서만 .NET 기반 서버 코드를 실행할 수 있다고 간단히 말할 수 없습니다.
  • 포터블 클래스 라이브러리는 타겟에 부분적으로 겹치는 API 서페이스를 제공하는 수백 가지 프로필이 엉망입니다.

PCL은 특히 나 자신과 같은 클래스 라이브러리 작성자와 함께 사용하기가 매우 어려웠습니다. 골칫거리는 .NET 런타임을 다른 장치에 가져 와서 충분히 조율하지 않으면 서 일관성있는 API 표면을 제공하기위한 여러 노력이 있었기 때문입니다.

이제 여러 공급 업체가 특정 버전의 .NET Standard를 대상으로 할 수 있으며 해당 버전 이상을 대상으로하는 것이 효과가 있습니다. 예를 들어, Noda Time 라이브러리는 netstandard1.3을 대상으로합니다. 새로운 휴대 전화 공급 업체가 완전히 새로운 종류의 응용 프로그램과 함께 완전히 새로운 .NET 구현을 제공한다고 가정 할 때 netstandard2.0을 지원한다고 가정 해보십시오. 괜찮습니다. 새로운 플랫폼을 사용하는 사용자는 Noda Time NuGet 패키지를 설치할 수 있으며 (물론 구현 버그는 제외하고) 사용할 수 있습니다. 나는 플랫폼이 존재한다는 것을 알 필요가 없다.