행위

.Net 프레임워크

조무위키

주의. 이 문서는 공머생들이 좋아하는 주제 혹은 공머생 그 자체에 대해 다룹니다.
본 문서가 다루는 내용에 지나치게 탐닉할 경우 필연적으로 여성들과 멀어지게 됩니다.
이는 조무위키가 책임지지 않습니다.
이 문서는 성물(聖物)을 다룹니다.
이 문서는 그 누구도 깔 수 없는 물체를 묘사합니다.
성물을 욕보이게 하는 짓은 하지 맙시다.

마이크로프트에서 만들어낸 윈도우용 개발/실행 환경이다.

C#, Visual Basic .NET C++, F#, Q# 등의 개발 언어를 지원한다.

공통 언어 런타임(Common Language Runtime)이라는 전용 가상머신 위에서 돌리는 것으로 자바의 JVM이랑 똑같은데 구데기 JVM 따위와는 차원이 다르다.

보통은 C#으로 프로그래밍을 하고 컴파일을 하면 기계어로 번역하는 게 아니라 CIL (Common Intermediate Language)로 된 바이너리가 나온다. 너가 C#을 쓰든 비주얼 베이직 닷넷을 쓰든 결과물은 이렇다.

그리고 실행할때 상술한 CLR에서 돌아가고, 인터프리터처럼 작동하는데 한줄씩 읽어서 돌린다. 이걸 JIT(Just-In-Time)이라고 한다. 자바스크립트처럼 돌아간다고 생각하면 된다.

.NET 7부터는 저런 방식 말고도 네이티브 코드로 바로 바꾸는 AoT(Ahead-of-Time) 방식을 지원한다. 이럴 경우에는 메모리는 확실히 줄어들고 전반적으로 속도는 올라간다. 하지만 WPF 등의 GUI는 아직 지원하지 않으며 저 속도 향상이라는 것도 상황에 따라 다르다.

기본 클래스 라이브러리는 닷넷프레임워크의 개발언어에서 사용가능한 표준 라이브러리이다. 여기서 수많은 클래스들을 제공해주는데 이게 방대하고 막강하다보니 개발자들의 생산성이 엄청나게 높다.

이것으로 윈도우 GUI 프로그램을 매우 쉽게 만들 수 있다. 윈폼이랑 WPF라는 두 가지 방법이다. 둘 다 기본 컨트롤을 쓴다고 하면 드래그만 해서 뚝딱 만들 수 있다. 윈폼은 UI까지도 전부 C# 코드를 쓰지만 WPF는 XAML이라는 XML 같이 생긴 것으로 UI를 짜며 그 로직은 숨겨진 C# 파일에 담는다. 적어도 C++로 된 WinAPI로 쌩 노가다하거나 좆바의 JavaFX, AWT, Swing보다 500배 편리하다. 요즘은 UWP를 합친다고 새로 나온 Windows App SDK(WinUI)와 자마린에서 완전히 엎어서 새로 만든 .NET MAUI도 있다.

아쉽게도 크로스 플랫폼 시대인 지금도 WPF랑 윈폼은 윈도우만 지원하지만, 오픈 소스인 AvaloniaUI랑 Uno Platform를 이용하면 비슷하게 포팅해서 지원할 수 있다.

다만 윈도우 플랫폼에 치우쳐있어 맥os나 리눅스환경 개발에는 어려움이 따랐으나[1],

그러나 오픈 소스에 매우 호의적인 사티아 나델라가 2014년에 취임한 이후 크로스 플랫폼을 선언했고 2016년에 처음으로 .NET Core 1.0이 나온 것을 시작으로 .NET Core 3.1까지 기존의 프레임워크와 공존하다가 2020년 .NET Framework와 .NET core를 통합한 .NET 5를 발표했고 6, 7을 거쳐 현재 8까지 나왔으며 2024년에 .NET 9이 나올 예정이다.

헬조선에서는 좆바때문에 별로 안쓴다. 정작 성능은 좆바보다 훨씬 좋으며 매년 엄청나게 개선한다고 MS가 자랑할 정도다. 왜냐하면 전자정부프레임워크으로 사실상 강제했고, 좆바만 할 줄 아는 개발자들을 국비지원으로 마구 찍어냈다. 그러다보니 큰 IT기업들도 인력이 발에 채일 정도로 많은 좆바를 쓰게 되었고 결국 웹 개발에서 밀려서 그렇게 되었다. 게다가 이때는 .NET Framework만 있던 때라서 웹 서비스를 만드려면 윈도우 서버가 필요했던 시기라서 그랬던 것도 크다.

주로 제조업 공장에서 돌아가는 프로그램, 광고판, 키오스크나 게임 회사에서 많이 쓴다. 제조업, 키오스크 쪽에서는 데스크탑 프로그래밍을 위주로 해서 WPF나 윈폼을 쓰고, 게임 회사의 경우 게임 서버와 웹 서비스에 주로 사용한다. 또 유니티 때문에 스크립트 언어로 쓰기도 한다.

각주[편집]

  1. 아주 어려운 것은 아니었고 Xamarin을 만들었던 미구엘 데 이카사가 만든 Mono를 사용하면 가능했는데 실제 이걸로 만든 리눅스에서 돌아가는 프로그램이 몇 개 있다. 하지만 리처드 스톨먼이 이거 고소당할 것 같으니까 쓰지 마라 한 것도 있고 옛날 MS도 매우 안 좋게 봐서 저조했다.