다음을 통해 공유


.NET 5의 새로운 기능

.NET 5는 3.1에 이어 .NET Core의 다음 주요 릴리스입니다. 이 릴리스는 다음 두 가지 이유로 .NET Core 4 대신 .NET 5로 명명되었습니다.

  • .NET Framework 4.x와 혼동하지 않도록 버전 번호 4.x를 건너뛰었다.
  • "Core"는 앞으로 .NET의 주요 구현임을 강조하기 위해 이름에서 삭제되었습니다. .NET 5는 .NET Core 또는 .NET Framework보다 더 많은 유형의 앱과 더 많은 플랫폼을 지원합니다.

ASP.NET Core 5.0은 .NET 5를 기반으로 하지만 이름이 "Core"인 것을 유지하여 ASP.NET MVC 5와 혼동하지 않도록 합니다. 마찬가지로 Entity Framework Core 5.0은 Entity Framework 5 및 6과 혼동하지 않도록 "Core"라는 이름을 유지합니다.

.NET 5에는 .NET Core 3.1에 비해 다음과 같은 향상된 기능과 새로운 기능이 포함되어 있습니다.

.NET 5는 .NET Framework를 대체하지 않습니다.

.NET 5 이상 버전은 앞으로 .NET의 기본 구현이지만 .NET Framework 4.x는 여전히 지원됩니다. .NET Framework에서 .NET 5로 다음 기술을 이식할 계획은 없지만 .NET에는 대안이 있습니다.

기술 권장되는 대안
웹 양식 ASP.NET Core Blazor 또는 Razor Pages
Windows 워크플로(WF) Elsa-Workflows

Windows Communication Foundation

WCF(Windows Communication Foundation) 원래 구현은 Windows에서만 지원되었습니다. 그러나 .NET Foundation에서 사용할 수 있는 클라이언트 포트가 있습니다. 완전히 오픈 소스이며, 여러 플랫폼을 지원하며 Microsoft가 지원합니다. 핵심 NuGet 패키지는 다음과 같습니다.

앞에서 언급한 클라이언트 라이브러리를 보완하는 서버 구성 요소는 CoreWCF통해 사용할 수 있습니다. 2022년 4월부터 CoreWCF는 Microsoft에서 공식적으로 지원됩니다. 그러나 WCF의 대안으로 gRPC를 고려해 보세요.

.NET 5는 .NET Standard를 대체하지 않습니다.

새 애플리케이션 개발에서는 클래스 라이브러리를 비롯한 모든 프로젝트 형식에 대해 net5.0 TFM(Target Framework Moniker)을 지정할 수 있습니다. .NET 5 워크로드 간의 코드 공유가 간소화되었습니다. net5.0 TFM만 있으면 됩니다.

.NET 5 앱 및 라이브러리의 경우 net5.0 TFM은 netcoreappnetstandard TFM을 결합하고 대체합니다. 그러나 .NET Framework, .NET Core 및 .NET 5 워크로드 간에 코드를 공유하려는 경우 netstandard2.0 TFM으로 지정하면 됩니다. 자세한 내용은 .NET Standard 참조하세요.

C# 업데이트

.NET 5 앱을 작성하는 개발자는 최신 C# 버전 및 기능에 액세스할 수 있습니다. .NET 5는 C# 9와 페어링되어 언어에 많은 새로운 기능을 제공합니다. 다음은 몇 가지 주요 사항입니다.

  • 레코드: 새로운 with 식이 지원하는 값 기반 동일성 의미 체계 및 비파괴적 변형을 가진 참조 형식입니다.

  • 관계형 패턴 일치: 논리 패턴을 포함하여 비교 평가 및 식에 대한 관계형 연산자(새 키워드 and, ornot)로 패턴 일치 기능을 확장합니다.

  • 최상위 문: C#의 채택 및 학습을 가속화하기 위한 수단으로 Main 메서드를 생략할 수 있으며 다음 예제와 같이 간단한 애플리케이션이 유효합니다.

    System.Console.Write("Hello world!");
    
  • 함수 포인터: 중간 언어(IL) 명령어 코드를 노출하는 언어 구문: ldftncalli.

사용 가능한 C# 9 기능에 대한 자세한 내용은 C# 9새로운 기능을 참조하세요.

원본 생성기

강조 표시된 새로운 C# 기능 중 일부 외에도 원본 생성기가 개발자 프로젝트에 진출하고 있습니다. 소스 생성기를 사용하면 컴파일 중에 실행되는 코드가 프로그램을 검사하고 나머지 코드와 함께 컴파일되는 추가 파일을 생성할 수 있습니다.

원본 생성기에 대한 자세한 내용은 C# 원본 생성기 소개 및 C# 원본 생성기 샘플참조하세요.

F# 업데이트

F#은 .NET 기능 프로그래밍 언어이며, .NET 5를 사용하면 개발자가 F# 5에 액세스할 수 있습니다. 새로운 기능 중 하나는 보간된 문자열로, C#의 보간된 문자열과 유사할 뿐만 아니라 JavaScript에서도 유사한 기능이 있습니다.

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

기본 문자열 보간 외에도 형식화된 보간이 있습니다. 형식화된 보간을 사용하면 지정된 형식이 형식 지정자와 일치해야 합니다.

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

이 형식은 형식이 안전한 입력에 따라 문자열의 형식을 지정하는 sprintf 함수와 유사합니다.

자세한 내용은 F# 5의 새로운 기능을 참조하세요.

Visual Basic 업데이트

.NET 5에는 Visual Basic에 대한 새로운 언어 기능이 없습니다. 그러나 .NET 5를 사용하면 Visual Basic 지원이 다음으로 확장됩니다.

묘사 dotnet new 매개 변수
콘솔 애플리케이션 console
클래스 라이브러리 classlib
WPF 애플리케이션 wpf
WPF 클래스 라이브러리 wpflib
WPF 사용자 지정 컨트롤 라이브러리 wpfcustomcontrollib
WPF 사용자 제어 라이브러리 wpfusercontrollib
Windows Forms(WinForms) 애플리케이션 winforms
Windows Forms(WinForms) 클래스 라이브러리 winformslib
단위 테스트 프로젝트 mstest
NUnit 3 테스트 프로젝트 nunit
NUnit 3 테스트 항목 nunit-test
xUnit 테스트 프로젝트 xunit

.NET CLI의 프로젝트 템플릿에 대한 자세한 내용은 dotnet new참조하세요.

System.Text.Json의 새로운 기능

의 System.Text.Json에 새로운 기능이 있습니다.

참고 항목