2008. 11. 14. 17:44

깡통 개발자의 C# 익히기 -제 2강- (.NET FRAMEWORK)


이번 강좌는 간단하게 나마  .NET FRAMEWORK에 대해서 알아보겠습니다.  2강 내용이 많아서 정리하는라고  좀 늦었습니다. 이해바랍니다. 4강까지는 거의 기본환경이나 기초지식에 대한 강좌입니다. 지루하시더라도 많은 성원바랍니다.

■ .NET FRAMEWORK의 객체지향
  클래스(CLASS) : 객체를 생성하는 데이터 원본
                            Abstraction(추상화)
                            Encapsulation(은닉)
                            Inheritance(상속)
                            Polymorphism(다형성) 

※ 객체 지향에 대한 더 자세한 내용은 Visual C++ Lecture 에 제가 게제한 "[특강]깡통 개발자의 객체지향 개념" 이란 제목의 강좌가 있습니다. 이 강좌를 참고하시기 바랍니다. 

<참고>

언어/구분  

속성(Attribute)

행위(Behavior)

비주얼C#

데이터 멤버(data member)

함수 멤버(function member)

비주얼C++

멤버 변수(member variable)

멤버 함수(member function)

비주얼베이직

속성(property)

메소드(method)

자바

필드(field)

메소드(method)

델파이

속성(property)

메소드(method)

        

■ .NET FRAMEWORK 구성

    WEB Services, User Interface

        |

    ADO.NET : Data & XML

        |

    Base Class Library

        |

    Common Language Runtime

 

  ▷Common Language Runtime

어떤 언어로 작성된 프로그램이 실행되기 위해 컴퓨터가 내장하고 있어야할 컴포넌트.

     <컴파일 생성단계>    

  1. 스코드 및 메타데이타 같이 컴파일
  2. 원래소스코드와 다른 언어의 코드와 병행 링킹 및 생성
  3. Base Class Library와 .NET 프래임워크 정보를 포함하여 형안성화

        <특징>

  • 언어 상호 운용성
    어떤 .NET언어로 작성된 소스 코드도 첫번째 컴파일 과정을 거치면 표준화된 IL코드로변환된다. 다른 IL코드를 붙여 어플리케이션을 구축하게 된다.
     
  • 플랫폼의 독립성
    IL 코드는 CLR Interpreter와 Base Class Library가 장착되면 실행가능 Common Language Runtime은 응용프로그램 개발을 단순하고 견고하게 해준다.

     <관리환경>

  • 클래스 로더(Class Loader)
    메타 데이터와 클래스의 로딩 및 배치(Layout)을 관리한다.
     
  • 중간 언어를 원시코드로 변환하는 컴파일러(IL to Native Compilers)
    IL(Intermediate Language)을 원시코드(Native)로 변환한다.(just-in-time)
     
  • 코드관리자(Code Manager)
    코드의 실행을 관리한다.
     
  • 가비지 콜렉션(GC:Garbage Collection)
    모든 개체들의 lifetime을 자동 관리한다. 이것은 멀티 프로세서이자, 확장 가능한 가비지 콜렉터이다.
     
  • 보안엔진(Security Engine)
    사용자 뿐 아니라 코드의 출처에 근거한 evidence-based security를 제공한다.
     
  • 디버그 엔진(Debug Engine)
    응용 프로그램을 디버그하고, 코드 실행을 추적할 수 있게 한다.
     
  • 형 검사자(Type Checker)
    안전하지 않은 형 변환이나 초기화되지 않은 변수가 존재할 수 없게 한다.IL코드가 형 안정선을 유지하도록 보장해 준다.
     
  • 예외 관리자(Exception manager)
    Windows Structured Exception Handling(SHE)와 통합되어, 구조화된 예외 처리를 가능하게 한다. 오류 리포팅이 향상되었다.
     
  • 스레드 지원(Thread Support)
    멀티 스레드 프로그래밍을 가능하게 하는 클래스들과 인터페이스들을 제공한다.
     
  • COM Marshaler
    COM과의 마샬링(marshaling)을 제공한다. 마샬링은 스레드 또는 프로세스의 경게를 가로질러 인터페이스 메서드 호출을 포장하고 전송하는 프로세스이다.
     
  • Base Class Library지원(BCL Support)
    BCL을 지원하는 런타임과 코드를 통합한다.

   ▷Base Class Library

Base Class Library(BCL)는 런타임의 기능을 노출시키고 개발자가 필요로 하는 high-level서비스들을 네임스페이스(Namespace)를 통해서 제공.     

    Base Class Library

    System ──────────→Fundamental data type.

      ├──Collections────→ordered list, hash table, group

      ├──Configuration

      ├──Diagnostics

      ├──Globalization

      ├──IO ────────→File IO/Stream

      ├──Net────────→TCP/IP

      ├──Reflection

      ├──Resource

      ├──Runtime

      ├──Security

      └──Text

   ▷ADO.NET

ActiveX Data Object(ADO)기술 
 비연결형 프로그래밍 모델(Disconnected programming model)  

    ADO.NET

    System.Data

        ├──ADO

        ├──Internal

        ├──SQL

        └──SQLTypes

    - ADO.NET 개체 모델을 구성하는 클래스

    - Table & Reation -> DataSet 클래스

    - 다양한 데이터 원본을 사용(XML, OLEDB, SQL서버)

     System.XML

        ├──Xsl

        ├──XPath

        └──Serialization

    - XML을 지원

    - XML 변환기(parser)와 작성기(writer)를 제공

    - XSLT네임스페이스 -> XSL-Transformation을 제공

    - XPath는 데이터 검색을 가능하게 하는 QL 제공

    - Serialization는 웹 서비스 전체적인 핵심 인프라제공

    - 개체(object)를 XML 표시 형식으로, 또는 그 반대로 변환할 수 있는 기능을 포함

 <<출처>> 데브피아