programing

".NET Core"란 무엇입니까?

iphone6s 2023. 5. 17. 22:36
반응형

".NET Core"란 무엇입니까?

최근 공식 .NET Framework 블로그에서 .NET Core가 오픈 소스로 전환된다고 발표했습니다.

아이러니하게도, 작성자는 .NET Core가 무엇인지 다음 게시물에서 설명할 이라고 언급합니다.더 자세한 내용은 다른 공지 게시물에 언급되어 있습니다.

제공된 다이어그램에서:

.NET 코어 다이어그램

그리고 기사 자체가 텍스트이기 때문에 .NET Core(오픈 소스와 같은 명백한 것 외에도)는 완전한 .NET의 모듈식 재구현이라고 생각합니다.즉, NuGet 패키지가 지금 로드되는 것과 마찬가지로 프레임워크 구성 요소가 필요에 따라 로드됩니다.ASP.NET 5는 이미 구현된 모듈 중 하나입니다..NET Core에 대한 제 이해가 맞습니까?제가 뭔가 놓친 게 있나요?


는 최근에 제가 짧고 좋은 기사를 발견했습니다..NET Standard, .NET Core 및 .NET Framework와 그 관계에 대해 다룹니다.강력 추천합니다.

.NET 블로그 Announcing .NET 2015 미리보기에서: .NET의 새로운 시대:

.NET Core에는 두 가지 주요 구성 요소가 있습니다.여기에는 .NET Framework CLR과 동일한 코드베이스로 구축된 작은 런타임이 포함됩니다..NET Core 런타임에는 동일한 GC 및 JIT(RyuJIT)가 포함되지만 응용 프로그램 도메인 또는 코드 액세스 보안과 같은 기능은 포함되지 않습니다.런타임은 [ASP.NET Core] 패키지의 일부로 NuGet을 통해 제공됩니다.

.NET Core에는 기본 클래스 라이브러리도 포함되어 있습니다.이러한 라이브러리는 대부분 .NET Framework 클래스 라이브러리와 동일한 코드이지만, 더 작은 라이브러리 집합을 제공할 수 있도록 (의존성 제거) 요인으로 지정되었습니다.이러한 라이브러리는 시스템으로 제공됩니다.NuGet.org 의 NuGet 패키지.

그리고:

[ASP.NET Core]는 .NET Core를 채택한 최초의 워크로드입니다.[ASP.NET Core]는 .NET Framework와 .NET Core 모두에서 실행됩니다.[ASP.NET Core]의 주요 가치는 동일한 시스템에서 여러 버전의 [.NET Core]에서 실행될 수 있다는 것입니다.A 웹 사이트와 B 웹 사이트는 동일한 컴퓨터에서 두 개의 다른 버전의 .NET Core에서 실행하거나 동일한 버전을 사용할 수 있습니다.

간단히 말해서, 첫 번째는 애플리케이션과 라이브러리 코드를 실행하는 런타임과 거의 완벽하게 문서화된 표준 클래스 라이브러리로 구성된 마이크로소프트 .NET Framework였습니다.

런타임은 공통 언어 인프라를 구현하는 공통 언어 런타임이며 JIT 컴파일러와 함께 CIL(이전 MSIL) 바이트 코드를 실행합니다.

마이크로소프트의 .NET 사양과 구현은 역사와 목적을 고려할 때 매우 윈도우 및 IIS 중심적이고 "뚱보"였습니다.라이브러리, 네임스페이스 및 유형이 더 적은 변형이 있지만, 웹 또는 데스크톱 개발에 유용하거나 법적 관점에서 이식하는 데 문제가 있는 것은 거의 없습니다.

따라서 Windows가 아닌 컴퓨터에서 실행할 수 있는 Microsoft 버전이 아닌 .NET을 제공하기 위해서는 대안이 개발되어야 했습니다.이를 위해서는 런타임을 포팅해야 할 뿐만 아니라 전체 프레임워크 클래스 라이브러리가 잘 적용되도록 해야 합니다.게다가, 마이크로소프트로부터 완전히 독립하기 위해서는, 가장 일반적으로 사용되는 언어들을 위한 컴파일러가 필요할 것입니다.

Mono는 Windows 이외의 다양한 OS에서 실행되는 런타임의 몇 안 되는 대안 중 하나이며, .NET 4.5 VB 및 C# 컴파일러프레임워크 클래스 라이브러리에서 거의 모든 네임스페이스입니다.

.NET Core: 런타임의 오픈 소스 구현 및 최소 기본 클래스 라이브러리를 입력합니다.모든 추가 기능은 애플리케이션 자체와 함께 특정 런타임, 프레임워크 라이브러리 및 타사 패키지를 배포하는 NuGet 패키지를 통해 제공됩니다.

ASP.NET Core는 .NET Core 런타임뿐만 아니라 .NET Framework에서도 실행되는 새로운 버전의 MVC 및 WebAPI입니다.

Compact Framework 버전으로 시작된 .NET Framework의 하위 집합입니다.실버라이트, 윈도우 스토어, 윈도우 폰으로 발전했습니다.스토리지 기능이 제한된 장치와 빠른 다운로드에 적합한 소규모 배포를 유지하는 데 중점을 두었습니다.또한 Windows가 아닌 플랫폼에서 문제를 제기하는 것이 더 쉬우며, 이것이 오픈 소스 에디션으로 선택된 이유입니다.CLR 및 기본 클래스 라이브러리의 "어려운" 부분과 "비싼" 부분은 생략됩니다.

그렇지 않으면 이러한 프레임워크 버전을 대상으로 할 때 많은 장점이 누락되기 때문에 항상 쉽게 인식할 수 있습니다.런타임에서 지원되는 내용만 표시하는 고유한 참조 어셈블리 집합을 사용하게 됩니다.의 그은당기저장에 됩니다.C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore디렉토리입니다.


업데이트: .NET Core 2.0 릴리스 이후 적절한 통찰력을 제공하는 몇 가지 대표적인 수치를 보았습니다..NET Core 1.0은 원래 13,000개의 API를 지원했으며, .NET Core 2.0은 20,000개의 API를 추가하여 총 32,000개의 API를 제공했으며, 기존 NuGet 패키지의 약 70%를 포팅할 수 있었습니다.Linux 및 MacOS로 이식하기에는 Windows에 너무 많이 결합된 API 집합이 있습니다.최근에 출시된 Windows 호환성 팩의 적용을 받으며, 20,000개의 API를 추가합니다.

는 최근에 제가 짧고 좋은 기사를 발견했습니다..NET Standard, .NET Core 및 .NET Framework 및 이들의 관계를 다룹니다.강력 추천합니다.안타깝게도, 저는 적응하고 여기에 둘 시간이 없습니다.

아래의 원본 답변 내용:


따라서 이 주제에 대한 최근 공식 기사를 바탕으로 다음과 같은 몇 가지 핵심 사항이 있습니다.

.NET Core는 기본적으로 .NET Framework의 포크이며 구현도 팩터링 문제를 중심으로 최적화되어 있습니다.

.NET Core는 .NET Native 또는 ASP.NET 5에만 한정되지 않습니다. BCL과 런타임은 범용이며 모듈식으로 설계되었습니다.따라서 향후 모든 .NET 수직 버전의 기반이 됩니다.

따라서 .NET Native와 ASP.NET 5는 새 프레임워크 구성을 위한 테스트 "주체"일 뿐입니다. 부분적으로 이들이 상당히 다르기 때문일 수 있습니다.

여기에 이미지 설명 입력

그들은 별도의 낮은 수준도 필요하지만 BCL의 주요 부분은 여전히 일반적입니다.

.NET Core는 .NET Native 또는 ASP.NET 5에만 한정되지 않습니다. BCL과 런타임은 범용이며 모듈식으로 설계되었습니다.따라서 향후 모든 .NET 수직 버전의 기반이 됩니다.

즉, 위에 있는 마젠타 직사각형은 새 앱 모델과 함께 대량으로 추가되지만 기본은 일반적으로 유지됩니다.

NuGet 배포:

.NET Framework와 달리 .NET Core 플랫폼은 NuGet 패키지 세트로 제공됩니다.우리는 도서관 생태계의 대부분이 이미 존재하는 곳이기 때문에 NuGet에 정착했습니다.

현재 프레임워크와의 관계:

Visual Studio 2015의 경우 .NET Core가 .NET Framework의 순수 하위 집합인지 확인하는 것이 목표입니다.즉, 기능 차이가 없습니다.Visual Studio 2015가 출시된 후에는 .NET Core가 .NET Framework보다 더 빨리 버전이 출시될 것으로 예상됩니다.즉, .NET Core 기반 플랫폼에서만 기능을 사용할 수 있습니다.

요약:.

.NET Core 플랫폼은 NuGet에서 오픈 소스 개발 및 신속한 변화를 위한 제공에 최적화된 새로운 .NET 스택입니다.우리는 Mono 커뮤니티와 협력하여 Windows, Linux 및 Mac에서 이를 개선하고 있으며, 마이크로소프트는 이를 세 가지 플랫폼 모두에서 지원할 것입니다.

NAT은 .NET Framework가 엔터프라이즈급 개발에 제공하는 가치를 유지하고 있습니다.테스트하고 지원한 NuGet 패키지 집합을 나타내는 .NET Core 배포판을 제공합니다.Visual Studio는 개발을 위한 원스톱 숍으로 남아 있습니다.배포의 일부인 NuGet 패키지를 사용할 경우 인터넷에 연결할 필요가 없습니다.

기본적으로 이는 .NET 4.6의 배포 모델이 변경된 것으로 간주할 수 있으며, 동시에 오픈 소스가 되는 과정에 있습니다.

현재 문서에는 .NET Core가 무엇인지, 사용할 영역 등이 잘 설명되어 있습니다.다음 특성이 .NET Core를 가장 잘 정의합니다.

유연한 배포: 앱에 포함하거나 사용자 또는 컴퓨터 전체에 나란히 설치할 수 있습니다.

크로스 플랫폼: Windows, macOS 및 Linux에서 실행되며 다른 OS로 이식할 수 있습니다.지원되는 운영 체제(OS), CPU 및 애플리케이션 시나리오는 시간이 지남에 따라 마이크로소프트, 다른 회사 및 개인이 제공합니다.

명령줄 도구:모든 제품 시나리오는 명령줄에서 실행할 수 있습니다.

호환성: .NET Core는 .NET 표준 라이브러리를 통해 .NET Framework, Xamarin 및 Mono와 호환됩니다.

오픈 소스:.NET Core 플랫폼은 MIT 및 Apache 2 라이센스를 사용하는 오픈 소스입니다.설명서는 CC-BY로 라이센스가 부여됩니다. .NET Core는 .NET Foundation 프로젝트입니다.

Microsoft에서 지원: .NET Core는 .NET Core Support에 따라 Microsoft에서 지원됩니다.

다음은 .NET Core에 포함된 내용입니다.

.NET 런타임은 형식 시스템, 어셈블리 로드, 가비지 수집기, 기본 상호 운용성 및 기타 기본 서비스를 제공합니다.

기본 데이터 유형, 응용 프로그램 구성 유형 및 기본 유틸리티를 제공하는 프레임워크 라이브러리 세트입니다.

.NET Core SDK에서 사용할 수 있는 기본 개발자 환경을 지원하는 SDK 도구 및 언어 컴파일러 세트입니다.

.NET Core 응용 프로그램을 시작하는 데 사용되는 'dotnet' 응용 프로그램 호스트입니다.런타임을 선택하고 런타임을 호스트하며 어셈블리 로드 정책을 제공하고 앱을 실행합니다.동일한 호스트를 사용하여 거의 동일한 방식으로 SDK 도구를 시작할 수도 있습니다.

.NET Core는 Mono와 유사하지만 Microsoft가 직접 만든 .NET 표준(ECMA 335)의 새로운 크로스 플랫폼 구현입니다.

learn.microsoft.com 을 참조하십시오.

Microsoft는 미래의 웹 오픈 소스 패러다임을 인식하고 다른 운영 체제에 .NET을 개방하기로 결정했습니다. .NET Core는 Mac 및 Linux용 .NET Framework입니다."경량" .NET Framework이므로 일부 기능/라이브러리가 누락되었습니다.

Windows에서는 .NET Framework 및 Visual Studio 2015를 실행할 것입니다. .NET Core는 Node.js, npm, Yeoman, Docker 등과 같은 오픈 소스 세계에 더 친숙합니다.

이전에는 불가능했던 Visual Studio Code + .NET Core를 사용하여 Mac 또는 Linux에서 본격적인 웹 사이트와 RESTful API를 개발할 수 있습니다.따라서 Mac이나 Ubuntu를 좋아하고 .NET 개발자라면 설정해 보십시오.

Mono 대 .NET Core의 경우, Mono는 .NET Framework for Linux로 개발되었으며 현재 마이크로소프트(Xamarin이라는 회사)가 인수하여 모바일 개발에 사용하고 있습니다.결국 Microsoft는 Mono를 .NET Core로 병합/마이그레이션할 수 있습니다.저는 지금 모노에 대해 걱정하지 않을 것입니다.

Microsoft 사이트:

.NET Core는 .NET Core, ASP.NET Core 및 Entity Framework Core를 포함한 여러 기술을 말합니다.

이러한 기술은 CoreCLR 런타임(Universal Windows 플랫폼에서 사용됨)을 사용하여 실행된다는 점에서 네이티브 .NET과 다릅니다.

질문에서 언급했듯이, .NET Core는 오픈 소스일 뿐만 아니라 휴대도 가능합니다 [MacOS, Windows 및 Linux에서 실행됨].

또한 .NET Core의 내부는 응용 프로그램에 필요하지 않는 한 코어 라이브러리와 다른 모듈을 사용하지 않도록 최적화되어 있습니다.

오늘 Visual Studio 2017(Visual Studio 2015에서 최근에 업그레이드됨)에서 새 프로젝트를 생성하려다가 프로젝트 유형에 대한 새로운 선택 사항을 발견했습니다.새것이거나 제가 새 프로젝트를 시작한 지 오래됐거나 둘 중 하나입니다!!:)

Visual Studio 스크린샷

는 이 문서 링크를 발견하고 매우 유용하다는 것을 알게 되어 공유합니다.총알에 대한 자세한 내용은 기사에도 나와 있습니다.나는 단지 여기에 글을 올리는 것뿐입니다.

다음과 같은 경우 서버 응용 프로그램에 .NET Core를 사용해야 합니다.

You have cross-platform needs.
You are targeting microservices.
You are using Docker containers.
You need high performance and scalable systems.
You need side by side of .NET versions by application.

다음과 같은 경우 서버 응용프로그램에 .NET Framework를 사용해야 합니다.

Your application currently uses .NET Framework (recommendation is to extend instead of migrating)
You need to use third-party .NET libraries or NuGet packages not available for .NET Core.
You need to use .NET technologies that are not available for .NET Core.
You need to use a platform that doesn’t support .NET Core.

이 링크는 .NET 용어의 용어집을 제공합니다.

EDIT 10/7/2020 .NET 5.0 - "... 앞으로 한 개의 .NET만 확인하면 Windows, Linux, macOS, iOS, Android, TVOS, watchOS 및 웹 어셈블리 등을 대상으로 사용할 수 있습니다." 2020년 11월에 출시될 예정입니다.

.NET Core는 윈도우즈, 리눅스 및 macOS 운영 체제를 위한 자유 및 오픈 소스 중앙 관리 시스템 소프트웨어 프레임워크입니다..NET Framework의 뒤를 잇는 오픈 소스 크로스 플랫폼입니다.

.NET Core 응용 프로그램은 윈도우즈, 리눅스 및 macOS에서 지원됩니다.간단히 말해 .NET Core는 .NET 프레임워크와 유사하지만 교차 플랫폼입니다. 즉, .NET 응용 프로그램을 Windows, Linux 및 MacOS에서 실행할 수 있습니다. .NET 프레임워크 응용 프로그램은 Windows 시스템에서만 실행할 수 있습니다.따라서 .NET Framework와 .NET Core의 기본적인 차이점은 .NET Core가 교차 플랫폼이고 .NET Framework는 Windows에서만 실행된다는 것입니다.

또한 .NET Core에는 Microsoft의 기본 종속성 주입 기능이 있으므로 종속성 주입에 타사 소프트웨어/DLL 파일을 사용할 필요가 없습니다.

.NET Core는 .NET Framework의 오픈 소스 및 크로스 플랫폼 버전입니다.

.NET Core는 .NET의 오픈 소스 및 크로스 플랫폼 버전입니다.Microsoft 제품은 뛰어난 기능 외에도 일반 사용자, 특히 .NET 기술로 만든 제품의 최종 사용자에게 항상 비쌌습니다.

대부분의 낮은 수준의 고객은 OS로 Linux를 사용하는 것을 선호하며 .NET Core 이전에는 Microsoft 기술을 사용하지 않습니다.하지만 .NET Core를 생산한 후에는 이 문제가 완전히 해결되어 고객의 OS 등을 고려하지 않고 고객을 만족시킬 수 있습니다.

언급URL : https://stackoverflow.com/questions/26908049/what-is-net-core

반응형