.NET Framework 개요


.NET 이란

.NET

  • 2000년 7월 MS가 발표한 새로운 프로그래밍 환경
  • Internet is king domain of all
  • .NET Framework에 의해 동일한 컴파일된 코드로 작성

.NET Framework

  • .NET 플랫폼의 한 부분
  • Windows에 포함되어 Windows 구성요소로써 동작
  • 차세데 Windows 기반 응용프로그램의 기초

.NET Framework 개요

  • CLR (Common Language Runtime)
  • NET Framework 가장 하위에 있음
  • 실행시 코드를 관리하는 대리인
  • 메모리 관리, 쓰레드 관리, 원격 서비스 등의 핵심 서비스 제공
  • NET Framework Class Library
  • .NET Framework에서 CLR 제외한 부분
  • ASP.NET, Windows Forms, Data and XML, Base Class Library

CLR (Common Language Runtime)기능

  • 자동 메모리 관리 : 메모리 누수, 잘못된 메모리 참조 문제를 해결
  • 언어호환성 제공 : CTS를 지원하는 다양한 언어를 제공
  • CTS : 이진코드 라이브러리의 단순 배포
  • 보안 : 인터넷 배포를 위한 중요 기능
  • 개발자의 생산성 향상 : 다른 언어로 작성한 DLL등을 사용
  • 과거의 SW 지원 : 관리되는/관리되지 않는 코드를 지원
  • 성능 향상 : JIT 컴파일을 통한 성능 향상

CTS (Common Type System)기능

  • .NET 메타데이터 형식을 정의
  • .NET 언어들을 초월한 통합 데이터 형 시스템
  • .NET 언어들이 사용하는 모든 데이터형 정의
  • .NET 언어들의 호환성 유지

CLS (Common Language Specification) 기능

  • NET 컴파일러들이 지켜야 하는 규약 (공통 언어 규약)
  • CLR이 언어 호환성을 가질 수 있도록 지원

NET Framework Class Library 구성 요소

  • ASP.NET (XML Web Service & Web Form)
  • Windows Forms
  • Data and XML
  • Base Class Library

C#이란

C#이란?

  • .NET Framework에서 실행되는 다양한 응용 프로그램을 만들기 위해 디자인된 프로그램 언어
  • C# 활용 분야
  • Windows 클라이언트 App
  • XML Web Service
  • 분산 구성 요소
  • 클라이언트-서버 응용 프로그램
  • 데이터베이스 응용 프로그램 등

C#의 특징

  • 표현력이 뛰어나면서도 단순하고 배우기 쉽다. : C, C++, JAVA 와 유사
  • 객체지향 언어로서 캡슐화, 상속, 다형성과 같은 개념을 지원
  • C++의 강력한 기능을 제공 : COM개체, Native Win32 DLL 등을 "Interop" 프로세스를 통해 C#에서 사용 가능
  • 개발 절차는 C,C++에 비해 간단하며, Java보다 유연
  • C, C++ 처럼 별도의 헤더파일이 없음, 메서드와 형식을 특정 순서대로 정의할 필요 없음
  • 클래스, 구조체, 인터페이스, 이벤트 개수에 제한이 없음

C# 컴파일 과정

  • 소스코드 컴파일 -> DLL or EXE (MSIL, 메타데이터) 생성됨
  • MSIL : 플랫폼에 무관한 중간 언어
  • 메타데이터 : 컴파일된 소스 코드에서 사용된 형 타입 등을 기술
  • DLL or EXE -> .NET Framework에서 동작
  • 어셈블리가 CLR에 로드
  • CLR은 메니페스트에 포함된 정보를 통해 작업을 수행
  • 보안 요구사항 충족 확인
  • JIT(Just in time) 컴파일 수행
  • IL 코드를 Native 기계어 명령으로 변환
  • CLR의 기능
  • 자동 가비지 콜렉트
  • 예외처리
  • 리소스 관리 등
  • 관리 코드 (Managed Code) : CLR을 통해 실행되는 코드
  • JIT 컴파일러
  • MSIL은 사용전에 반드시 컴파일되어야 함
  • 애칭 : Jitter
  • Jitter는 MSIL 명령어 집합을 컴파일하여 기계 코드로 바꾸고, 메모리상의 캐쉬에 저장하고 (컴파일된 함수는 다시 컴파일 안함)
  • Unix에서도 JIT을 통해 실행 가능

광고

댓글 남기기