C#, .NET Framework 기본 정리
C# 특징
- C++ 언어 기반 + Java 장점을 합쳐 탄생된 언어
- 사용범위: XML, Web, Network, 데이터베이스 ···
- 보통 포인터를 사용하지 않음
- Garbage Collector
C# 실행 과정ㄴ
1~2. C# 코드 작성
- C# 컴파일러(csc.exe)가 컴파일 수행. VB.NET으로 작성했다면 vbc.exe라는 컴파일러가 동작. 즉 언어별 컴파일러가 따로 존재
- 컴파일의 결과물로 exe 또는 dll의 파일이 나왔는데, .NET에서는 이를 Assembly라고 부른다.
- 닷넷 어셈블리의 가장 큰 특징중 하나는 프로그램 코드 이외에 자기자신을 설명하는 메타데이터 정보가 포함되어 있다.
- exe 확장자라고해서 바로 실행할 수 있는 결과물은 아니다
- MSIL(Microsoft Intermediate Language)
- 컴퓨터가 해석 가능한 원시 코드(Native Code)가 되기 전 중간 단계의 언어(Java의 ByteCode)
- exe or dll 파일에는 소스코드 내의 클래스를 설명하는 메타데이터와 매니페스트 정보가 포함됨
- MSIL(=IL)코드를 실행하고자 함. 이전까지는 컴파일 환경이었음.
- CLR영역(.NET Framework). 실행을 위해 IL코드가 CLR로 호스트될 때, 제일 처음 CLR 내부의 Class Loder에 의해 어셈블리 내 클래스들의 레이아웃 로드와 메타데이터 및 사용된 클래스 라이브러리 등을 로드하여 각종 과정(Type Check, Marshalling)을 거친 뒤 메모리에 로드됨.
- JIT(Just-In-Time, jitter) 컴파일러는 메모리에 올라간 어셈블리를 컴퓨터가 이해할 수 있도록 원시코드(Native Code)로 변환해줌.
- 7의 과정을 통해 탄생한 원시코드(Native Code)
- JIT컴파일러에 의해 컴파일된 원시코드는 다음의 실행을 위해 메모리에 캐시됨. 동일한 어셈블리가 다시 실행될때까지 지금의 과정을 생략함으로써 실행속도 향상. 다음번의 실행시는 9번부터 실행됨.
- 실행
- 요약
- C#언어 → 컴파일 → MSIL → CLR → 실행
.NET Framework 정의
- “.NET Framework는 마이크로소프트 Windows운영체제 제품군의 중요한 새 구성요소로써 보다 쉽게 시스템을 구축 및 배포하고 다른 네트워크 연결 시스템과 통합할 수 있는 차세대 Windows 기반 응용 프로그램의 기초입니다”
donate.html