C#
개요
2000년 7월 마이크로소프트가 C#, VB.NET 등 모든 닷넷 프레임워크 기반 언어를 Windows, Linux, Mac 기반에서 돌아가도록 만든 오픈소스 프레임워크이다.에서 개발된 객체 지향 프로그래밍 언어. '씨샵' 또는 '씨샾'이라고 읽는다. 1983년에 등장한 C++와 1995년에 등장한 Java에서 강한 영향을 받았다.
Java라는 언어 자체가 매력적인 언어이고 MS 역시 이를 생각하여, .NET Framework에서 C#이라는 이름으로 새로운 언어를 발표한다.
Java가 Java Virtual Machine이 필요하듯이 C#은 .NET Framework가 필요하다.
호환성 및 범용성
언어적으로는 Java와 유사하지만, MS라는 특정 플랫폼에 강하게 묶여있다는 특성으로 애플의 Objective-C와 자주 비교가 된다.
유니티 엔진의 기본 개발 언어이기도 하다.
Xamarin Framework
C#으로 안드로이드와 iOS용 앱, macOS용 Cocoa 기반 프로그램을 개발할 수 있도록 해 주는 프레임워크
C#과 .NET Framework를 리눅스에서도 쓸 수 있게 해주는 Mono 프로젝트에서 시작된 프레임워크이다.
new Label() 하면 Android iOS
WindowsPhoneWPF UWP macOS Linux(GTK#) Tizen 으로 모두 번역해준다.숨차다다양한 nuget 패키지들과 함께 이용하면 90% 이상의 코드를 공유할 수 있으며 10%이하의 OS 별 코드를 작성하여 여러 OS 용 네이티브 앱 개발이 가능하다.
게임의 경우 기존 네이티브에서 제공되는 UI를 사용하는 경우가 거의 없고, 아예 해당 게임에 맞는 UI 를 바닥부터 개발하는것이 대부분이기에 유니티 같은 Cross-Platform 개발이 유리하지만, 게임 외의 앱들은 네이티브에서 제공하는 UI를 사용해야 하기에 오히려 작업이 늘어나는 경우도 있다.
버튼 하나 하나 마다 이렇게 C# style, Android style, iOS style 을 왔다갔다 하면서 작업해야한다.
플랫폼 의존도가 적고 커스텀 UI의 중요도가 적은 곳에 적합하며(이름부터가 폼 형식에 적합하다는 의미를 갖고 있다) 반대로 플랫폼 고유 API 지향적이며 디자인 된 UI를 중시하는 경우(사이트에 그림으로 예시하는 것들은 것은 미디어 플레이어, 게임, 지도 앱)에는 Xamarin Native(Android, iOS)를 권장하고 있다.
모노 프로젝트
윈도우 이외의 운영체제에서도 C# 사용이 가능하도록 하기 위한 프로젝트
모노 덕분에 Obj-C 보다는 범용성이 훨씬 높다.
.NET Core
마이크로소프트가 C#, VB.NET 등 모든 닷넷 프레임워크 기반 언어를 Windows, Linux, Mac 기반에서 돌아가도록 만든 오픈소스 프레임워크이다.
통합 개발 환경(IDE)
비주얼 스튜디오
완성도와 점유율
현재는 C# 언어의 점유율도 높은 편이고, 언어의 완성도는 현존하는 언어 중 가장 괜찮다는 평이 많다.
컴포넌트 개발 환경이 우수하다. 엄청난 생산성을 자랑하던 델파이와 개발환경이 거의 유사하기 때문에 델파이의 개발자들은 거의 C# 개발자로 넘어갔다.
GUI를 만들 때도 C#(WPF)이 월등히 편리하다. 윈도우즈 개발자들이 UI 작업 이야기 할 때 뭔가 이슈가 있다면 C# 개발자들은 그걸 아주 쉽게 생각한다(구현도 마찬가지).
언어적 특성으로 따지면 경쟁관계에 있는 언어는 Java라고 할 수 있는데, 처음 만들어질 때부터 Java를 많이 참고했으며 Java의 태생적 문제를 모두 해결하고 유용한 기능을 더한 형태이기 때문에 C#이 월등하다고 볼 수 있다.
하지만 이것이 시장성으로 이어지지는 않고 있는데, 많은 솔루션들이 웹으로 컨버전되고 있는 시대적 특성 때문에 웹이 아닌 데스크톱 애플리케이션 분야의 시장이 줄어들고 있기 때문이다.
기타
ASP.NET
C#도 ASP.NET이라는 웹 언어가 있기는 하지만, JSP나 PHP 등에 크게 밀리는 상황으로 점유율이 매우 낮다.
웹 애플리케이션 개발용으로 Java의 JSP에 대응되는 것으로, 기본적인 사항은 거의 비슷하다.
기업에서 주로 쓰고 있으나,
비싼윈도우 서버(인터넷 정보 서비스)를 비롯한 각종 라이선스 비용 문제 등으로 개인 웹호스팅 쪽은 크게 활성화되지 못했다.2014년의 .NET 오픈소스화 이후, macOS와 리눅스에서도 돌아가는 오픈소스 구현체인 ASP.NET Core가 등장했지만...그리 흥하지는 못하고 있다.
댓글