웹 앱, 모바일 앱, 데스크톱 프로그램, 게임 프로그램, 사물인터넷(IoT) 프로그램 등을 만들기 위한 오픈소스, 크로스 플랫폼 개발 환경

- 인간언어 = High Level Language
- 기계언어 = Low Level Language
- 컴파일러 = 인간어를 기계어로 바꿔주는 첫번째 언어번역 프로그램. 각 언어마다 컴파일러가 다르다.
- 닷넷 프레임워크 = 컴파일러의 다음 단계. 각 언어의 컴파일러가 하나의 CIL과 CLR로 합쳐진다.
인간언어는 인간언어를 기계어로 바꿔주는 첫번째 단계인 Compiler(컴파일러)를 거쳐, 두번째 단계인 CIL(Common Intermediate Language), 세번째 단계인 CLR(Common Language Runtime)를 거친 후, 최종적으로 기계어가 된다. 닷넷프레임워크는 두번째, 세번째 단계인 CIL과 CLR을 담고 있는 환경이자, 소프트웨어다.
즉, C#, F#, Visual Basic Code와 같은 서로 다른 인간언어를 사용하더라도 이들 모두를 최종적으로 기계언어(Machine Code)로 바꿔줄 수 있는 중간 환경(소프트웨어)를 닷넷프레임워크라고 한다.

| App Models | 운영체제 | 용도 |
|---|---|---|
| .NET Framework | 윈도우 | 웹 서비스 및 웹 개발 |
| .NET Core | 윈도우, 리눅스, Mac | 데스크탑 앱, 웹서비스 |
| Xamarin | iOS, Android(모바일), Mac(데스크탑) |
C#이라는 언어는 같지만, 어떤 App Model을 사용하느냐에 따라 개발 환경이 달라진다. 📌참고문헌
General-purpose programming language
다양한 도메인의소프트 웨어를 개발하기 위해 설계된 프로그래밍 언어. 즉, 다양한 목적으로 사용하기 위한 언어

특화용 (특정한 용도에만 쓰임)
Fortran - 수식, 수치 계산
LISP - 오토캐드, 3차원 그래픽 디자인, 인공지능 처리
범용 (다양한 목적으로 쓰임)
C, C++, C#, Java, Python, Go, Kotlin,
모바일환경, 웹, 데이터 분석 등 다양한 목적으로 언어를 사용할 수 있음