net 프레임워크 개요

32
.NET 프프프프프 프프

Upload: nguyet

Post on 21-Mar-2016

186 views

Category:

Documents


5 download

DESCRIPTION

.NET 프레임워크 개요. 목차. 닷넷의 의미와 특징 닷넷 프레임웍 (.NET Framework) 닷넷의 특징 닷넷 언어의 핵심 중간언어 Just In Time Compiler CLR(Common Language Runtime) 컴파일과 실행 . NET 과 언어 .NET 과 C# C# 과 자바 C#. 프로그래밍 이란? 프로그래밍 언어란 ?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NET  프레임워크 개요

.NET 프레임워크 개요

Page 2: NET  프레임워크 개요

C#

.NET 프레임워크 개요

2 / 32

목차• 닷넷의 의미와 특징

• 닷넷 프레임웍 (.NET Framework)

• 닷넷의 특징

• 닷넷 언어의 핵심

▫ 중간언어

▫ Just In Time Compiler

▫ CLR(Common Language Runtime)

▫ 컴파일과 실행

• .NET 과 언어

▫ .NET 과 C#

▫ C# 과 자바

▫ C#

Page 3: NET  프레임워크 개요

C#

.NET 프레임워크 개요

3 / 32

프로그래밍 이란 ?

프로그래밍 언어란 ?

프로그래밍이란 컴퓨터를 이용하여 어떠한 계산이나 출력 등의 목적에 맞게 프로그램을

설계하고 만드는 과정을 의미한다 . 즉 , 필요한 프로그램을 만드는 과정을 프로그래밍이라

한다 .

프로그램을 만들고 정상적으로 실행하기 위하여 , 프로그램이 실제 실행되는 컴퓨터와

이러한 프로그램을 만드는 프로그래머와의 의사소통 도구를 프로그래밍 언어라 할 수 있다 .

Page 4: NET  프레임워크 개요

C#

.NET 프레임워크 개요

4 / 32

프로그래밍 언어의 역사

오늘날의 C# 언어에 이르기까지 사용했던 프로그래밍 언어

Page 5: NET  프레임워크 개요

C#

.NET 프레임워크 개요

5 / 32

함수중심적 언어와 객체지향적 언어의 비교

함수중심적 언어 객체지향적 언어

BASIC,FORTRAN,PASCAL,C SMALLTALK,C++,JAVA

함수를 중심으로 이루어져 있음 데이터가 중심으로 이루어져 있음

자료는 인자를 전달받아 처리함 함수는 데이터와 같이 존재할 때 의미 있음

Page 6: NET  프레임워크 개요

C#

.NET 프레임워크 개요

6 / 32

닷넷 (.NET) 이란 ? 마이크로소프트에서 2000 년 7 월 새롭게 발표한 닷넷 (.NET) 은 지금까지 존재했던

마이크로소프트의 모든 S/W 기술을 총망라하고 다른 언어들의 장점을 접목한 새로운 기술

닷넷의 구성

Visual Studio .NET : C# 등의 닷넷 언어를 만들기 위한 도구

닷넷 프레임워크 : 닷넷을 사용할 수 있는 환경을 제공

윈도우 서버 시스템 : 닷넷을 이용한 윈도우 프로그램 개발이나 웹사이트

구축시 필요한 윈도우 요소를 지원

닷넷 빌딩 블록 서비스 : 닷넷의 문제해결을 위해 설계된 시스템

Page 7: NET  프레임워크 개요

C#

.NET 프레임워크 개요

7 / 32

닷넷 프레임워크의 개요

닷넷프레임워크는 크게 두 가지로 나눌 수 있는데 , 프로그램을 개발을 할 때 필요한

서비스들의 집합과 프로그램 실행환경으로 구성된다 .

Page 8: NET  프레임워크 개요

C#

.NET 프레임워크 개요

8 / 32

닷넷 프레임워크의 구성 요소

BCL : 클래스 라이브러리 중 가장 핵심적인 기능을 하는 클래스의 모음

ADO.NET : 데이터베이스를 사용할 때 지원하는 클래스

윈도우 UI : 닷넷 언어로 윈도우 프로그램을 만들 때 지원하는 클래스

ASP.NET : 닷넷 언어로 웹 프로그래밍을 할 때 지원하는 클래스

Page 9: NET  프레임워크 개요

C#

.NET 프레임워크 개요

9 / 32

CLR(Common Language Runtime)

CLR 의 주요 기능은 JIT(Just-in-Time) 컴파일러를 통해 MSIL 코드를 네이티브 코드 (

실행가능 코드 ) 로 변환한다

Page 10: NET  프레임워크 개요

C#

.NET 프레임워크 개요

10 / 32

CLR 의 역할

CLR 은 닷넷언어로 만들어진 코드를 읽고 해석하여

실행하는 일종의 가상머신 (Virtual Machine) 이다 . Visual Basic .NET, C# 등과 같은 닷넷 언어는 윈도우

운영체제의 네이티브 코드 (native code) 로

컴파일되지 않고 , 마이크로소프트 중간 언어 (MSIL, MicroSoft Intermediate Language) 로

컴파일된다 .

따라서 닷넷 애플리케이션은 윈도우에서 바로 실행할

수 없는데 , 닷넷 프레임워크의 CRL 에 있는 JIT(Just In Time) 컴파일러가 MSIL 코드를 네이티브 코드로

변환해 실행 가능하게 해준다 .

Page 11: NET  프레임워크 개요

C#

.NET 프레임워크 개요

11 / 32

BCL(Base Class Library)

BCL 은 기존 마이크로소프트의 다양한 개발 라이브러리를 닷넷에서 사용할 수 있게 통합해

놓은 , 닷넷 언어를 위한 기본적인 클래스 라이브러리의 모음을 말한다

Page 12: NET  프레임워크 개요

C#

.NET 프레임워크 개요

12 / 32

ADO.NET & XML

ADO.NET 은 닷넷 프레임워크의 일부로 System.Data 네임스페이스와 하위

네임스페이스에서 제공하는 데이터 접근 기술로 이루어짐

System.Data 네임스페이스는 ADO.NET 객체 모델을 구성하는 클래스로 이루어져 있다 .

System.Xml 네임스페이스는 W3C 호환 XML 파서와 XML 작성기 (XMLWriter), 그리고

XSLT 와 XPath 등 많은 XML 관련 기술을 위한 클래스로 이루어져 있다 .

Page 13: NET  프레임워크 개요

C#

.NET 프레임워크 개요

13 / 32

윈도우 UI

윈도우 폼 생성에 관련된 클래스는 System.Windows.Forms 네임스페이스에 포함되어

있으며 , 윈도우 폼 유형은 크게 표준 윈도우 , MDI 윈도우 , 대화상자로 나눌 수 있다

Page 14: NET  프레임워크 개요

C#

.NET 프레임워크 개요

14 / 32

ASP.NET

ASP.NET 은 강력한 웹 애플리케이션을 개발하기 위한 프로그래밍 프레임워크

ASP.NET 웹 폼 (Web Forms) 은 쉬우면서도 강력한 방법으로 웹 사용자 인터페이스 (Web

UI) 페이지를 생성할 수 있도록 한다

Page 15: NET  프레임워크 개요

C#

.NET 프레임워크 개요

15 / 32

C# 이란 ? C# 은 기존 언어 중에 가장 막강한 기능을 자랑하는 C++ 을 기반으로 , JAVA 의 장점을

혼합하고 , 닷넷이라는 새로운 개념을 도입하여 만들어진 언어

C# 은 C++ 처럼 강력하고 , JAVA 처럼 유연하다 .

Page 16: NET  프레임워크 개요

C#

.NET 프레임워크 개요

16 / 32

다시 리뷰 - 다른 책에서 정리 한 것

Page 17: NET  프레임워크 개요

C#

.NET 프레임워크 개요

17 / 32

닷넷의 의미와 특징

▣ 닷넷이란 ( 프로그래머 입장 )◈ 모든 것을 포괄하고 있는 이상적인 개발환경

▣ 닷넷의 특징◈ 플랫폼 독립성

– 닷넷 프레임웍만 설치되어 있으면 다양한 플랫폼에 동작◈ 다양한 언어의 지원

– 개발자는 다양한 언어로 개발 , 닷넷에서 하나의 방식으로 동작– MS 에서 개발한 언어끼리의 통합 (C#, Mananged C++, VB.NET, JScrip-

t.NET)◈ 상호 운용성

– 서로 다른 언어들끼리의 호환성

▣ C#◈ 닷넷을 대표하는 언어

프로그래머 입장에서 닷넷은 이상적인 개발환경이다 .

• 개발 툴• 개발 언어• 라이브러리• 기반 기술

Page 18: NET  프레임워크 개요

C#

.NET 프레임워크 개요

18 / 32

닷넷 프레임웍 (.NET Framework)

VB.NET C# Managed C++ JScript.NET

Common Language Specification공통 언어 스펙

Visu

al S

tudi

o .N

ET

Common Language Runtime공통언어 런타임

Base Class Library

Data and XML

Web Services User Interface

.NET Framework.NET Library

.NET 런타임

CLS 의 규칙을 따르는 언어로 작성된 애플리케이션은 닷넷 프레임웍에서 동작할 수 있다 .

Page 19: NET  프레임워크 개요

C#

.NET 프레임워크 개요

19 / 32

닷넷의 특징

▣ 플랫폼 독립성 (Plaform Independent)◈ 닷넷 프레임웍만 설치되어 있다면 어떠한 운영체제에서도 닷넷

애플리케이션이 동작할 수 있다 .

▣ 다양한 언어의 지원◈ CLS(Common Language Specification)

– 닷넷 프레임웍에서 동작하기 위해서 언어들이 지켜야 하는 표준 스펙

▣ 상호 운용성 (Interoperability)◈ 서로 다른 언어끼리의 호환성

– C# 에서의 COM 사용– C# 에서의 Win32 API 사용

◈ 닷넷 지원 언어들끼리의 호환성

Page 20: NET  프레임워크 개요

C#

.NET 프레임워크 개요

20 / 32

중간언어

C# 코드

중간언어Microsoft

IntermediateLanguage

VB.NET 코드 Managed C++ 코드

C# 컴파일러 VB.NET 컴파일러 Managed C++ 컴파일러

CLR 이 실행C# 어셈블리

Page 21: NET  프레임워크 개요

C#

.NET 프레임워크 개요

21 / 32

▣ 중간언어 (Intermediate Language)◈ 기계어로 변환하기 쉬운 상태의 중간 단계의 언어

▣ 중간언어와 동적 컴파일◈ 중간언어

– C# 의 최종 결과물 ( 컴파일한 결과파일 )

◈ 재컴파일– 중간언어는 완벽한 기계어로 컴파일되어야만 실행될 수 있다 .

◈ JIT(Just In Time Compiler)– 중간언어를 동적으로 컴파일하는 컴파일러

Just In Time Compiler

Page 22: NET  프레임워크 개요

C#

.NET 프레임워크 개요

22 / 32

Just In Time Compiler

중간언어 (IL)

운영체제

완전한 기계어

프로그램 실행

동적 컴파일러

소스코드 컴파일

소스코드

JIT 컴파일러

동적 컴파일

어셈블리

CLR 이 중간언어로 컴파일된 파일을 로딩하면 CLR 내의 JIT 컴파일러가 기계어로 컴파일하게 된다 . 이 작업은 동적으로 이루어진다 .

JIT 컴파일러의 정확한 이름은 Just-In-Time 컴파일러이다 .

Com

mon

Lan

guag

e Ru

ntim

e

Page 23: NET  프레임워크 개요

C#

.NET 프레임워크 개요

23 / 32

CLR(Common Language Runtime)▣ CLR

◈ .NET 에서 프로그램을 로딩하고 동적 컴파일하며 실행해주는◈ 메모리 관리까지 해주는 가상적인 운영 시스템◈ 프로그래머 입장에서는 닷넷 프레임웍 자체를 CLR 로 보아도 된다 .

– 닷넷 프레임웍 내에 CLR 이 포함되어 있다 .

▣ CLR 의 역할◈ 프로그램 로딩

– 사용자가 프로그램을 실행하면 CLR 이 프로그램을 로딩한다 .◈ 동적 컴파일

– 로딩된 프로그램은 CLR 내의 JIT 에 의해서 동적으로 컴파일된다 .◈ 실행

– 동적으로 컴파일된 코드는 동적으로 적재되어 프로그램이 실행된다 .◈ 메모리 관리

– CLR 은 내부의 메모리 관리를 자동으로 하며 Garbage Collector 를 운영한다 .

Page 24: NET  프레임워크 개요

C#

.NET 프레임워크 개요

24 / 32

컴파일과 실행

▣ 닷넷의 컴파일과 실행◈ 컴파일

– 중간언어 (IL) 형태로 만든다 .◈ 실행

– IL 형태의 언어를 JIT 가 재컴파일하여 .NET 환경의 CLR 이 실행시킨다 .

▣ C# 의 어셈블리◈ 중간언어 형태의 .exe 나 .dll 파일들을 C# 에서는 어셈블리 (Assembly)

라고 한다 .

▣ 어셈블리의 종류◈ 사설 어셈블리

– Copy & Paste 개념의 프로그램– 복사해서 사용하면 된다 .

◈ 공용 어셈블리– 레지스터 개념에서 발전된 형태– 공용 어셈블리를 등록하는 것은 레지스터와 동일하다 .– 버전별로 독립적으로 관리하며 복사버젼을 보관한다 .– CLSID 대신 디지털 서명 방식으로 관리한다 .

Page 25: NET  프레임워크 개요

C#

.NET 프레임워크 개요

25 / 32

.NET 과 C#▣ .NET 과 C# 의 호환

◈ .NET 을 위해서 새롭게 만들어진 언어◈ .NET 의 특징은 곧 C# 의 특징이다 .

▣ C# 언어의 특징◈ 기존 언어들의 장점만을 살려서 만든 언어◈ C# 은 C++ 의 문법을 표준화하고 정리하고 발전시킨 언어이다 .◈ C# 에서 C 문법을 사용할 수 있다 .( 포인터 )◈ C# 에서 기존의 COM 컴포넌트를 사용할 수 있다 .

▣ C# 의 라이브러리◈ XML.NET◈ ADO.NET◈ ASP.NET◈ XML Web Services

Page 26: NET  프레임워크 개요

C#

.NET 프레임워크 개요

26 / 32

C# 과 자바▣ 인터프린터와 컴파일 언어

◈ 컴파일 언어는 프로그램을 한꺼번에 기계어로 변환해서 사용한다 .◈ 인터프린터 언어는 한 줄씩 진행해 나가며 필요한 코드를

기계어로 해석해서 실행하는 방식이다 .

▣ 자바◈ 자바는 동적 해석 언어이다 .◈ 바이트코드를 인터프린터 방식으로 해석해서 실행

▣ C#◈ C# 은 동적 컴파일 언어이다 .◈ JIT 컴파일러에 의해서 동적으로 중간언어 (IL) 을 재컴파일해서

실행

비슷한 개념

Page 27: NET  프레임워크 개요

C#

.NET 프레임워크 개요

27 / 3227

C#▣ C# 의 문법

◈ 문법적인 면에서 C 보다 C++ 보다 명확하고 발전된 형태◈ 모든 문법은 익숙해지기 전까지는 어렵다 .

▣ C# 의 특징◈ C# 은 프로그래밍 언어이다 .◈ 엄청난 라이브러리를 제공하는 프로그래밍 언어이다 .◈ 라이브러리라기 보다는 기반 기술을 제공하는 개발환경이다 .

▣ C# 의 구성◈ 기본 유틸 라이브러리◈ 스레드 프로그래밍◈ 네트워크 프로그래밍◈ XML.NET◈ ADO.NET◈ 웹 폼 프로그래밍◈ 윈도우즈 프로그래밍◈ .NET Remoting◈ XML Web Services

Page 28: NET  프레임워크 개요

C#

.NET 프레임워크 개요

28 / 32

.NET Framework 3.5 에 포함된 기능

.NET Framework 개요 .NET Framework 차세대 응용 프로그램 및 XML Web services 를 만들고 실행하는 것을 지원하는 필수적인 Windows 구성 요소이다 . .NET Framework 3.5 - .NET Framework 3.5, 2.0 및 3.0 용 서비스 팩을 포함하여 .NET Framework 2.0 및 .NET Framework 3.0 을 기반으로 한다 .

Page 29: NET  프레임워크 개요

C#

.NET 프레임워크 개요

29 / 32

.NET Framework 2.0/ 3.0 /3.5 에 포함된 기능

.NET Framework 2.0 에 포함된 기능 - CLR( 공용 언어 런타임 ) - 제네릭 형식 및 메서드에 대한 지원

- C#, Visual Basic, C++ 및 J# 용 컴파일러

- 기본 클래스 라이브러리

- ADO.NET - ASP.NET - Windows Forms - 웹 서비스

.NET Framework 개요

Page 30: NET  프레임워크 개요

C#

.NET 프레임워크 개요

30 / 32

.NET Framework 3.0 에 포함된 기능 - WPF(Windows Presentation Foundation) - WCF(Windows Communications Foundation) - Windows WF(Workflow Foundation)

.NET Framework 3.5 에 포함된 기능 - LINQ - C#, Visual Basic 및 C++ 용 새 컴파일러

- ASP.NET AJAX - 기본 클래스 라이브러리의 추가 클래스

.NET Framework 개요 .NET Framework 2.0/ 3.0 /3.5 에 포함된 기능

Page 31: NET  프레임워크 개요

C#

.NET 프레임워크 개요

31 / 32

.NET Framework 버전 2.0, 3.0 및 3.5 의 관계

2.0 3.0 3.5•CLR( 공용 언어 런타임 )•제네릭 형식 및 메서드에 대한 지원•C#, Visual Basic, C++ 및 J# 용 컴파일러•기본 클래스 라이브러리•ADO.NET•ASP.NET•Windows Forms•웹 서비스

•WPF(Windows Pre-sentation Foundation).•WCF(Windows Com-munications Founda-tion)•Windows WF(Workflow Founda-tion)

+ 2.0

•LINQ•C#, Visual Basic 및 C++ 용 새 컴파일러•ASP.NET AJAX•기본 클래스 라이브러리의 추가 클래스+2.0 + 3.0 (sp1)

Page 32: NET  프레임워크 개요

C#

.NET 프레임워크 개요

32 / 32

.NET Framework 버전 3.5 의 새로운 기능

.NET Compact Framework

.NET Compact Framework 버전 3.5 에서는 WPF(Windows Presenta-tion Foundation) 기술을 비롯한 분산 모바일 응용 프로그램에 대한 지원을 확장합니다 . 또한 커뮤니티 피드백을 기반으로 LINQ 등의 새 언어 기능과 새 API 를 추가하고 업데이트된 진단 도구와 기능을 사용하여 디버깅을 향상시킵니다 .

ASP.NET.NET Framework 3.5 에는 ASP.NET 및 Visual Web Developer 의 대상 영역에 대한 향상된 기능이 있습니다 . 가장 중요한 개선 사항은 AJAX 사용 웹 사이트의 개발에 대한 지원 향상입니다 .