Web?

닷넷 프레임 워크

디자인인스 2016. 7. 11. 11:19

1. .NET Framework란?

- 마이크로소프트에서 개발한 윈도우 프로그램 개발 및 실행환경

- 많은 라이브러리와 프로그래밍 언어를 지원

- 핵심은 CLI- 콩통 언어 기반(Common Language Infrastructure)


The.NET Framework Stack


2. Net framework 구조


1) 공통 언어 인프라 (Common Language Infrastructure, CLI)

마이크로소프트 닷넷 프레임워크, 모노, 포터블 닷넷과 같은 수많은 런타임의 중심부를 형성하는 실행 코드와 런타임 환경을 설명하기 위해 마이크로소프트사가 개발한 오픈규격


2) 공용언어 런타임 (Common Language Runtime, CLR)

- 마이크로소프트가 구현한 CLI를 일컬음

- "Managed Code" 응용프로그램을 개발하기 위한 언어 독립적인 개발, 실행환경

- Java의 Virtual Machine 같은 .NET Framework Application을 실행하는데 필요한 실행 엔진

- 응용 프로그램 실행시 자동 연결, 실행

- Visual Basic .NET, C#등과 같은 .NET 언어는 Microsoft Intermediate Language(MSIL)로 컴파일

- .NET 응용프로그램은 윈도우에서 바로 실행 할 수 없고, 닷넷 프레임워크의 CLR에 있는 JIT(Just-in-Time) 컴파일러가 MSIL코드를 Native Code로 변환해 실행 가능하게 해줌





구성 요소

설 명

Class Loader

크래스를 로딩하고 메타데이터(mETADATA)를 관리

IL to Native Compiler

네이티브 컴파일러(.exe 실행파일 컴파일러)

Code Manger

코드 실행을 관리

Garbage Collector

객체들에 쓰다 남은 메모리 해제

Security Engine

코드의 고유성과 사용자 식별에 대한 검증된 보안 제공

Debug Engine

코드의 실행 추적과 응용 프로그램의 디버그를 수행

Type Checker

Type 안정성을 담당. 불완전한 Type 케스팅, 초기화 하지 않은 변수의 사용을 막음

Exception Manger

예외 처리 관리

Thread Support

멀티 스레드 프로그래밍을 지원

Com Marshaller

COM과 마샬링(marshalling) 기능 제공

Base Class Library Support

코드와 기본 라이브러리를 제공하는 런타임을 통합



① 동통 타입 시스템(Common Type System, CTS)

- 상호 윤용성을 위한 데이터의 기본적인 특징 정의

- .net 언어가 지원해야 할 타입과 연산자들 집합


② 동통 언어 스펙(Common Language Specification, CLS)

- 모든 .NET 언어가 최소한 지원해야 할 CTS 부분집합

- 무부호 정수(unsigned integer)타입은 CTS에는 기술 되어 있지만 C# 등 일부 .NET 언어는 지원하지 않음

- 임의의 .NET 언어에서 사용 가능한 클래스를 만들고 싶다면 CLS를 잘 준수해야 함.


③ 저스트-인-타임 컴파일러(jUST - In - Time Compilation, JIT)

- 프로그렘을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법

- 프로그램의 실행 속도를 빠르게 하기 위해 사용


④ 가상 실행 시스템 (vIRTUAL eXECUTION sYSTEM, ves)


3) .NET Framework 클래스 라이브러리(.NET Framework Class Library)

- CLR에서 수행하기 위해 필요한 기능을 제공해 주는 클래스들의 집합

- BCL(Basic Class Library)는 클래스 라이브러리 중 가장 핵심적인 기능을 하는 클래스의 모음

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

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

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


① ASP.NET(Web Forms & Services)

- ASP.NET은 강력한 웹 응용프로그램을 개발하기 위한 프로그래밍 프레임워크

- ASP.NET 웹폼(Web Forms)는 쉬우면서도 강력한 방법으로 웹 사용자 인터페이스(Web UI) 페이지를 생성할 수 있게 함.


② Windows Forms

- 닷넷 프레임워크 기반의 윈도우 응용프로그램을 개발하기 위한 새로운 플랫폼

- 윈도우 UI 클래스는 System. Windows.Forms 네임스페이스에 포함되어 있음

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


③ Data & XML

- ADO.NET은 닷넷 프레임워크의 일부로 System.Data 네임스페이스와 하위 네임스페이스에서 제공하는 데이터 접근 기술로 이루어짐

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

- System.Xml 네임스페이스는 W3C 호환 XML 파서와 XML 작성기(XML Write) 그리고 XSLT와 XPaht등 많은 XML 관련 기술을 위한 클래스로 이루어짐


④ Base Class Library

- .NET Framework 의 세가지 구성 요소(ASP.NET / Windows Forms / Data and XML)와 .NET Framework 에서 공통적으로 사용하는 기능들을 패키지화한 것


3. 특징

1) 닷넷 플렛폼은 언어에 중립적

- .NET 언어로 VB, C++, C#, Jscript 등이 있음

- APL, COBOL, Pascal, Eiffel, Python, Smalltalk 등 Third-Partes .NET 언어가 현재 개발되고 있음


2) 언어 상호 운영이 가능

- 다른 프로그래밍 언어끼리 교차 호출, 교차 상속, 교차 디버킹까지도 가능


3) 객체 지향 언어

- 닷넷은 플렛폼 자체가 객체 지향적이며, 닷넷 언어들도 모두 완전한 객체 지향 언어

- 절차식 언어에 비해 개발 속도가 빨라 생산성이 높고 배우기도 쉬움


4) 응용 프로그램을 배포하기 쉬움

- 어셈블리가 자신에 대한 정보인 메타 데이터를 내장하고 있으므로 단순히 복사하기만 하면 설치 완료

- 레지스트리에 의존하는 com과는 달리 시스템에 부하를 주지 않으며 DLL처럼 덮어쓰기에 의해 이전 프로그램이 영향을 받는 경우도 없음


5) 어셈블리가 어떤 동작을 하는지에 대한 정보가 어셈블리 자체에 작성되어 있어 보안 적용이 쉽고 완벽

- 닷넷 런타임은 어셈블리가 무엇을 하는지 사전에 조사할 수 있어 부적절한 코드의 실행을 원천적으로 방지할 수 있음


6) 방대한 양의 클래스 라이브러리(BCL)가 제공

- 윈폼, 웹폼, ADO, 리모팅 등의 기능을 제공하는 클래스들이 체계적으로 잘 정리되어 있음

- XML, 정규식, 이미지 출력, 네트워킹 등 윈만한 기능이 다 포함되어 있어 공짜로 쓸 수 있음

- BCL은 개별 언어가 아닌 닷넷 플렛폼에 의해 제공되는 것이므로 모든 닷넷 지원 언어들이 이 라이브러리의 서비스를 받을 수 있음