= #!wiki
= \cat StudyMaterial
=
= 책의 문구를 그대로 복사하는 것은 저작권에 문제가 있으므로 스스로 이해한 것을 자신의 글로 정리합니다.
=
= 참여자: HuidaeCho, uskusi
=
* =! 닷넷 프레임워크
+
+ TOC
=
= 마이크로소프트사에서 플랫폼 독립적인 개발환경을 제공하기 위해 Common Language Runtime(CLR)과 Base Class Library(BCL)로 구성된 닷넷 프레임워크를 개발했다. 닷넷 자체는 어떤 언어를 지칭하는 것이 아니며, CLR 지원을 위한 Common Language Specification(CLS) 표준을 준수하는 언어라면 닷넷환경에서 사용할 수 있다. C#, VB.NET, J#등이 대표적이며 여기서는 C#에 대해서만 다룬다. 이처럼 다양한 언어를 통해 닷넷 프레임워크에 접근이 가능하기 때문에 언어에 대한 표준(CLS) 뿐만 아니라 자료형에 대한 표준도 중요한 역할을 한다. 자료형을 관리하는 시스템을 Common Type System(CTS)이라고 한다. 이렇게 CLS와 CTS를 준수하는 언어로 작성된 프로그램은 Intermediate Language(IL)로 변환되어 실행파일 형태로 존재하며 사용자가 프로그램을 호출할 경우 Just-in-Time(JIT) 컴파일러에 의해 기계어로 번역되어 CLR 환경에서 실행된다. 정리하면 다음과 같다.
=
= + CLS와 CTS 표준을 준수하며 IL 코드를 생성할 수 있는 언어로 프로그램을 작성한다. 이때 CLR과 BCL에서 제공하는 Application Programming Interface(API)를 이용해서 소스코드를 작성한다.
=
= + 프로그램을 컴파일하면 IL 코드로 변환된 실행파일이 생성된다.
=
= + 실행파일을 실제 실행하게 되면 닷넷 프레임워크에서 제공하는 JIT 컴파일러가 IL 코드를 기계어로 해석해서 CLR 환경에서 실행한다.
= +
=
= 위와 같은 환경에서 Windows용 프로그램(Windows Form) 또는 웹프로그램(ASP.NET)을 작성할 수 있다.
=
= 위의 내용에 덧붙여서 약간 이해하기 쉽게 정리해 보자.
=
= --center DotNetFramework/1184638374.dotnet.gif--
= --center 출처: http://hoonsbara.com ReplaceMe--
=
= 그림은 닷넷 프레임워크이다. 마치 UNIX 에서 C와 어셈블리가 커널을 구성하고 그 위에서 Perl도 돌릴수 있고 PHP도 돌릴수 있고 PHP 상에서 wikiX도 돌릴수 있는 것과 비슷하다.
=
= wikiX에서 wikiX 문법에 맞게 글을 작성해서 저장을 하게 되면 첫번째 wikiX 엔진이 소스를 해석하고 wikiX 자체를 PHP 엔진이 해석하고 또 그렇게 해석된 코드를 C가 이어서 시스템콜로 커널에다 요청을 하는 작업을 반복한다. 커널은 CPU와 메모리가 해낸 계산의 결과값을 가지고 상위 프레임에 거꾸로 결과물 전달, 해석작업 또 상위프레임으로 전달이 반복된다.
=
= 예를 들어서
= - C++, C#, VB... => PHP 공개소스(wikiX나 여타 PHP 상에서 문법을 구현해주는 프로그램들)
= - Common Language Specificatoin => PHP 문법
= - ASP.NET과 Windows Form => C (여기에는 Data and XML과 Base Class Library가 포함된다.)
= - Common Language Runtime => 커널
= -
= 등으로 비유할 수가 있다. 또 ASP.NET이나 Windows Form 안에서도 데이타베이스나 다른 API쪽으로 저런 구조를 포함한다.
+
+ = 토론
=
- --bfold 토론--
= 비유를 옳게 했는지 모르겠지만 저런식으로 이해하면 머리속에 좀 들어오는것 같습니다. 써놓고 보니까 이해가 더 안되는군요; --uskusi
=
= 출처는 밝혔으나 그림을 허락없이 가져와도 되는지 모르겠습니다. -- HuidaeCho
- --efold--
-