본문 바로가기
프로그래밍/C# (WinForms)

.NET Framework, .NET, Windows Forms 란

by eteo 2023. 2. 3.

 

 

.NET 이란?

.NET은 Linux, macOS, Windows, iOS, Android 등을 다양한 유형의 애플리케이션을 구축하기 위해 Microsoft에서 만든 오픈 소스 개발자 플랫폼이다. .NET Framework와 달리 Windows 프로그램 개발에 한정되지 않고 크로스 플랫폼 개발을 지원한다.

 

 

 

 

 

.NET Framework 란?

.NET Framework는 Windows에서 애플리케이션을 빌드하고 실행하기 위한 소프트웨어 개발 프레임워크이다.

 

 

 

❗ .NET Framework의 릴리즈 중단과 .NET으로의 통합

.NET Framework는 4.8이 마지막 버전이며 더이상의 릴리즈는 없다. 이미 .NET Framework 4.x 일부 버전은 지원이 중단된 상태이다.

이후 .NET Framework는 원래부터 오픈소스이며 크로스 플랫폼을 지원했던 .NET Core와 합쳐져서 .NET으로 통합되었으며 통합 이후 첫 .NET 버전은 5.0부터 시작한다.

 

https://www.namutech.co.kr/

 

 

 

 

.NET 프레임워크의 아키텍처

.NET Framework의 두 가지 주요 구성 요소는 공용 언어 런타임(CLR)과 .NET Framework 기본 클래스 라이브러리(BCL)이다.

  • 공용 언어 런타임(CLR)은 실행 중인 애플리케이션을 처리하는 실행 엔진으로서 스레드 관리, 가비지 수집, 형식 안전성, 예외 처리 등의 서비스를 제공한다.
  • 클래스 라이브러리(BCL)는 일반적인 기능을 위한 API 및 형식 집합을 제공한다. 문자열, 날짜, 숫자 등에 대한 형식 뿐만아니라, 파일 읽기 및 쓰기, 데이터베이스에 연결, 그리기 등을 위한 API가 포함되어 있다.

 

 

.NET 애플리케이션은 C#, F# 또는 Visual Basic 프로그래밍 언어로 작성될 수 있다. 코드는 언어에 관계없이 CIL( Common Intermediate Language ,공용 중간 언어)로 컴파일 되고, 컴파일된 코드는 .dll 또는 .exe 파일 확장명으로 어셈블리 파일에 저장된다.

앱이 실행될 때 CLR은 어셈블리(CIL)를 가져와 JIT(Just-In-Time Compiler)를 사용하여 앱이 실행 중인 컴퓨터의 특정 아키텍처에서 실행할 수 있는 기계어로 변환한다.

 

 

 

 

 

Windows 앱 실행에 .NET Framework가 필요한 이유

.NET Framework를 사용하여 만든 Windows에서 애플리케이션을 실행하려면 사용자 PC에 .NET Framework를 설치되어 있어야 한다. .NET Framework는 이미 여러 버전의 Windows에 포함되어 있지만, 요청 메시지가 표시되는 경우 다운로드 및 설치하면 된다.

 

 

 

 

 

.NET과 .NET Framework의 차이점

.NET 및 .NET Framework는 많은 동일한 구성 요소를 공유하며 둘 간에 코드를 공유할 수 있다. 차이점은 다음과 같다.

  • .NET은 크로스 플랫폼이며 Linux, macOS 및 Windows에서 실행된다 .NET Framework는 Windows에서만 실행된다.
  • .NET은 오픈 소스이며 커뮤니티의 기여를 받는다. .NET Framework 소스 코드를 사용할 수 있지만 직접적인 기여는 하지 않는다.
  • .NET Framework는 Windows에 포함되어 있으며 Windows Update에 의해 시스템 전체에 자동으로 업데이트된다. .NET은 독립적으로 제공된다. (.NET으로 개발한 프로그램은 해당 버전 닷넷 플랫폼이 포함된 패키지로 배포하면 사용자 PC에서 .NET Framework 설치 없이도 프로그램을 실행할 수 있다.)

 

 

여러 .NET Framework를 설치가능한가

.NET Framework의 일부 버전은 나란히 설치되지만 다른 버전은 기존 버전을 업그레이드한다. 기존 버전을 업그레이드 하는 경우는 두 .NET Framework 버전이 동일한 CLR 버전을 공유할 때 발생한다.

 

예를 들어 .NET Framework 4.7.2 및 3.5가 설치된 시스템에 .NET Framework 4.8을 설치하면 4.7.2 설치의 전체 업데이트가 수행되고 3.5는 별도로 설치된 상태로 유지된다.

.NET Framework 버전 CLR 버전
.NET Framework 4.x 4.0
.NET Framework 2.x and 3.x 2.0
.NET Framework 1.1 1.1
.NET Framework 1.0 1.0

 

어떤 버전의 .NET Framework를 사용해야 할까?

 

.NET으로 넘어가지 않고 .NET Framework를 사용한다면 대부분의 경우 최신 안정 릴리스를 사용해야 한다. 

예를들면 .NET Framework의 4.x 버전으로 만든 애플리케이션은 .NET Framework 4.8.1 에서 실행되고, 이전 버전(예: .NET Framework 3.5)용으로 만든 응용 프로그램을 실행하려면 해당 버전을 설치해야 한다. 

 

전체 목록 링크 : https://dotnet.microsoft.com/ko-kr/download/dotnet-framework

 

 

 

.NET Framework 의 윈도우 데스크탑 앱개발을 위한 옵션

  • WinForms(Windows Forms)
  • WPF(Windows Presentation Foundation)

 

Windows Forms란?

Windows용 데스크톱 클라이언트 앱을 만드는 UI 프레임워크이다. Windows Forms 개발 플랫폼은 컨트롤, 그래픽, 데이터 바인딩, 사용자 입력을 포함하여 다양한 앱 개발 기능 세트를 지원하고, 앱을 쉽게 만들 수 있는 Visual Studio의 끌어서 놓기 배치 기능이 있는 비주얼 디자이너를 제공한다.

Windows Forms 앱은 앱이 실행되고 있는 컴퓨터의 로컬 하드웨어 및 파일 시스템에 액세스할 수 있다.

 

 

WPF란?

WPF(Windows Presentation Foundation)를 사용하면 시각적으로 뛰어난 사용자 환경을 통해 Windows용 데스크톱 클라이언트 애플리케이션을 만들 수 있다. WPF의 핵심은 최신 그래픽 하드웨어를 활용하도록 작성된 해상도 독립적인 벡터 기반 렌더링 엔진이다. WPF는 XAML(Extensible Application Markup Language), 컨트롤, 데이터 바인딩, 레이아웃, 2D 및 3D 그래픽, 애니메이션, 스타일, 템플릿, 문서, 미디어, 텍스트 및 입력 체계를 포함하는 포괄적인 애플리케이션 개발 기능을 사용하여 핵심을 확장한다. WPF는 .NET의 일부이므로, .NET API의 다른 요소를 통합하는 애플리케이션을 빌드할 수 있다.

 

 

Reference : 

https://dotnet.microsoft.com/ko-kr/learn/dotnet/what-is-dotnet-framework