|
## 1. .Net Framework
|
|
# 1. .Net Framework
|
|
닷넷 프레임워크는 2002년 마이크로소프트에서 발표한 응용 프로그램 개발 환경으로서 프로세스 가상 머신에 속한다.
|
|
닷넷 프레임워크는 2002년 마이크로소프트에서 발표한 응용 프로그램 개발 환경으로서 프로세스 가상 머신에 속한다.
|
|
|
|
|
|
닷넷 프레임워크를 기반으로 만들어진 응용 프로그램들은 반드시 닷넷 프레임워크가 설치된 환경에서만 실행할 수 있다.
|
|
닷넷 프레임워크를 기반으로 만들어진 응용 프로그램들은 반드시 닷넷 프레임워크가 설치된 환경에서만 실행할 수 있다.
|
|
|
|
|
|

|
|

|
|
|
|
|
|
## 2. CLR
|
|
# 2. CLR
|
|
***공용 언어 런타임(Common Language Runtime)***은 CLI 사양을 따르는 가장 대표적인 VM으로서 마이크로소프트가 개발하였다.
|
|
***공용 언어 런타임(Common Language Runtime)***은 CLI 사양을 따르는 가장 대표적인 VM으로서 마이크로소프트가 개발하였다.
|
|
CLR은 IL을 JIT 컴파일러를 이용해 기계어로 변환하고, ***가비지 콜렉터(Garbage Collector)***를 제공해 동적 메모리 할당 및 회수를 지원한다.
|
|
CLR은 IL을 JIT 컴파일러를 이용해 기계어로 변환하고, ***가비지 콜렉터(Garbage Collector)***를 제공해 동적 메모리 할당 및 회수를 지원한다.
|
|
|
|
|
|
## 3. CTS
|
|
# 3. CTS
|
|
***공용 타입 시스템(Common Type System)***은 닷넷 호환 언어가 지켜야 할 타입의 표준 규격을 정의한 것이다.
|
|
***공용 타입 시스템(Common Type System)***은 닷넷 호환 언어가 지켜야 할 타입의 표준 규격을 정의한 것이다.
|
|
CTS는 런타임에 형식을 선언하고 사용 및 관리하는 방법을 정의하고 있다.
|
|
CTS는 런타임에 형식을 선언하고 사용 및 관리하는 방법을 정의하고 있다.
|
|
|
|
|
|
* 닷넷 호환 언어 : IL(CIL 또는 MSIL)코드로 컴파일 가능한 언어.
|
|
* 닷넷 호환 언어 : IL(CIL 또는 MSIL)코드로 컴파일 가능한 언어.
|
|
|
|
|
|
## 4. 어셈블리
|
|
# 4. 어셈블리
|
|
C#으로 프로그램을 하는 경우, 대게 EXE 또는 DLL 파일을 만들게 된다.
|
|
C#으로 프로그램을 하는 경우, 대게 EXE 또는 DLL 파일을 만들게 된다.
|
|
닷넷에서는 이런 실행파일을 ***어셈블리(Assembly)***라고 한다.
|
|
닷넷에서는 이런 실행파일을 ***어셈블리(Assembly)***라고 한다.
|
|
|
|
|
|
## 5. Managed, Unmanaged
|
|
# 5. Managed, Unmanaged
|
|
***Managed 코드*** 는 닷넷 프레임워크 환경에서 개발된 코드를 지칭한다.
|
|
***Managed 코드*** 는 닷넷 프레임워크 환경에서 개발된 코드를 지칭한다.
|
|
|
|
|
|
닷넷 프레임워크의 핵심인 CLR은 어셈블리가 실행되는 동안 형식 안전성, 메모리 관리, 쓰레드 실행 및 코드 실행 관리 및 시스템 서비스를 하는데 닷넷 프레임워크 환경에서 개발된 코드는 모두 CLR 기반으로 동작하기 때문에, CLR에 의해서 ***관리되는(Managed) 코드***라고 한다.
|
|
닷넷 프레임워크의 핵심인 CLR은 어셈블리가 실행되는 동안 형식 안전성, 메모리 관리, 쓰레드 실행 및 코드 실행 관리 및 시스템 서비스를 하는데 닷넷 프레임워크 환경에서 개발된 코드는 모두 CLR 기반으로 동작하기 때문에, CLR에 의해서 ***관리되는(Managed) 코드***라고 한다.
|
|
|
|
|
|
***Unmanaged 코드***는 닷넷이 발표되기 이전의 코드와 Unmanaged Code로 컴파일된 코드를 지칭한다.
|
|
***Unmanaged 코드***는 닷넷이 발표되기 이전의 코드와 Unmanaged Code로 컴파일된 코드를 지칭한다.
|
|
|
|
|
|
IL과 같은 중간언어가 없고, 실행파일(어셈블리)의 메타데이터에 CLR 헤더가 없다.
|
|
IL과 같은 중간언어가 없고, 실행파일(어셈블리)의 메타데이터에 CLR 헤더가 없다.
|
|
CLR에 의해서 관리되지 않는 코드라서 ***비관리(Unmanaged) 코드***라고 한다
|
|
CLR에 의해서 관리되지 않는 코드라서 ***비관리(Unmanaged) 코드***라고 한다.
|
|
|
|
|
|
## 6. C#, .NET Framework, Visual studio
|
|
# 6. C#, .NET Framework, Visual studio
|
|
|
|
|
|

|
|

|
|
|
|
|
... | | ... | |