다음을 통해 공유


서버 앱에 대한 .NET와 .NET Framework 비교

서버 쪽 앱을 빌드하기 위해 지원되는 .NET 구현 에는 .NET 및 .NET Framework라는 두 가지가 있습니다. 최신 .NET 버전(현재 .NET 8)은 서버 개발에 사용할 기본 버전의 .NET입니다. .NET Framework를 계속 사용하는 이유는 구체적이고 제한적입니다.

구현 포함된 버전
.NET .NET Core 1.0 - 3.1
.NET 5 이상 버전
.NET Framework .NET Framework 1.0~4.8

.NET 선택

.NET은 서버 앱에 다음과 같은 장점이 있습니다.

  • 플랫폼 간 작동

    .NET을 사용하면 Windows, Linux 및 macOS와 같은 여러 플랫폼에서 웹 또는 서비스 앱을 실행할 수 있습니다. 이러한 운영 체제를 개발 워크스테이션으로 사용할 수도 있습니다. Windows에서 Visual Studio IDE(통합 개발 환경)를 사용하거나 macOS, Linux 또는 Windows에서 Visual Studio Code를 사용합니다. Visual Studio Code는 IntelliSense 및 디버깅을 지원합니다. Sublime, Emacs 및 VI 같은 대부분의 타사 편집기는 .NET에서 작동합니다. 이러한 타사 편집기는 Omnisharp를 사용하여 편집기 IntelliSense를 가져옵니다. 코드 편집기를 건너뛰고 .NET CLI직접 사용할 수도 있습니다.

  • 마이크로 서비스를 대상으로 지정할 수 있습니다.

    마이크로 서비스 아키텍처를 사용하면 서비스 경계를 벗어나 여러 기술을 융합할 수 있습니다. 이러한 기술 융합을 통해 다른 마이크로서비스나 서비스에서 작동하는 새로운 마이크로서비스에 .NET을 점진적으로 적용할 수 있습니다. 예를 들어 .NET Framework, Java, Ruby 또는 다른 모놀리식 기술로 개발된 서비스나 마이크로 서비스를 융합할 수 있습니다.

    사용 가능한 많은 인프라 플랫폼이 있습니다. Azure Service Fabric은 크고 복잡한 마이크로 서비스 시스템용으로 설계되었습니다. Azure App Service는 상태 비저장 마이크로 서비스에 적합합니다. Docker를 기반으로 하는 마이크로 서비스 대안은 다음 섹션(Docker 컨테이너 지원)에 설명된 대로 모든 마이크로 서비스 접근 방식에 적합합니다. 이러한 모든 플랫폼은 .NET을 지원하므로 마이크로서비스를 호스팅하는 데 적합합니다.

    마이크로 서비스 아키텍처에 대한 자세한 내용은 .NET 마이크로 서비스: 컨테이너화된 .NET 앱에 대한 아키텍처를 참조 하세요.

  • Docker 컨테이너를 지원합니다.

    컨테이너는 일반적으로 마이크로 서비스 아키텍처와 함께 사용됩니다. 또한 컨테이너는 모든 아키텍처 패턴을 따르는 웹앱 또는 서비스를 컨테이너화하는 데 사용할 수 있습니다. .NET Framework는 Windows 컨테이너에서 사용할 수 있지만 . NET의 모듈화 및 경량 특성은 컨테이너에 더 적합한 선택입니다. 컨테이너를 만들고 배포할 때 컨테이너 이미지의 크기가 .NET Framework보다 .NET을 사용할 때 훨씬 더 작습니다. 플랫폼 간에 사용되므로 서버 앱을 Linux Docker 컨테이너에 배포할 수 있습니다.

    사용자 고유의 Linux 또는 Windows 인프라 또는 Azure Kubernetes Service와 같은 클라우드 서비스에서 Docker 컨테이너를 호스트할 수 있습니다. Azure Kubernetes Service는 클라우드에서 컨테이너 기반 애플리케이션을 관리, 오케스트레이션 및 확장할 수 있습니다.

  • 고성능이며 확장 가능합니다.

    시스템에 가장 적합한 성능 및 확장성이 필요한 경우 .NET 및 ASP.NET Core를 선택하는 것이 최고입니다. Windows Server 및 Linux용 고성능 서버 런타임은 TechEmpower 벤치마크에서 ASP.NET Core를 최상의 웹 프레임워크로 만듭니다.

    성능 및 확장성은 수백 개의 마이크로 서비스를 실행할 수 있는 마이크로 서비스 아키텍처와 특히 관련이 있습니다. ASP.NET Core에서 시스템은 훨씬 적은 수의 서버 또는 VM(가상 머신)으로 실행되어 인프라 및 호스팅 비용을 절감합니다.

  • 애플리케이션당 병렬 .NET 버전을 지원합니다.

    .NET 구현은 동일한 컴퓨터에서 여러 버전의 .NET 런타임을 병렬로 설치할 수 있습니다. 이 기능을 사용하면 각각 자체 버전의 .NET에 있는 동일한 서버에서 여러 서비스를 사용할 수 있습니다. 또한 위험을 줄이고 애플리케이션 업그레이드 및 IT 운영 비용을 절감할 수 있습니다.

    .NET Framework에서는 병렬 설치를 수행할 수 없습니다. Windows 구성 요소이며 한 번에 하나의 버전만 컴퓨터에 존재할 수 있습니다. .NET Framework의 각 버전은 이전 버전을 대체합니다. 최신 버전의 .NET Framework를 대상으로 하는 새 앱을 설치하는 경우 이전 버전이 바뀌기 때문에 컴퓨터에서 실행되는 기존 앱이 중단될 수 있습니다.

  • 더 안전합니다.

.NET Framework를 선택하는 경우

앞에서 설명한 것처럼 .NET 구현은 새 애플리케이션 및 애플리케이션 패턴에 상당한 이점을 제공합니다. 그러나 일부 특정 시나리오에서는 서버 앱에 .NET Framework를 사용해야 할 수 있으며 .NET Framework는 계속 지원됩니다. 다음과 같은 경우 서버 앱에 .NET Framework를 사용합니다.

  • 앱은 현재 .NET Framework를 사용합니다.

    대부분의 경우 기존 애플리케이션을 .NET으로 마이그레이션할 필요가 없습니다. 대신 ASP.NET Core에서 새 웹 서비스를 작성하는 등 기존 앱을 확장할 때 .NET을 사용하는 것이 좋습니다.

  • 앱은 .NET에 사용할 수 없는 타사 라이브러리 또는 NuGet 패키지를 사용합니다.

    .NET Standard를 사용하면 .NET 6+를 비롯한 모든 .NET 구현에서 코드를 공유할 수 있습니다. .NET Standard 2.0에서는 호환 모드를 통해 .NET Standard 및 .NET 프로젝트가 .NET Framework 라이브러리를 참조할 수 있습니다. 자세한 내용은 .NET Framework 라이브러리 지원을 참조하세요.

    라이브러리 또는 NuGet 패키지가 .NET Standard 또는 .NET에서 사용할 수 없는 기술을 사용하는 경우에만 .NET Framework를 사용해야 합니다.

  • 앱이 .NET에 사용할 수 없는 .NET Framework 기술을 사용합니다.

    일부 .NET Framework 기술은 .NET에서 사용할 수 없습니다. 다음 목록은 .NET에서 제공되지 않는 가장 일반적인 기술입니다.

    • ASP.NET Web Forms 애플리케이션: ASP.NET Web Forms는 .NET Framework에서만 사용할 수 있습니다. ASP.NET Core는 ASP.NET Web Forms에 사용할 수 없습니다.
    • ASP.NET 웹 페이지 애플리케이션: ASP.NET 웹 페이지는 ASP.NET Core에 포함되지 않습니다.
    • 워크플로 관련 서비스: Windows WF(Workflow Foundation), 워크플로 서비스(단일 서비스의 WCF + WF) 및 WCF Data Services(이전의 “ADO.NET Data Services”)는 .NET Framework에서만 사용할 수 있습니다.
    • 언어 지원: Visual Basic 및 F#은 .NET에서 지원되지만 모든 프로젝트 형식에는 지원되지 않습니다. 지원되는 프로젝트 템플릿 목록은 dotnet new에 대한 템플릿 옵션을 참조하세요.

    자세한 내용은 .NET에서 사용할 수 없는 .NET Framework 기술을 참조하세요.

  • 앱이 .NET을 지원하지 않는 플랫폼을 사용합니다.

    일부 Microsoft 또는 타사 플랫폼에서는 .NET을 지원하지 않습니다. 일부 Azure 서비스에서는 .NET에서 사용할 수 없는 SDK를 제공합니다. 이러한 경우 클라이언트 SDK 대신 상응하는 REST API를 사용할 수 있습니다.

참조