본문 바로가기

   
Programming/C#

Framework, CLR, MSIL, Managed Code, Base Class Library

반응형



  ★닷넷 프레임워크(.NET Framework)
 - 기존의 운영체제안에 독립적인 또 하나의 환경을 제공
 - 프레임워크는 OS에 종속적, 닷넷 프로그램은 프레임워크에 종속적 이지만 OS와는 독립적
 - 버전 : 1.0, 1.1, 2.0, 3.0, 3.5, 4.0(버전업되면서 문법만 추가됨)
 - 버전간의 호환성 보장 안됨(1.0버젼 작성된 코딩, 4.0버젼에서 돌리면 호환이 완벽히 되지 않는다. )
 - 프로그램이 완성된 후 작동하기 위한 최소한의 환경
 - XP : .NET Framework 2.0
 - Windows 7 : .NET Framework 3.5

★닷넷 프레임워크 SDK(개발킷)                                                
 - 개발 환경
 - 닷넷 환경하에 작동되는 프로그램을 만들기 위한 것들을 제공하는 패키지 또는 환경
 - 버전별로 제공 

★CLR(Common Language Runtime)
 - 공용 언어 런타임
 - 프레임워크내의 구성요소이며 가장 핵심적인 역활을 담당
 - 프로그램이 동작하는데 필요한 모든 것들의 지원, 관리
 - 자바의 VM과 유사
 
★ MSIL(Microsoft Intermediate Language)
 - 중간언어
 - 닷넷 컴파일러에 의해서 생성되는 코드
 - 닷넷 컴파일 : 2단계 컴파일 과정
   - 1차 컴파일 : IL Code 생성(JIT 컴파일러 담당)
   - 2차 컴파일 : Machine Code 생성(JIT 컴파일러 담당)

 - 1차 컴파일 결과물 : *.exe:시작점이 있는Main함수가 있는, *.dll:메인함수가 없는 실행파일 (컴파일러후 물리적으로 저장되는것)
 - 1차 컴파일은 한번일어나고 2차 컴파일러는 몇번 일어날지 모른다.

Console.WriteLine("test") <- *.cs : source -> 컴파일 -> *.exe, *.dll
작동주체=CPU 컴퓨터가 알아들을수 있는 언어 1,0 전기적 신호 ON, OFF
컴퓨터가 알아 들을수 있는 이유? 중간에 특정 프로그램이 번역작업을 거친다. 미리 약속된 규칙에 따라 CPU가 알아 들을수 있는 언어로 해석해 준다. C#컴파일러 소스코드->프레임워크에 맞는 전문 컴파일러 중간언어(기계어번역)->CPU 
Console.WriteLine("test");->C# Comfiler(IL중간언어)1차->CLR이 확인후 어떤것을 컴파일러해야하는지 본다.->컴파일러를 한번 더한다(1010110)2차->exe/dll(1010110 )더블클릭->cpu에의해 실행

C# IL(중간언어) VB IL(중간언어) 각언어별로 IL이라는 중간언어가 있기 때문에 서로다른 언어여도 호환이 가능하다.

★ 관리되는 코드(Managed Code)
 - 닷넷 언어로 개발된 코드를 컴파일러에 의해 생성된 결과물
 - CLR의 지원을 받는 코드(프레임워크와 종속되어 작동하는..)
 - C#, VB.NET, VC++.NET, F#, J#(JAVA)

★ 관리되지 않는 코드(Unmaged Code) C, Java, C++ 
 - 닷넷 언어가 아닌 언어들의 결과물
 - CLR의 지원을 받지 않는코드(프레임워크와 상관없이 작동하는...)
 - Win32 API(C함수모음) C#->C언어->Win32API

★★기본 클래스 라이브러리(Base Class Library)
 - 닷넷을 지원하는 언어가 공통으로 사용하는 기본 클래스 라이브러리
 - 언어간의 우열이 없음

★ CLS(Common Language Specification)
 - 닷넷용 프로그래밍 언어들이 가져야 하는 공통 언어 규약
 - CLS를 만족해야 Managed Code로서 자격이 있음

★ CTS(Common Type System)
 - 닷넷 프레임워크에서 사용되는 데이터 형식
 - 모든 언어는 CTS 형태의 데이터형식을 사용

  가비지 컬렉션(Garbage Collection)
 - 닷넷 프레임워크에서 메모리 관리
 - 가비지 컬렉터(CLR 일부 프로그램)
 - 메모리 힙에서 더 이상 사용되지 않는 객체 제거
 - 메모리 누수 현상 방지

Visual Studio
 - IDE(Intergrated Development Enviroment)
 - 통합 개발 환경
 -         프로그램                 프레임워크
   Visual Studio.NET                 1.0
   Visual Studio.NET 2003          1.1 
   Visual Studio.NET 2005          2.0 
   Visual Studio.NET 2008          3.0 
   Visual Studio.NET 2008 sp1    3.5 
   Visual Studio.NET 2010          4.0(3.5, 3.0, 2.0 지원을 한다.)

C# 컴파일러
 - 경로 :  ;C:\WINDOWS\Microsoft.NET\Framework\v3.5 path편집후 추가하도록 한다.
 - 실행 : 시작 -> 실행 -> cmd
 - Path 설정 : 내컴퓨터 - 속성 - 고급 - 환경변수 - Path값에 C#컴파일러의 위치를 추가
   윈도우 자체는 path를 설정하게되면 어느 위치 에서든 접근 가능 하도록 만들어 준다.
 - cmd창에서 path 명령

 

 
반응형