티스토리 뷰

Visual Studio

Announcing .NET 5.0 RC1

kaki104 2020. 10. 8. 13:46
반응형

Micorosft .NET 5 RC1 버전이 발표되었습니다. 이제 .Net Framework와 .Net Core의 통합이 눈앞에 온 것 같습니다. 이 새로운 .NET 5 버전은 2020년 11월 10일 정식 출시 예정입니다.

 

.NET 5의 목표는 모든 .NET 5 애플리케이션에서 단일 BCL(Base Class Library)를 사용하고, 여러 플랫폼에서 네이티브 및 웹 애플리케이션을 지원하는 통합 .NET SDK 환경을 제공하는 것입니다. 그래서, 단인 .NET 5 애플리케이션 프로젝트를 생성하고 Windows, Microsoft Duo(Android) 및 Apple iOS와 같은 플랫폼을 지원할 것입니다.

 

 

Reference

Announcing .NET 5.0 Preview 8 | .NET Blog (microsoft.com)

Announcing .NET 5.0 RC 1 | .NET Blog (microsoft.com)

What’s new in Microsoft .NET 5 | InfoWorld

 

Download

Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com)

  • Full version
    • 5.0.100-rc.1.20452.10
  • Visual Studio support
    • Visual Studio 2019 (v16.8, Preview 3)
    • 비주얼 스튜디오 Preview에서 테스트를 하기위한 최소 버전입니다.
  • Included runtimes
    • .NET Runtime 5.0.0-rc.1.20451.14
    • ASP.NET Core Runtime 5.0.0-rc.1.20451.14
    • .NET Desktop Runtime 5.0.0-rc.1.20451.14
  • Language support
    • C# 9.0-preview
    • F# 5.0-preview
    • Visual Basic 15.5

 

Languages

  • C# 9.0
    • Top-level programs
      • 기존에 console 앱 생성 후에 있던 모든 코드가 필요없습니다. 아래 코드를 삭제하고
      • namespace ConsoleApp1
        {
            class Program
            {
                static void Main(string[] args)
                {
                    Console.WriteLine("Hello World!");
                }
            }
        }
      • 간단하게!!
      • Console.WriteLine("Hello World!");
      • 최종적으로 이런 코딩이 가능합니다. 
      • using System;
        using System.Runtime.InteropServices;
        
        Console.WriteLine("Hello World!");
        FromWhom();
        Show.Excitement("Top-level programs can be brief, and can grow as slowly or quickly in complexity as you'd like", 8);
        
        void FromWhom()
        {
            Console.WriteLine($"From {RuntimeInformation.FrameworkDescription}");
        }
        
        internal class Show
        {
            internal static void Excitement(string message, int levelOf)
            {
                Console.Write(message);
        
                for (int i = 0; i < levelOf; i++)
                {
                    Console.Write("!");
                }
        
                Console.WriteLine();
            }
        }
    • Pattern matching
      • 값이 특정 모양을 가지고 있는지 테스트하고 일치하는 모양이있을 때 값에서 정보를 추출하는 기능입니다.
      • if (context is {IsReachable: true, Length: > 1 })
        {
            Console.WriteLine(context.Name);
        }
    • Target-typed new expressions
      • 객체/값을 생성할 때 유형 중복을 제거하도록 개선되었습니다.
      • List<string> values = new List<string>();
        List<string> values = new();
        var values = new List<string>();
  • F# 5.0
    • Interpolated Strings
    • Open Type Declarations

Tools

  • Microsoft.Extensions.Logging
    • Implement a custom ConsoleFormatter
    • 콘솔 프로바이더를 개선해서 사용자가 지정한 포멧으로 콘솔 출력의 서식 및 색상을 지정할 수 있습니다.
  • Dump debugging
    • Compile the Linux DAC
    • 리눅스 DAC를 컴파일할수 있어서 DAC에 대한 디버깅이 가능합니다.
  • Assembly load diagnostics added to event pipe
    • 이벤트 파이프에 어셈블리 로드 정보를 추가했습니다.
  • Printing environment information
    • .NET의 환경 정보를 쉽게 출력할 수 있도록 Tool을 추가했습니다. 
    • dotnet tool install –g dotnet-runtimeinfo
    • dotnet-runtimeinfo

Library APIs

  • Nullable Annotations
    • The platform is now 80% annotated for nullability
    • null 허용 여부에 대한 주석을 전체 80% 정도 추가했으며, 정식버전 출시전까지 나머지도 추가할 예정입니다.
  • Regular expression performance improvements
    • 정규식 엔진의 성능을 개선했습니다.
  • .NET 5.0 Target Framework
    • net5.0 is the new Target Framework Moniker (TFM) for .NET 5.0.
    • 타겟 플렛폼으로 .NET 5를 사용할 수 있습니다.
    • net5.0 combines and replaces netcoreapp and netstandard TFMs.
    • core와 netstandard를 통합하고 대체합니다.
    • net5.0 supports .NET Framework compatibility mode
    • .NET Framework 호환모드를 지원합니다.
    • net5.0-windows will be used to expose Windows-specific functionality, like Windows Forms and WPF.
    • net5.0-windows는 윈폼 및 WPF에서 윈도우 기능을 이용하기 위해 사용됩니다.
    • NET 6.0 will use the same approach, with net6.0 and will add net6.0-ios and net6.0-android. 
    • The OS-specific TFMs can include OS version numbers, like net6.0-ios14.
    • OS별 타겟 플렛폼은 OS 버전 번호가 포함될 수 있습니다.
    • Portable APIs, like ASP.NET Core and Xamarin.Forms, will be usable with net5.0.
    • 포터블 API들은 net5.0에서 사용할 수 있습니다.
  • WinRT Interop(Breaking Change)
    • New model for supporting WinRT APIs as part of .NET 5.0
    • WinRT API를 새로운 모델로 만들어서 .NET 5.0에 포함시겼습니다.
    • It can be developed and improved separate from the .NET runtime.
    • .NET 런타임과 별도로 개발 및 개선이 가능합니다.
    • Symmetrical with interop systems provided for other OSes, like iOS and Android.
    • iOS 및 Android와 같은 다른 OS에 제공되는 interop 시스템과 대칭이 되도록 구성했습니다.
    • Can take advantage of many other .NET features (AOT, C# features, IL linking).
    • 다른 많은 .NET 기능을 활용할 수 있습니다.
    • Simplifies the .NET runtime codebase.

Runtime Technology

  • Windows ARM64
    • Support for Windows ARM64 as part of this release
    • Windows ARM64에 대한 지원을 추가했습니다.
    • Decision to delay the Windows Desktop component(Windows Forms, WPF)
    • 하지만, 윈폼과 WPF 등의 윈도우 데스크탑 컴포넌트에 대한 지원은 지연되었습니다.
  • Event pipe profiler APIs
    • 프로파일러가 이벤트 파이프 이벤트를 작성할 수 있도록 확장되었습니다.
  • Native exports
    • Export managed methods to native code
    • 관리되는 메서드를 네이티브 코드로 내보낼 수 있습니다.
    • Unmanaged Exports
    • DllExport

Application deployment

  • Single file applications
    • Published and deployed as a single file
    • 단일 파일로 게시 및 배포를 할 수 잇습니다.
    • The app and its dependencies are all included within that file
    • 앱과 종속성 파일들을 모두 포함 합니다.
    • Single file apps are primarily focused on Linux
    • 다일 파일 앱은 주로 리눅스 배포에 중점을 두고 있습니다.
    • Framework-dependent single-file app:
      • dotnet publish -r linux-x64 --self-contained false /p:PublishSingleFile=true
    • Self-contained single-file app with assembly trimming and ready to run enabled:
      • dotnet publish -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true /p:PublishReadyToRun=true
  • Reducing the size of container images
    • .NET 컨테이너 이미지의 크기를 줄였습니다.
  • ClickOnce Support
    • Deliver it as part of RC2
    • 닷넷 코어에서 클릭원스를 지원하기 위한 개발을 진행 중에 있습니다.

더 자세한 사항은 러퍼런스를 클릭해서 확인하시면 될 것 같습니다.

반응형

'Visual Studio' 카테고리의 다른 글

What's New in Visual Studio 2019 version 16.8  (0) 2020.11.26
Welcome to C# 9.0  (0) 2020.11.24
What's new in ML.NET  (0) 2020.06.17
Modernizing .NET Desktop Applications with .NET Core  (0) 2019.10.07
What's New In C# 8.0 Part 2  (0) 2019.09.30
댓글