.NET 5의 새로운 기능

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

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

ASP.NET Core 5.0은 .NET 5를 기반으로 하지만 ASP.NET MVC 5와 혼동을 피하기 위해 "Core"라는 이름을 보존합니다. 마찬가지로 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에는 대안이 있습니다.

기술 권장되는 대체 항목
Web Forms ASP.NET Core Blazor 또는 Razor Pages
WF(Windows 워크플로) 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(대상 프레임워크 모니커)을 지정할 수 있습니다. .NET 5 워크로드 간 코드 공유가 간소화되었습니다. 필요한 것은 net5.0 TFM뿐입니다.

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

C# 업데이트

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

  • 레코드: 새로운 with 식에서 지원되는 값 기반 동등 의미 체계 및 비파괴적 변형이 포함된 참조 형식입니다.

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

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

    System.Console.Write("Hello world!");
    
  • 함수 포인터: IL(중간 언어) opcode(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에는 다음과 같은 새로운 기능이 있습니다.

참고 항목