.NET생태계

왱구·2024년 11월 22일

C#

목록 보기
2/6

MS는 고민했다. JVM(Java Virtual Machine)같이 자바로 코드를 짜면 모든 OS에서 동작 하듯이 크로스플랫폼을 하기 위한것이 필요했다.
크로스플랫폼이란 컴퓨터 프로그램, 운영 체제, 컴퓨터 언어, 프로그래밍 언어, 컴퓨터 소프트웨어 등이 여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것.

그래서 탄생한것이 바로 크로스플랫폼을 위한 .NET프레임워크이다.
C#, C++, F#, Q#, 델파이닷넷 등 .NET프레임워크에서 동작이 가능하다.

그런데 이러한 .NET의 단점이 있었으니 MS에서 만들어서 window에서 잘 동작하는 window특화 프레임워크였다. 애플 등에서는 작동하지 않았다.

아이러니하지않은가? .NET프레임워크는 크로스플랫폼을 위한 프레임워크인데 다른os에서는 동작하지 않았다. MS에서는 전략을 바꿔 크로스플랫폼에 초점을 맞췄고 4.8.1까지 제작한 .NET프레임워크라는 이름을 버리고 .NET으로 개명을 했다. 이는 현재 VS의 프레임워크 버전 선택창에서도 확인이 가능하다.

4.6버전부터 기존의 .NET프레임워크와 .NET코어를 병행하여 만들었다. .NET코어는 다른 OS에서 호환이 되는것에 초점을 맞춘 나머지 기존 .NET프레임워크의 기능이 많이 줄었다. 그런데 .NET프레임워크기능을 전부 탑재하고 .NET코어의 기술까지 계승한 .NET 5가 개발되었다. 이 이후는 우리가 알고있는 그 .NET이다

.NET은 기술싸움이다. 무슨이야기냐면 .NET생태계는 상당히 독특한데 Java로 개발한다고 했을때 스프링이 먼저 떠오를거다. 백엔드도 스프링 프론트도 스프링 뭘 해도 스프링이다. Go도 마찬가지다. fiber나 Gin같은 웹프레임워크를 사용하지만 main.go에서 임포트해서 사용하여 Go안에서 끝이난다.
Go나 Java나 Python 대부분 오픈소스이기 때문에 여러사람들이 기여하다보니 강제성을 구축하기가 힘들다는 뜻이다.

왜 이런 이야기를 하냐면, .NET은(C#포함) 오픈소스와는 다르게 MS에서 만든 플랫폼이다. C#으로 백엔드 하려면 뭐해야해요? 하면 가능한 기술들이 엄청많다. .NET으로 ui하려면 뭐해야해요? 하면 윈폼이요 wpf요 등등 수많은 기술들로 구현이 가능하다.

따라서, .NET생태계에 속해있는 기술을 많이 알고있으면 유리하다는 의미가 된다.

profile
늦깎이 애아빠 개발지망생

0개의 댓글