티스토리 뷰
[출처: 시작하세요. C# 프로그래밍]
1. IL(Intermediate Language) 코드를 실행하는 CLR(Common Language Runtime)
1.1 [C# 소스코드] -> Build -> [EXE file]
: 이 때 [EXE file]는 C# 컴파일러가 삽입한 CLR Loader와 IL 코드로 구성된다.
이 후 EXE file을 실행하게 되면 CLR이 먼저 로드되어 IL 코드를 실행하게 되는 것.
2. C#은 .Net Framework를 기반으로 IL(Intermediate Language) 코드를 생성하는 컴파일러에 불과하며
C#을 공부한다는 것은 .Net Framework를 공부한다는 것이다.
.Net Framework을 공부하는데 C#이 좋은 이유는 Microsoft가 .Net Framework를 위해 만든 언어이기 떄문이다.
- VB.NET 은 기존 비주얼베이직 개발자가 닷넷환경으로 조금더 쉽게 다가설 수 있도록 VB 언어의 기본 문법을 확장하는
형식으로 발전시켰기 때문에 닷넷을 위해 만들어진 것은 아니다.
- C++/CLI 역시 동일한 한계를 지니고 있으며, C++ 언어를 바탕으로 닷넷용 응용프로긂을 만들수 있도록 문법을 확장한
것 이다.
- F# 언어는 Microsoft에서 공식적으로 지원하는 닷넷의 함수형 언어이다. 즉, 함수형 언어를 통한 문제 풀이 능력을 더하기
위해 만들어진 언어일 뿐 .Net Framework를 위한 언어는 아니다.
3. C#과 .Net Framework의 변화
- 닷넷 버전: 1.0 ~ 1.1
+ 닷넷의 변화 : 최초 버전
+ C#의 변화 : C# 1.0 발표
- 닷넷 버전: 2.0
+ 닷넷의 변화 : 제네릭 제공
+ C#의 변화 : 제네릭, 익명 함수 문법 추가
- 닷넷 버전: 3.0 ~ 3.5
+ 닷넷의 변화 : LINQ, WCF, WPF, WF
+ C#의 변화 : 표현식, 확장 메서드, 익명 타입을 위한 문법을 추가하고 LINQ 구문을 언어적으로 지원
- 닷넷 버전: 4.0
+ 닷넷의 변화 : DLR(Dynamic Language Runtime) 추가
+ C#의 변화 : 동적 언어와의 바인딩을 지원하도록 Dynamic 예약어 추가
- 닷넷 버전: 5.0
+ 닷넷의 변화 : 비동기 지원
+ C#의 변화 : 비동기를 위한 async/await 예약어 추가