답변:
여기 문서에 따라 다음 6 가지 일반적인 시나리오에서 .NET Framework 또는 Xamarin 대신 .NET Core를 사용해야 합니다 .
1. 크로스 플랫폼 요구
플랫폼 (Windows, Linux 및 MacOS)에서 실행할 수 있어야하는 응용 프로그램 (웹 / 서비스)을 보유하는 것이 목표라면 분명히 .NET 에코 시스템에서 최선의 선택은 .NET Core를 런타임 (CoreCLR)으로 사용하는 것입니다. ) 및 라이브러리는 크로스 플랫폼입니다. 다른 선택은 Mono Project를 사용하는 것입니다.
두 가지 선택 모두 오픈 소스이지만 .NET Core는 Microsoft에서 직접 공식적으로 지원하며 막대한 투자가 이루어질 것입니다.
여러 플랫폼에서 .NET Core를 사용하는 경우 프로젝트 관리, 디버깅, 소스 제어, 리팩토링, Intellisense를 포함한 풍부한 편집, 테스트 등을 포함한 많은 생산성 기능을 지원하는 Visual Studio IDE를 통해 Windows에서 최상의 개발 경험을 얻을 수 있습니다. 그러나 인텔리전스 및 디버깅을 포함하여 Mac, Linux 및 Windows에서 Visual Studio Code를 사용하여 풍부한 개발도 지원됩니다. Sublime, Emacs, VI 등과 같은 타사 편집자조차도 잘 작동하며 오픈 소스 Omnisharp 프로젝트를 사용하여 편집자 지능을 얻을 수 있습니다.
2. 마이크로 서비스
여러 개의 독립적이고 동적으로 확장 가능한 상태 저장 또는 상태 비 저장 마이크로 서비스로 구성된 마이크로 서비스 지향 시스템을 구축 할 때 마이크로 서비스 수준에서 서로 다른 기술 / 프레임 워크 / 언어를 사용할 수 있다는 장점이 있습니다. 따라서 시스템의 마이크로 영역 당 최상의 접근 방식과 기술을 사용할 수 있으므로 성능이 뛰어나고 확장 가능한 마이크로 서비스를 구축하려면 .NET Core를 사용해야합니다. 결국 .NET Core와 호환되지 않는 .NET Framework 라이브러리를 사용해야하는 경우에는 문제가 없습니다. .NET Framework로 해당 마이크로 서비스를 빌드 할 수 있으며 나중에 .NET으로 대체 할 수 있습니다. 핵심.
사용할 수있는 인프라 플랫폼은 많습니다. 이상적으로 크고 복잡한 마이크로 서비스 시스템의 경우 Azure Service Fabric을 사용해야합니다. 그러나 상태 비 저장 마이크로 서비스의 경우 Azure App Service 또는 Azure Functions와 같은 다른 제품을 사용할 수도 있습니다.
2016 년 6 월 현재 Azure의 모든 기술이 .NET Core를 지원하는 것은 아니지만 .NET Core가 RTM으로 출시됨에 따라 Azure의 .NET Core 지원이 크게 증가 할 것입니다.
3. 최고의 성능과 확장 성 시스템
시스템에 최상의 성능과 확장 성이 필요할 때 사용자 수에 관계없이 최고의 응답 성을 얻을 수 있다면 .NET Core와 ASP.NET Core가 실제로 빛을 발하는 곳입니다. 동일한 양의 인프라 / 하드웨어로 더 많은 일을할수록 최종 사용자에게 더 적은 비용으로 더 많은 경험을 얻을 수 있습니다.
단일 CPU에 대한 Moore의 법률 성능 향상 시대는 더 이상 적용되지 않습니다. 그러나 시스템이 성장하는 동안 더 많은 작업을 수행해야하며 기하 급수적으로 증가하는 일상적인 더 까다로운 사용자를 위해 더 높은 확장 성과 성능이 필요합니다. 궁극적으로 모든 머신 클러스터, VM 및 CPU 코어에서 효율성을 높이고 어디서나 최적화하고 확장 성을 향상시켜야합니다. 사용자 만족의 문제 만이 아닙니다. 또한 비용 / TCO에 큰 차이를 만들 수 있습니다. 따라서 성능과 확장 성을 위해 노력하는 것이 중요합니다.
언급했듯이 작은 시스템 조각을 마이크로 서비스 또는 느슨하게 결합 된 다른 접근 방식으로 분리 할 수 있다면 각 작은 조각 / 마이크로 서비스를 독립적으로 발전시킬뿐만 아니라 장기적으로 더 나은 성능을 발휘할 수 있으므로 더 좋습니다. 민첩성 및 유지 관리는 물론 .NET Core와 호환되지 않는 경우 마이크로 서비스 수준에서 다른 기술을 사용할 수 있습니다. 결국에는 리팩토링하여 가능한 경우 .NET Core로 가져올 수 있습니다.
4. Mac, Linux 또는 Windows 용 명령 줄 스타일 개발.
이 방법은 .NET Core를 사용할 때 선택 사항입니다. 물론 전체 Visual Studio IDE를 사용할 수도 있습니다. 그러나 가벼운 편집기와 명령 줄을 많이 사용하여 개발하려는 개발자라면 .NET Core는 CLI를 위해 설계되었습니다. 지원되는 모든 플랫폼에서 사용할 수있는 간단한 명령 줄 도구를 제공하므로 개발자는 개발자, 실험실 또는 프로덕션 컴퓨터에 최소한의 설치로 응용 프로그램을 빌드하고 테스트 할 수 있습니다. Visual Studio Code와 같은 편집자는 개발 경험에 동일한 명령 줄 도구를 사용합니다. 또한 Visual Studio와 같은 IDE는 동일한 CLI 도구를 사용하지만 풍부한 IDE 환경 뒤에 숨 깁니다. 개발자는 이제 CLI에서 편집기, IDE에 이르기까지 툴 체인과 상호 작용하려는 수준을 선택할 수 있습니다.
5. 응용 프로그램 수준마다 .NET 버전과 함께 필요합니다.
.NET에서 서로 다른 버전의 프레임 워크에 종속성이있는 응용 프로그램을 설치하려면이 문서의 앞부분에서 설명한대로 100 % 나란히 제공하는 .NET Core를 사용해야합니다.
6. Windows 10 UWP .NET 앱.
또한 다음을 읽을 수도 있습니다.
Microsoft가 다음과 같이 설명합니다.
.NET Framework 는 Windows와 함께 배포되는 .NET의 "전체"또는 "전통적인"맛입니다. 데스크톱 Windows 또는 UWP 앱을 빌드하거나 이전 ASP.NET 4.6 이상에서 작업 할 때 사용하십시오.
.NET Core 는 Windows, Mac 및 Linux에서 실행되는 크로스 플랫폼 .NET입니다. Docker 컨테이너 내부를 포함하여 모든 플랫폼에서 실행할 수있는 콘솔 또는 웹 앱을 빌드하려는 경우이를 사용하십시오. 현재 UWP / 데스크톱 앱은 포함되어 있지 않습니다.
Xamarin 은 iOS, Android 또는 Windows Phone 장치에서 실행할 수있는 모바일 앱을 빌드하는 데 사용됩니다.
Xamarin은 일반적으로 Mono 위에서 실행됩니다. Mono 는 Microsoft가 공식적으로 .NET Core와 크로스 플랫폼으로 가기로 결정하기 전에 크로스 플랫폼 지원을 위해 작성된 .NET 버전 인 Mono 위에서 실행됩니다 . Xamarin과 마찬가지로 Unity 플랫폼도 Mono 위에서 실행됩니다.
혼란의 일반적인 지점은 ASP.NET Core가 적합한 위치입니다. ASP.NET Core는 .NET Framework (Windows) 또는 .NET Core (cross-platform)에서 실행될 수 있습니다 ( ASP의 차이점). NET Core (.NET Core) 및 ASP.NET Core (.NET Framework)
이 줄 에서 ASP.NET Core (.NET Core)와 ASP.NET Core (.NET Framework)의 차이점을 참조 할 수 있습니다.
Xamarin 은 전혀 논쟁이 아닙니다. C #을 사용하여 모바일 (iOS, Android 및 Windows Mobile) 앱을 빌드하려는 경우 Xamarin이 유일한 선택입니다.
.NET Framework 는 Windows 및 웹 응용 프로그램을 지원합니다. 현재 Windows Forms, WPF 및 UWP를 사용하여 .NET Framework에서 Windows 응용 프로그램을 빌드 할 수 있습니다. ASP.NET MVC는 .NET Framework에서 웹 응용 프로그램을 작성하는 데 사용됩니다.
.NET Core 는 Windows, Mac 및 Linux를 포함한 모든 운영 체제에 대한 응용 프로그램을 빌드하기위한 새로운 오픈 소스 및 크로스 플랫폼 프레임 워크입니다. .NET Core는 UWP 및 ASP.NET Core 만 지원합니다. UWP는 Windows 10 대상 Windows 및 모바일 응용 프로그램을 구축하는 데 사용됩니다. ASP.NET Core는 브라우저 기반 웹 응용 프로그램을 작성하는 데 사용됩니다.
자세한 내용은이 링크를
참조
하십시오 https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles / standard / choosing-core-framework-server
.Net 핵심 클래스 라이브러리는 .Net 표준을 기반으로합니다 . .NET 표준 당신은 독립을 실행할 수 없습니다 다른 의해 참조해야에만 클래스 라이브러리 프로젝트를 만들 수 있습니다 .NET 코어 또는 .NET 프레임 워크 는 휴대용 인 라이브러리 구현하려는 실행 project.If을 닷넷 프레임 워크 , 닷넷 Core 및 Xamarin 은 .Net 표준 라이브러리를 선택하십시오.
.NET Framework를 사용하여 실행 가능한 프로젝트 (예 : 콘솔 응용 프로그램 또는 ASP.NET 응용 프로그램)를 만들 수 있습니다.
Windows, Mac 및 Linux를 포함한 모든 운영 체제에 대한 응용 프로그램을 구축하는 새로운 오픈 소스 및 크로스 플랫폼 프레임 워크입니다.
.NET 표준 의 구현 지원 [blue] 및 .NET 표준의 전체 지원을위한 최소 실행 가능 플랫폼 (최신 : [ https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation- 지원] )
.NET Core는 현재 사용중인 .NET의 현재 버전입니다 (더 많은 기능, 수정 된 버그 등).
Xamarin은 C #으로 코딩 된 크로스 플랫폼 모바일 문제에 대한 솔루션을 제공하는 플랫폼이므로 IOS에 Swift를 별도로 사용할 필요가 없으며 Android에서도 마찬가지입니다.
Xamarin은 전화 응용 프로그램 (IOS / Android 모두)에 사용됩니다. .NET Core는 Apache와 IIS 모두에서 작동 할 수있는 웹 응용 프로그램을 디자인하는 데 사용됩니다.
그것은 두 문장의 차이점입니다.
2019 년 5 월 업데이트
다음 버전 .Net 5로 업그레이드 할 때는 .Net Core 3.0 이상을 사용해야합니다. 단 하나의 통합 플랫폼 만 있으면됩니다.
앞으로 하나의 .NET이 있으며 Windows, Linux, macOS, iOS, Android, tvOS, watchOS 및 WebAssembly 등을 대상으로 사용할 수 있습니다. https://devblogs.microsoft.com/dotnet/introducing-net-5/