Presentation is loading. Please wait.

Presentation is loading. Please wait.

1장 C#의 배경.

Similar presentations


Presentation on theme: "1장 C#의 배경."— Presentation transcript:

1 1장 C#의 배경

2 1.1 닷넷(.NET)

3 1.1.1 닷넷의 의미와 특징 닷넷이란(프로그래머 입장) 닷넷의 특징 C# 모든 것을 포괄하고 있는 이상적인 개발환경
플랫폼 독립성 닷넷 프레임웍만 설치되어 있으면 다양한 플랫폼에 동작 다양한 언어의 지원 개발자는 다양한 언어로 개발, 닷넷에서 하나의 방식으로 동작 MS에서 개발한 언어끼리의 통합(C#, Mananged C++, VB.NET, JScript.NET) 상호 운용성 서로 다른 언어들끼리의 호환성 C# 닷넷을 대표하는 언어 개발 툴 개발 언어 라이브러리 기반 기술 프로그래머 입장에서 닷넷은 이상적인 개발환경이다.

4 1.1.2 닷넷 프레임웍(.NET Framework)
VB.NET C# Managed C++ JScript.NET Common Language Specification 공통 언어 스펙 .NET Framework Visual Studio .NET .NET Library Common Language Runtime 공통언어 런타임 Base Class Library Data and XML Web Services User Interface CLS의 규칙을 따르는 언어로 작성된 애플리케이션은 닷넷 프레임웍에서 동작할 수 있다. .NET 런타임

5 1.1.3 닷넷의 특징 플랫폼 독립성(Plaform Independent) 다양한 언어의 지원
닷넷 프레임웍만 설치되어 있다면 어떠한 운영체제에서도 닷넷 애플리케이션이 동작할 수 있다. 다양한 언어의 지원 CLS(Common Language Specification) 닷넷 프레임웍에서 동작하기 위해서 언어들이 지켜야 하는 표준 스펙 상호 운용성(Interoperability) 서로 다른 언어끼리의 호환성 C#에서의 COM 사용 C#에서의 Win32 API 사용 닷넷 지원 언어들끼리의 호환성

6 1.2 닷넷 언어의 핵심

7 1.2.1 중간언어 CLR이 실행 C# 코드 VB.NET 코드 Managed C++ 코드 C# 컴파일러 VB.NET 컴파일러
Microsoft Intermediate Language CLR이 실행 C# 어셈블리

8 1.2.2 Just In Time Compiler 중간언어(Intermediate Language) 중간언어와 동적 컴파일
기계어로 변환하기 쉬운 상태의 중간 단계의 언어 중간언어와 동적 컴파일 중간언어 C#의 최종 결과물(컴파일한 결과파일) 재컴파일 중간언어는 완벽한 기계어로 컴파일되어야만 실행될 수 있다. JIT(Just In Time Compiler) 중간언어를 동적으로 컴파일하는 컴파일러

9 1.2.3 JIT 컴파일러 운영체제 소스코드 중간언어(IL) JIT 컴파일러 완전한 기계어
JIT 컴파일러의 정확한 이름은 Just-In-Time 컴파일러이다. 소스코드 컴파일 중간언어(IL) 어셈블리 JIT 컴파일러 동적 컴파일러 CLR이 중간언어로 컴파일된 파일을 로딩하면 CLR 내의 JIT 컴파일러가 기계어로 컴파일하게 된다. 이 작업은 동적으로 이루어진다. 동적 컴파일 Common Language Runtime 완전한 기계어 프로그램 실행 운영체제

10 1.2.4 CLR(Common Language Runtime)
.NET에서 프로그램을 로딩하고 동적 컴파일하며 실행해주는 메모리 관리까지 해주는 가상적인 운영 시스템 프로그래머 입장에서는 닷넷 프레임웍 자체를 CLR로 보아도 된다. 닷넷 프레임웍 내에 CLR이 포함되어 있다. CLR의 역할 프로그램 로딩 사용자가 프로그램을 실행하면 CLR이 프로그램을 로딩한다. 동적 컴파일 로딩된 프로그램은 CLR 내의 JIT에 의해서 동적으로 컴파일된다. 실행 동적으로 컴파일된 코드는 동적으로 적재되어 프로그램이 실행된다. 메모리 관리 CLR은 내부의 메모리 관리를 자동으로 하며 Garbage Collector를 운영한다.

11 1.2.5 컴파일과 실행 닷넷의 컴파일과 실행 C#의 어셈블리 어셈블리의 종류 컴파일 실행
중간언어(IL) 형태로 만든다. 실행 IL형태의 언어를 JIT가 재컴파일하여 .NET 환경의 CLR이 실행시킨다. C#의 어셈블리 중간언어 형태의 .exe나 .dll 파일들을 C#에서는 어셈블리(Assembly)라고 한다. 어셈블리의 종류 사설 어셈블리 Copy & Paste 개념의 프로그램 복사해서 사용하면 된다. 공용 어셈블리 레지스터 개념에서 발전된 형태 공용 어셈블리를 등록하는 것은 레지스터와 동일하다. 버전별로 독립적으로 관리하며 복사버젼을 보관한다. CLSID 대신 디지털 서명 방식으로 관리한다.

12 1.3 .NET과 언어

13 1.3.1 .NET과 C# .NET과 C#의 호환 C# 언어의 특징 C#의 라이브러리 .NET을 위해서 새롭게 만들어진 언어
기존 언어들의 장점만을 살려서 만든 언어 C#은 C++의 문법을 표준화하고 정리하고 발전시킨 언어이다. C#에서 C 문법을 사용할 수 있다.(포인터) C#에서 기존의 COM 컴포넌트를 사용할 수 있다. C#의 라이브러리 XML.NET ADO.NET ASP.NET XML Web Services

14 1.3.2 C#과 자바 인터프리터와 컴파일 언어 자바 C# 컴파일 언어는 프로그램을 한꺼번에 기계어로 변환해서 사용한다.
인터프리터 언어는 한줄씩 진행해 나가며 필요한 코드를 기계어로 해석해서 실행하는 방식이다. 자바 자바는 동적 해석 언어이다. 바이트코드를 인터프리터 방식으로 해석해서 실행 C# C#은 동적 컴파일 언어이다. JIT 컴파일러에 의해서 동적으로 중간언어(IL)을 재컴파일해서 실행 비슷한 개념

15 1.3.3 C# 정리 C#의 문법 C#의 특징 C#의 구성 문법적인 면에서 C보다 C++보다 명확하고 발전된 형태
모든 문법은 익숙해지기 전까지는 어렵다. C#의 특징 C#은 프로그래밍 언어이다. 엄청난 라이브러리를 제공하는 프로그래밍 언어이다. 라이브러리라기 보다는 기반 기술을 제공하는 개발환경이다. C#의 구성 기본 유틸 라이브러리 스레드 프로그래밍 네트워크 프로그래밍 XML.NET ADO.NET 웹 폼 프로그래밍 윈도우즈 프로그래밍 .NET Remoting XML Web Services


Download ppt "1장 C#의 배경."

Similar presentations


Ads by Google