.NET Framework와 C#언어
1. .NET Framework
.NET Framework는 예전에 넣고 뺄 수 있었지만 Window10에서는 운영체제의 한 부분으로 들어가 운영체제와 긴밀한 관계가 있어짐.
C#은 MS에서 C,C++,Java의 장점만을 모아서 만든 가장 밀고 있는 언어임. 그러기에 많은 기능(라이브러리)를 제공하려고 해 많은 라이브러리가 존재함.
- 구성 요소
클래스 라이브러리와 CLR (Common Language Runtime)
우리가 기본적으로 다루는 부분 = 클래스 라이브러리
코딩된 내용이 파일로 작성됨. 이 파일을 실행하는 순간 데이터(*.exe)를 CLR로 넘김. exe파일의 소스코드를 OS에 맞게 재컴파일하게 되고 모든 OS에 실행되는 기계화 코드를 만들어냄.
- 클래스 라이브러리
C# 언어 + 클래스 라이브러리 = C# 프로그래밍
MSDN을 참고 msdn.Microsoft.com = MSDN의 소스코드는 표준코드라서 참고하면 좋음.
클래스 라이브러리
BCL(Basic Class Library) : 기본 클래스
Window Form : 윈도우 응용 프로그램 제작을 위한 클래스 라이브러리
ASP.NET : 웹 클래스 라이브러리
ADO.NET : 데이터베이스 클래스 라이브러리
- CLR(Common Language Runtime)
역할
컴파일된 C# 코드를 실행하는 역할
MSIL, IL(intermediate Language), 중간언어
Visual Studio에서 C#코드를 컴파일한 코드
*.exe, *.dll (어셈블리, assembly)
닷넷 언어인 VB, C# 등의 공통 언어
exe파일 자체가 바로 실행할 수 있는 기계어가 아니라 닷넷 프레임워크가 exe파일을 OS에 맞게 재컴파일해서 실행하는 것임. 또한 닷넷 프레임워크에서 작성한 C#,Visual Basic이든 간에 여기서 작성한 exe 코드들은 언어에 상관없이 서로 호환됨. 이것을 중간언어라 부름.
- CTS(Common Type System)와 CLS(Common Language Specification)
CTS는 공통 데이터형과 형식 정의.
int -> System.Int32 = 객체형으로 바뀜.
float -> System.Single = 객체형으로 바뀜.
C#에서 쓰는 데이터형은 실제로 객체다.
CLS는 공통 언어 사양 정의
닷넷 언어가 지켜야 할 최소 코드 규칙.
키워드를 이상하게 쓴다든가 참조형을 써야 되는데 다른 형을 쓴다든가 등
2. C# 언어 개요
- C++언어 기반 + java 장점 = C#언어 (C언어를 모태로 삼음)
- C# 언어의 사용 범위
XML, Web, Network, 데이터베이스, 게임, IoT 등
- C#은 포인터를 사용하지 않는다
사라진 것은 아니지만 권장하지 않음.(unsafe)
메모리 관리자? = 다른 언어는 delete나 free로 해제하지만 프로그래머 실수로 메모리 누수가 발생하는 경우 발생.
객체 생성 new -> 해제? = 가비지 컬렉터로 자동 해제
C# 프로그램 실행 과정
C# 언어 -> 컴파일 -> MSIL -> CLR -> 실행
*.exe 결과물
- 정리
닷넷 프레임워크의 구성 요소와 역할 이해
BCL, IL, CLR, JIT, CTS 등
컴파일부터 실행까지의 과정을 이해
'Language > C#' 카테고리의 다른 글
[ C# ] C# 기본 문법 (0) | 2020.09.02 |
---|---|
[ C# ] 데이터형, 변환, 표준 입력형식 (0) | 2020.09.01 |
[ C# ] C# 프로그래밍의 기본 구조 (0) | 2020.09.01 |
[ C# ] StopWatch 구현 (0) | 2019.08.12 |
C# Console 가지고 놀기 (명령어) (0) | 2019.08.10 |
댓글