ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C#
    .NET/C# Basic 2008. 9. 29. 16:38
    반응형
    < .NET Forms >

    1. .net Components BCL (Base Class Library) : .net Framwork 에 포함되어 있는것이지 c#,vb,c++등의 개별적인 언어에 종속적이지 않다 BCL의 정체(?) -> C:\WINDOWS\Microsoft.NET\Framework\버전 아래의 dll파일들에 의해 버전별로 정의되어져 있음 CLR(Common Language Runtime) : 각각의 언어를 컴파일 할때 CTS에 의해 정의된 내용으로 표준화 와 더불어 해당 언어를 코딩할때 표준화를 따라서 코딩 한뒤 컴파일(IL) 실행 CTS(Common Type System) : 각각에 언어의 데이터 타입을 통일화 CLS(Common Language Specification) : 공통 언어의 사용 Tip! c#의 메뉴얼 C:\Program Files\Microsoft Visual Studio 8\VC#\Specifications\1042
     
    2. com서버 각각의 언어에 공통으로 적용되는 컴포넌트들이 포함되어있음

    3. 분산환경 시스템 물리적으로 떨어져있는 곳의 데이터베이스에 접근하기 위해 각자의 로컬컴퓨터에 접속어플리케이션을 설치해서 접속을 한다면 불편함이 존재하기 때문에 접속하고자 하는 중앙서버에 하나의 컴포넌트를 설치함으로써 해결할수 있다 이를 분산환경 시스템이라 하고 이에 필요한 프로토콜로 xml/http(xmlHttpRequest) 형태를 가진다.

    4. managed code(관리코드) / unmanaged code(비관리코드) managed code : CLR에 적용받는 코드 (기본적으로 C#에서 만들어진 코드는 CLR에 적용 받는다) unmanaged code : CLR에 적용 받지 않는코드 (ex. 피시방관리프로그램을 예로 들어서 user32.dll 을 c#으로 로드 하고 특정값을 변경할경우 user32.dll파일은 Windows에 소속된 파일이기 때문에 CLR에서 직접적으로 관여하는것이 없다. )

    5. 오버로딩 System 네임스페이스 안에 Console 속성 안에 WriteLine() 메서드의 오버로딩 을 설명한다.(19가지의 오버로딩을 제공)
     
    6. 실행파일 사용자에게 전달될 파일 (ex. C:\C#_Sample\Csharp_test1\Csharp_test1\bin\Debug\C#_test1.exe 파일을 배포한다.)

    7. sln C:\C#_Sample\Csharp_test1\Cshart_test1.sln 개발환경을 저장하는 파일 (비쥬얼스트디오 버전, 작업중이 pc의 cpu사양등의 정보를 저장)

    8. 시작 프로그램의 설정 솔루션 우클릭 > 속성 > 여러개의 프로그램중 시작할 프로그램을 선택

    9. 정확한 타입 정의와 CLR의 역할 private void button1_Click(object sender, EventArgs e) { label1.Text = textBox1.Text + "...님 반갑습니다"; } 위의 예제를 컴파일 하면 오류없이 실행이 된다... 왜? CLR이 CTS에 정의된 형식으로 "...님 반갑습니다" 부분을 저장하기 때문에 가능하다 하지만 그것이 어디에 저장되는지 알수 없기 때문에 적절한 코딩방법이 아니며 string 변수 의 형태로 저장을 해야 재활용 이나 정확한 변수 공간 지정이라는 측면에서 유리하다 msg = "...님 반갑습니다"; label1.Text = textBox1.Text + msg;

    10. 비주얼 스튜디오(팀 파운데이션) 하나의 프로젝트를 원거리의 개발자들이 동시에 개발하게 될경우 최종 수정자에 의해 파일이 변경될수 있다. 이를 보안하기 위해 나온 버전

    11. 닷넷에서는 수정된 DLL파일이 동시에 돌아가게된다 수정된 dll 은 버전에 따라 다르게 저장 원본은 그대로 유지
    11. "dll hell"
    라이브러리들이 저장된 dll 파일이 변경되면
    라이브러리를 참조하던 기존 프로그램들은 오류를 만들게 된다.
    이를 "dll hell" 이라고 한다.
    .net 에서는 이런 문제를 해결하기 위해 버전을 다르게 해서 기존의 프로그램을 보호한다.
    (기존 버전의 라이브러리는 그대로 보조하고 있다.)
    12. 컴파일 순서
    소스코드 -> 중간언어로 컴파일 -> MSIL(Code + Metadata) 중간언어로 컴파일단계(개발자는
    어기까지 개발하고 배포한다.)
    -> JIT Compiler -> Native Code(원시코드) CLR이 설치되어있다고 가정하고
    JIT Compiler에 의해 중간언어를
    원시코드로 컴파일 한다.(CRL이 담당)
    Metadata : 비관리코드가 포함되어 있을경우 CRL은 이를 알수가 없기 때문에
    코드에서 참조해야될 라이브러리나 기타 파일들을 포함하며
    CLR단계를 거치지 않고 바로 컴파일 한다

    12. 컴파일 순서 소스코드 -> 중간언어로 컴파일 -> MSIL(Code + Metadata) 중간언어로 컴파일단계(개발자는
    어기까지 개발하고 배포한다.)

    -> JIT Compiler -> Native Code(원시코드) CLR이 설치되어있다고 가정하고
    JIT Compiler에 의해 중간언어를
    원시코드로 컴파일 한다.(CLR이 담당)

    Metadata : 코드가 참조하는 모든파일들을 포함하고 있으며
    비관리코드가 포함되어 있을경우 CRL은 이를 알수가 없기 때문에
    코드에서 참조해야될 라이브러리나 기타 파일들을 포함하며
    CLR단계를 거치지 않고 바로 컴파일 한다

    과제 !
    ! 수업에 사용된 용어들에 대해서 다시한번 정리한다
    반응형

    '.NET > C# Basic' 카테고리의 다른 글

    C# 디버깅  (0) 2008.10.01
    C#에서의 데이터형  (0) 2008.10.01
    C# 오버플로우발생할때 오버플로우 점검 옵션  (0) 2008.09.30
    가비지 콜렉팅 + 스택(stack) 힙 (heap) +리플렉션등등 오류처리등..  (0) 2008.09.30
    역어셈블리 IL DASM  (0) 2008.09.30
    실행인자  (0) 2008.09.30
    c# 주석 /// static  (0) 2008.09.30
    C# pecifications 참고  (0) 2008.09.29

    댓글

Designed by Tistory.