팁 (조언)
이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.
.NET 8은 새 애플리케이션 및 애플리케이션 패턴에 상당한 이점을 제공하지만.NET Framework는 많은 기존 시나리오에서 계속해서 좋은 선택이 될 것입니다.
기존 애플리케이션을 Windows Server 컨테이너로 직접 마이그레이션
마이크로 서비스를 만들지 않더라도 배포를 간소화하기 위해 Docker 컨테이너를 사용하는 것이 좋습니다. 예를 들어 Docker를 사용하여 DevOps 워크플로를 개선하려고 할 수 있습니다. 컨테이너는 더 나은 격리된 테스트 환경을 제공하고 프로덕션 환경으로 이동할 때 종속성 누락으로 인한 배포 문제를 제거할 수도 있습니다. 이와 같은 경우 모놀리식 애플리케이션을 배포하는 경우에도 현재 .NET Framework 애플리케이션에 Docker 및 Windows 컨테이너를 사용하는 것이 좋습니다.
이 시나리오의 경우 대부분 기존 애플리케이션을 .NET 8로 마이그레이션할 필요가 없습니다. 기존 .NET Framework를 포함하는 Docker 컨테이너를 사용할 수 있습니다. 그러나 ASP.NET Core에서 새 서비스를 작성하는 등 기존 애플리케이션을 확장할 때 .NET 8을 사용하는 것이 좋습니다.
.NET 8에 사용할 수 없는 타사 .NET 라이브러리 또는 NuGet 패키지 사용
타사 라이브러리는 .NET Standard를 빠르게 수용하므로 .NET 8을 비롯한 모든 .NET 버전에서 코드를 공유할 수 있습니다. .NET Standard 2.0 이상을 사용하면 여러 프레임워크의 API 표면 호환성이 훨씬 더 커졌습니다. 또한 .NET Core 2.x 및 최신 애플리케이션은 기존 .NET Framework 라이브러리를 직접 참조할 수도 있습니다( .NET Standard 2.0을 지원하는 .NET Framework 4.6.1 참조).
또한 Windows 호환성 팩은 Windows 에서 .NET Standard 2.0에 사용할 수 있는 API 화면을 확장합니다. 이 팩을 사용하면 대부분의 기존 코드를 거의 또는 전혀 수정하지 않고 .NET Standard 2.x로 다시 컴파일하여 Windows에서 실행할 수 있습니다.
그러나 .NET Standard 2.0 및 .NET Core 2.1 이상 이후의 뛰어난 진행에도 불구하고 특정 NuGet 패키지를 실행하기 위해 Windows가 필요하고 .NET Core 이상을 지원하지 않을 수 있는 경우가 있을 수 있습니다. 이러한 패키지가 애플리케이션에 중요한 경우 Windows 컨테이너에서 .NET Framework를 사용해야 합니다.
.NET 8에 사용할 수 없는 .NET 기술 사용
일부 .NET Framework 기술은 .NET 8에서 사용할 수 없습니다. 그 중 일부는 이후 릴리스에서 사용할 수 있지만 다른 일부는 .NET Core가 대상으로 하는 새 애플리케이션 패턴에 맞지 않으며 사용할 수 없을 수도 있습니다.
다음 목록에서는 .NET 8에서 사용할 수 없는 대부분의 기술을 보여 줍니다.
ASP.NET 웹 폼. 이 기술은 .NET Framework에서만 사용할 수 있습니다. 현재는 ASP.NET Web Forms를 .NET 이상으로 가져올 계획이 없습니다.
워크플로 관련 서비스. WF(Windows Workflow Foundation), 워크플로 서비스(단일 서비스의 WCF + WF) 및 WCF Data Services(이전의 ADO.NET Data Services)는 .NET Framework에서만 사용할 수 있습니다. 현재 .NET 8로 가져올 계획은 없습니다.
공식 .NET 로드맵에 나열된 기술 외에도 다른 기능은 새로운 통합 .NET 플랫폼으로 이식될 수 있습니다. 음성을 들을 수 있도록 GitHub에서 토론에 참여하는 것이 좋습니다. 누락된 항목이 있다고 생각되면 dotnet/runtime GitHub 리포지토리에 새 문제를 제출합니다.
.NET 8을 지원하지 않는 플랫폼 또는 API 사용
일부 Microsoft 및 타사 플랫폼은 .NET 8을 지원하지 않습니다. 예를 들어 일부 Azure 서비스는 아직 .NET 8에서 사용할 수 없는 SDK를 제공합니다. 대부분의 Azure SDK는 결국 .NET 8/.NET Standard로 이식되어야 하지만 몇 가지 이유로 인해 이식되지 않을 수도 있습니다. Azure SDK 최신 릴리스 페이지에서 사용 가능한 Azure SDK를 볼 수 있습니다.
그동안 Azure의 플랫폼 또는 서비스가 클라이언트 API에서 .NET 8을 지원하지 않는 경우 Azure 서비스 또는 .NET Framework의 클라이언트 SDK에서 동등한 REST API를 사용할 수 있습니다.
기존 ASP.NET 애플리케이션을 .NET 8로 포팅
.NET Core는 .NET Framework의 혁신적인 단계입니다. 생산성에서 성능, 플랫폼 간 지원에서 개발자 만족에 이르기까지 전반적으로 .NET Framework에 비해 다양한 이점을 제공합니다.
추가 리소스
.NET 5로 프로젝트 포팅
https://learn.microsoft.com/events/dotnetconf-2020/porting-projects-to-net-5Docker의 .NET 가이드
https://learn.microsoft.com/dotnet/core/docker/introduction
.NET