1. .NET 6
.NET은 BCL(Base Class Library)를 포함하고 있어서 App을 개발하는데 필요한 여러 API를 사용할 수 있습니다. 다만 .NET의 플랫폼 버전에 따라 BCL이 달라질 수 있는데 이런 경우에는 .NET Standard를 통해 서로 다른 .NET 플랫폼 간 호환성을 유지할 수 있습니다.
.NET Core 2.0 또는 그 이후의 버전은 .NET Standard 2.0을 지원하기 시작하면서 첫번째 .NET Core에 포함되지 않은 많은 API를 지원하고 있고 과거부터 사용되어오던 .NET Framework는 이제 .NET으로 통합되어 이를 통해 개발된 App은 Linux나 MacOS 등 다양한 OS에서 동작하는 소위 cross-flatform 실행할 수 있게 되었습니다.
NET Standard 2.1이 들어서서는 3000개 이상의 새로운 API가 추가되었는데 이들 중 일부는 이전 버전과의 호환성을 손상시킬 수 있는 런타임 변경이 필요한 탓에 .NET Framework 4.8만 .NET Standard 2.0.을 구현하고 .NET Core 3.0, Xamarin, Mono, Unity등은 .NET Standard 2.1을 구현하게 되었습니다.
.NET 6에서는 프로젝트에 오로지 .NET 6만을 사용하는 경우라면 .NET Standard는 더 이상 필요가 없어졌는데 과거 .NET Framework나 레거시 Xamarin 모바일앱 등의 Class Library를 만들어야 한다면 여전히 .NET Standard 2.0/2.1을 지원하는 Class Library를 만들어야 하지만 상대적으로 .NET Standard의 필요성은 많이 감소하였습니다.
전체적인 .NET의 개발 진행 사항을 요약하면 다음과 같습니다.
.NET Core 1.x | 2016년 3월 당시 .NET Framework 4.6.1과 비교해 훨씬 적은 API가 구현되었습니다. 당시 Linux등의 cross-platform apps을 개발하는데 필요한 적절한 API를 구현하는데 초점이 맞춰진 버전입니다. 이 후 1.1버전에는 이전 버전의 버그가 수정되고 배포가능한 리눅스이 버전이 증가되었으며 .NET Standard 1.6지원하기 시작했습니다. 특히 Web과 Serivce를 위한 ASP.NET Core의 성능이 향상되었습니다. |
.NET Core 2.x | .NET Framework 4.7.1과 동등순 수준의 API가 구현되었으며 이들 둘 모두 .NET Standard 2.0을 지원하면서 일부 .NET Framework의 Class Library를 참조하는 것이 가능했습니다. 2.1버전에 와서는 Span<T>나 암호화및 압축을 위한 새로운 API와 고전 WIndows App을 이식하기 위한 윈도우 호환성 팩(Windows Compatibility Pack), EF Core Data Seeding과 함께 성능향상을 위한 20,000개 이상의 API가 추가되었습니다. 2.2버전은 runtime에 대한 개선 진단과 선택적 계층형 컴파일 그리고 공간데이터 지원, 쿼리 태그와 같은 ASP.NET Core과 Entity Framework의 새로운 기능이 추가되었습니다. |
.NET Core 3.x | .NET Core 2.x대와 비교해 훨씬 많은 수의 API를 구현하였으며 이때 .NET Framework 4.8에서 부터는 .NET Standard 2.1을 지원하지 않게 되어 API에서 차이가 벌어지기 시작했습니다. 또한 이때부터 Windows Forms와 Windows Presentation Foundation(WPF), Entity Framework 6.3을 통한 Windows desktop application의 개발이 가능해졌고 3.1에 와서는 이전버전의 bug가 수정되고 일부 Code가 재작성되어 이전과 달리 LTS(Long Term Support)로 배포되었습니다. |
.NET 5 | mobile을 제외한 .NET Flatform의 통합이 시도되어 이전보다 더 많은 API를 지원하고 더 발전된 성능을 갖추게 되었습니다. |
.NET 6 | .NET MAUI를 통해서 mobile Flatform까지도 지원하게 되는 진정한 .NET 통합버전에 해당합니다. 이 밖에 데이터를 위한 EF Core의 더 많은 기능과 성능향상이 이루어 졌습니다. 또한 Apple Silicon을 위한 Console App개발과 배포가 가능해졌습니다. |
특히 .NET 6부터는 아래 명령을 통해 현재 설치된 .NET SDK와 Runtime의 버전과 업데이트가 필요한지의 여부를 확인할 수 있습니다.
dotnet sdk check |
'.NET' 카테고리의 다른 글
[.NET] 닷넷 - 3. 배포하기 (0) | 2022.06.24 |
---|---|
[.NET] 닷넷 - 2. .NET components (0) | 2022.06.24 |
[ASP.NET Core] IIS 배포 (게시) (0) | 2021.12.15 |
[Visual Studio IDE] Visual Studio IDE의 Registry 설정 (0) | 2021.11.27 |
.NET과 C# 시작하기 (0) | 2021.10.28 |