본문 바로가기
PROGRAMING📚/C#📑

C#_닷프레임네트워크와 C#언어

별찌루 2019. 2. 14.
728x90
반응형

// C#언어의 개요//

 

C++언어 기반 + java의 장점을 더한것 = C# 언어 ->C언어가 되어있어야 한다. 

C#은 포인터를 사용하지 않는다. ->메모리 관리자(안전하지 않다고 생각되서 , 존재하긴 하지만 거의 사용하지 않는다.)_delete/free()를 사용해서 메모리는 삭제(해제) 해주는 소멸자가 존재 헀으나 C#부터는 소멸자가 없어졌다. 이런 사용하지 않는 메모리를 처리하도록 가비지 컬렉터라는 것이 생겼다. new로 생성에만 신경을 써도 상관 없게 되었다. 

 

- 속도 향상

- 포인터 걱정x

- 많은 라이브러리

 

//Net Framework//

 

운영체제(OS)와 닷넷 프레임워크가 하나가 되었다.(예전에는 넣고 뺴고가 가능 했지만 현재는 하나의 운영체제가 되어있다.)

운영체제에 하드웨어가 탑제 되면서 관리 하기 쉬워졌다. 

 

<구성 요소>

 

 

Net Framework(CLR과 클래스 라이브러리로 구성되어있다.) 위에서 돌아간다

 

 *CLR(공용 언어 런타임) * //컴파일된 C#코드(*.exe 파일) 를 실행하는 역할

//MSIL과 IL은 < *.exe , *.dll >어셈블리어 이다. -> "중간언어"라고 부른다.

 

자바에서 JVM에 해당하는 닷넷에서의 실행 엔진이다.

- 메모리관리, 데이터관리, 보안관리 등을 한다.

- 지원되는 언어로 작성된 프로그램이 공통의 객체지향형 클래스를 공유할 수 있도록 해주는 실행 관리 프로그램

-가지비 컬렉터

    //CTS : 공통 데이터 형과 형식 정의(예) int -> System.int32 / float->System.Single

 CLS : 공통 언어 사양 정의, 닷넷 언어가 지켜야할 최소 코드 규칙 

  

 *클래스 라이브러리*

 

- BCL: 기본 클래스 // 클래스 라이브러리 

  Window Form : 윈도우 응용 프로그램 제작을 위한 클래스 라이브러리

  ASP.NET : 웹 클래스 라이브러리 

  ADO.NET : 데이터베이스 클래스 라이브러리 

 

- 클래스와 인터페이스들의 조합

- 데이터 수집, 파일 접근, 문자 작업 과 같은 공통 프로그래밍 작업을 가능하게 하는 값의 형태 이다.

 

 

//C#언어의 사용 범위//

XML,Web Network, 데이터베이스, 게임, IoT 등...

 

 

//C#프로그램 실행 과정//

 

 

 

C#언어  ->  컴파일 |         MSIL       |  ->  CLR   ->  실행(OS와 상관없이 실행)

(Visual Studio)         (*.exe//결과물 )         

 

 

/*

C#코드는 기계어로 컴파일 되지 않고 C#컴파일러는 C#소스코드를 어셈블리(MSIL)파일로 변환 시키고 필요한 메타데이터를 생성한다.

그다음 JIT컴파일러는 MSIL와 메타데이터를 검사하여 코드가 안전한지 확인 한 후에 네이티브 기계어 코드로 변환 시켜서 실행시킨다.

 

* CLR(공용 언어 런타임)을 기반으로 빌드 되는 모든 언어에서는 MSIL을 파일을 생성한다. * 

 

*/

 

 

정리)

//BCL, IL, CLR, JIT, CTS 등 닷넷 프레임워크의 구성 요소와 역할을 이해하기 

 

//컴파일 부터 실행까지의 과정 이해하기 

 

 

 

 

 

 

 

 

 

이미지 참고: http://blog.daum.net/_blog/BlogTypeMain.do?blogid=0iJRy

https://docs.microsoft.com

 

 

728x90
반응형

'PROGRAMING📚 > C#📑' 카테고리의 다른 글

C#_데이터형  (0) 2019.02.14
C#_연산자  (0) 2019.02.14
C#_프로그래밍의 기본 구조  (0) 2019.02.14
C#_기본적인 프로그램  (0) 2019.02.13
C#_1강  (0) 2019.02.13

댓글