개요
C#, .NET Framework, .NET Core 간단하게 개념 정리하기 |
내용
C#(씨샵)
- C#은 Microsoft가 2000년에 .NET(닷넷) 프로젝트와 함께 발표한 객체 지향 프로그래밍 언어이다.
- C++, Java의 문법과 비슷한 문법을 가지고 있다.
.NET Framework(닷넷 프레임워크)
- FCL(Framework Class Library, 프레임워크 클래스 라이브러리) 클래스: .NET Framework를 대상으로 하는 모든 언어가 사용할 수 있는 클래스들의 라이브러리
- CLR(Common Language Runtime, 공용 언어 런타임) 클래스: 공통 언어 런타임 클래스로 알려져 있는데 이 클래스는 언어 외에도 보안, 메모리 관리, 기타 핸들링 역할을 제공하는 가상머신이기도 하다.
- FCL과 CLR이 합쳐진 것이 .NET Framework이다
- WPF, Windows Form 등 Windows OS에서 사용되는 프로그램 개발 생산성이 뛰어나다.
- Windows OS에 종속적
.NET Core(닷넷 코어)
- .Net Core는 .Net Framework의 약점이었던 크로스 플랫폼을 지원(리눅스, OS X, 윈도우 모든 환경을 지원)
- .Net Core는 클라우드 사용과 인터넷 연결 앱을 만들기 위한 플랫폼 간 고성능 오픈 소스 프레임워크. 오픈 소스라는 점이 특이하며, 클라우드 , IoT 등 다양한 환경에서 동작하기 위해 MS에서 출시한 Next 프로젝트라고 보시면 됩니다.
ASP.NET Core | ASP.NET 4.x |
Windows, macOS 또는 Linux용 빌드 | Windows용 빌드 |
Razor Pages는 ASP.NET Core 2.x에서 웹 UI를 만드는 좋은 방법입니다. MVC, Web API 및 SignalR도 참조하세요. | Web Forms, SignalR, MVC, 웹 API, 웹후크 또는 웹 페이지 사용 |
컴퓨터당 여러 버전 | 컴퓨터당 하나의 버전 |
C# 또는 F#을 사용하여 Visual Studio, Mac용 Visual Studio, 또는 Visual Studio Code에서 개방 | C#, VB 또는 F#을 사용하여 Visual Studio에서 개발 |
ASP.NET 4.x보다 고성능 | 성능 양호 |
Use .NET Core 런타임 | .NET Framework 런타임 사용 |
빌드
C#은 컴파일을 하면 CLI 사양을 준수하는 중간 언어(Intermediate Language)*로 컴파일 된다. 그리고 이러한 IL 코드와 프로그램에 사용되는 리소스가 함께 패키징 되어 어셈블리(Assembly)가 된다.** 어셈블리는 서로 함께 사용되어 논리적 기능 단위를 형성하도록 빌드되는 타입 및 리소스의 컬렉션을 의미한다. 어셈블리는 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll)의 형태를 가지며, .NET 기반 애플리케이션에 대한 배포, 버전 제어, 재사용, 활성화 범위 및 보안 권한의 기본 단위를 형성한다.
*자바의 바이트 코드(Byte Code)를 생각하면 된다.
**C/C++를 컴파일하면 생성되는 어셈블리 언어와는 다른 개념이다. 혼동하지 않도록 주의하자.
C# 프로그램을 실행하면 어셈블리가 CLR에 로드 되는데, CLR은 IL 코드를 플랫폼에 따라 JIT(Just-In-Time)* 컴파일 혹은 AOT(Ahead-Of-Time)** 컴파일을 수행하여 네이티브 명령어로 변환한다.
*프로그램 실행 중에 그때그때 컴파일을 하는 것이다.
**프로그램 실행 전 미리 컴파일을 진행하는 것이다.
내용출처:
https://haedallog.tistory.com/186
'C# > 기초' 카테고리의 다른 글
1. C# 기본 문법 정리 (0) | 2022.06.16 |
---|