Coding Memo

.NET Framework, .NET Core, .NET Standard 본문

Language/C#

.NET Framework, .NET Core, .NET Standard

minttea25 2023. 8. 14. 21:01

공통적으로 Microsoft에서 개발한 프레임워크로, 다양한 종류의 어플리케이션을 개발하고 실행하는 기술을 제공해준다.

 

개발된 순서

.NET Framework -> .NET Core -> .NET (5.0, 6.0, 7.0 ...)

 


.NET Framework

 

주로 Windows에서 실행되는 프로그램을 개발하기 위해 사용되는 프레임 워크이다. 초기에 개발되고 사용되었고 .NET Framework의 한계점과 개선을 위해서 이후에는 .NET Core가 등장하였다.

 

1. Windows Desktop, ASP.NET 웹, Windows 서비스 등의 개발에 활용된다.

2. CLR (Common Language Runtime): Java의 JVM과 비슷한 역할로, .NET Framework의 실행 환경으로, 코드 실행, 메모리 관리 등을 관리한다. CLR은 중간 언어인 CIL (Common Intermediate Language)코드를 어셈블리로 컴파일 하여 실행한다.

3. 기본적인 클래스들을 담고 있는 BCL(Base Class Library)를 지원한다. (System.IO, System.Net.Sockets, System.Collections ...)

4. Window Forms과 WPF (Windows Presentation Foundation)과 같은 GUI 기술 제공한다. (흔히 볼 수 있는 프로그램들의 기본창인 Window Forms으로 만들어져 있다.)

5. ASP.NET(웹 프레임 워크), ADO.NET(데이터베이스 프레임워크) 제공

6. LINQ (Language Integrated Query) 제공

 


.NET Core (.NET)

 

크로스 플랫폼을 지원하는 오픈 소스 플랫폼이다. Windows, macOS, Linux 등의 다양한 운영체제에서 실행 할 수 있다.

.NET Framework가 .NET의 초기 버전이라고 생각하면 된다. 

.NET Framework 이후에 .NET Core가 개발되었고 지금은 .NET 5, .NET 6 로 통합되어 개발되어 오고 있다.

 

1. 오픈 소스이다.

2. NetStandard를 준수 (아래 참조) => 다양한 플랫폼의 호환성 제공

3. BCL (Base Class Library) 지원

4. Entity Framework Core: 데이터 베이스 연결과 ORM(Object-Relational Mapping)을 위한 프레임 워크 제공

5. ASP.NET Core


.NET Standard

 

.NET 환경에서 공유할 수 있는 코드에 대한 API 표준을 정의하는 스펙이다.

다양한 플렛폼 간에, 그리고 다양한 .NET 버전 간에 호환성을 유지하면서 코드 및 라이브 러리를 공유할 수 있도록 해준다.

이를 통해 .NET Framework, .NET Core, Xamarin등의 다양한 .NET 플랫폼에서 동일한 라이브러리를 사용할 수 있다.

 

즉, .NET Standard로 작성된 라이브러리를 다양한 .NET 환경에서 사용될 수 있다.

현재 .NET Standard 2.1까지 나와 있으며, 호환되는 다른 .NET 환경은 다음 페이지에서 확인 할 수 있다.

https://learn.microsoft.com/ko-kr/dotnet/standard/net-standard?tabs=net-standard-2-1 

 

.NET Standard

.NET Standard, 해당 버전 및 .NET Standard를 지원하는 .NET 구현에 대해 알아봅니다.

learn.microsoft.com

 

추가적으로, Visual Studio에서 NuGet 패키지로 제공되는 라이브러리는 .NET Standard를 지원한다.

 

Note: Unity도 기본적으로는 다양한 플랫폼에서 돌아가야 하기 때문에 .NET Standard를 사용하고 있다!


Summary

 

.NET Framework가 가장 먼저 개발되었고, 이후에 .NET Framework의 한계와 단점 때문에 .NET Core가 나왔으며, .NET Core는 이후에 통합된 .NET으로 진화했다.

 

또한 .NET Standard라는 .NET 환경에서의 표준 API 스펙이 나와서, 구 버전인 .NET Framework 뿐만 아니라 .NET Core, .NET 5.0, .NET 6.0 등의 환경 및 다양한 플랫폼에서도 작동할 수 있도록 발전되어 왔다.

 

'Language > C#' 카테고리의 다른 글

에코 서버 (TcpClient, async/await 이용)  (0) 2023.11.09
[C#] .NET 환경에서 지원하는 C# 버전  (0) 2023.08.14
[C#][Serilog] Serilog 멀티스레드  (0) 2023.08.11
lock, spinlock  (0) 2023.08.08
[C#] lock (Monitor)  (0) 2023.08.08