(한국에 닷넷 하시는 분들이 많이 안 계신터라 반응이 있는지조차 모르겠습니다만;;;;)
마소가 팍팍 밀어주고 있는 maui 툴킷이나 우노 플랫폼 같은 경우엔 xaml이 아니라 c# 마크업이라는 커뮤니티 패키지/플러그인을 통해 마치 플러터 처럼 c# 코드만으로 뷰를 작성할 수 있습니다.
제 개인적으로 플러터를 선호하는지라, 이 c# 마크업의 사용자 반응이 어떨까 조금 살펴봤는데, 꽤나 양분된 분위기이긴 합니다.
- 기존 고수들은, xaml 좋은데 마소는 영 신경 안 써주고 있는 것 같다. 왜 자꾸 이상한 시도를 하냐? 디자이너+xaml 조합이 최고인데 괜히 삽질말고 xaml 지원에 더 신경써라.
- 뉴비들은, xaml 너무 verbose 하다. 이젠 플러터처럼 간결하고 쉽게, 한 언어로 모든 것을 정의할 때가 됐다.
.... 등등인데, 저는 뭐 c# 손놓은 이유가 xaml 때문이라 뉴비의 입장이긴 합니다.
혹시 c# 기반 클라이언트 개발하시는 분들은 어찌 생각하시는지 궁금 합니다.
저도 막 배우는 입장에 C# 마크업에 관심을 갖었으나, 커뮤니티 툴킷으로 만들어서 소개나 해두고 방치하는 수준이지 MS고 커뮤니티고 쓰는 사람이 없어요. 그래서 그냥 하기 싫은 XAML 하고 있는데요. 이건 알수록 끔찍하네요. MAUI 배우는거 때려칠까도 싶습니다.
전 솔직히, GUI는 게임엔진의 그것과 같아야한다고 생각하는데, 플러터의 경우 게임엔진이 그러는 것처럼 skia 엔진으로 UI를 별도 그래픽시스템으로 렌더링하면서도 그렇게 코드로 UI쓰는 것을 해놓은게 아쉽더라고요. 물론 구현이 어려운거긴하겠지만 기본으로 해놨으면 좋앗을 것을... 그런 위지위그 에디팅은 플러터 플로우같은 써드파티 유료구독솔루션 써야하더라고요.
MAUI도 skia엔진은 아니지만 (Uno가 skia쓰던가요?) 제발 위지위그 개발해주길 바래요(된다해도 VS용만 만들테고, 맥용VS는 버렸지만요...)
최근엔 blazor를 미는 모양새긴하지만 제원만 갖출 뿐, 그만한 커뮤니티적 노력이 부족해요. 소개만하는거에 그치지 말고 튜토리얼이랑 멋들어진 템플릿 라이브러리랑 좀 많이 내놓아야하는데요.
제가 파악한 UI 만드는 방법만 해도,
-순수 C# API로 렌더링 (당연히 아무도 안함)
-C# 마크업
-XAML (기존 윈도우개발자가 진입쉬움)
-Blazor 서버 (닷넷 웹 백엔드 개발자가 진입쉬움)
-Blazor WASM (닷넷 웹 프론트엔드 개발자가 진입쉬움 아마도)
-Blazor 하이브리드: XAML + Blazor 짬짜면.
MAUI 순혈만해도 이런데 여기에 전통적인 하이브리드 (HTML/CSS/JS 웹페이지)에,
써드파티까지 하면 Uno도 있고, Blazor를 네이티브로 렌더링하는 실험적인 오픈소스를 MS가 버린걸 fork한 써드파티도 있는데 이건 누가좀 가져가려면 가져가란식으로 무책임하고말이죠.
결과적으로 저는 까다롭지만 현상태에서 자료 많고 제대로 이룰수 있는 건 XAML이라고 생각하고 이걸 공부하고 있긴한데 괜히 하고 있다는 생각이 지배적이네요. 매몰비용을 버릴지 고민좀 해야겠어요.
위지위그는 아마도 관리하는 품이 많이 드는지라 Qt 같이 하나만 죽도록 파는 회사가 아니라면 어렵겠죠. 플러터플로우가 좋아 보이긴한데, 시장 반응이 그렇게 열광적이진 않은 것만 봐도....
조금 더 파보니 마우이는 대략 모바일/데스크탑만 되고, 웹은 또 블레이저를 써야 되는군요 ㅠㅠ 플러터처럼 모든 곳에서 다돌아가게 해주는건 또 싑지 않겠지만...... 마소라면 그 정도는 할 수 있지 않나 싶기도 하고 ㅎㅎ
암튼 한국 밖이라면 엔터프라이즈 시장에서 c#의 지위가 점점 공고해져 가는 마당이라, 마우이나 블레이저 기반으로 뭔가 시작하기에는 나쁘지 않아 보입니다만, 결국엔 리액트 네요 ㅎㄷㄷ
웹까지 하려면 Blazor가 답이긴합니다.
일단 Blazor 하이브리드 프로젝트에서 XAML로 그린 UI와 Blazor로 그린 UI 렌더링 속도를 비교하면 Blazor가 눈에띄게 느리더라고요.
전 그냥 MAUI따로 웹따로 하는걸로 생각하고 하긴해요. 어차피 프레임워크가 달라서 웹앱(웹사이트)과 모바일/데탑 클라이언트앱을 같이한다는게 어불성설같습니다. 그럴거면 그냥 옛날처럼 HTML/JS로 하고 웹페이지 래핑하는게 되려 낫겠죠.
아, 그리고 닷넷 웹은 (웹페이지는) Blazor 아니어도 되죠. 리액트나 vue써도 될일이고요.
대체 어느개발이 여태 XML 같은 (그것도 변형인 XAML) 마크업언어로 클라이언트 UI를 그린답니까 웹개발도 아니고 참...(제가 CSS 혐오론자라...)
전통적으로 XAML에 익숙한 윈폼개발자들은 어떻게 생각하는지 몰라도, 제 견해로는 한참 구시대적이라고 생각해요.
레일건.... 레일....?? 레일....!?
어쩔 수 없네요. 루비로 가시죠.
적응되면 뭐 그러려니 하고 있겠지라고 생각했는데... 그것도 개발 경험이 있는 사람들이나 그나마 이해하면서
아, 이거구나 하고 xaml 쓰고 그런다고 봅니다. 신규 진입하는 분들은 여간 힘든 게 아니네요.
싹 뜯어 고친 후 asp.net mvc를 내놓고 그 속에 마크업 언어로 razor 언어를 내놨었습니다. 지금
블레이저의 말뜻이 브라우저와 레이저가 합쳐진 합성이죠.
좀더 거슬러 올라가 c# winform 후속으로 윈폼에서 사용할 수 있는 마크업 언어를 도입했던게
xaml이고 주용도는 지금은 사장되었지만 실버라이트와 wpf였죠. xaml이 잠깐 윈도우폰에
사용되었기도 했었죠.
MS가 야심차게 xaml을 내놓으면서 winform과 web의 마크업 언어로 xaml로 대체라는 큰 목표
를 가지고 있었어요.
그게 maui일진 알 수 없지만....
한 때 MS도 애플만큼 폐쇄적이었습니다. 닷넷의 일대 변화를 이뤘던 때가 .NET Core를 내놓으
면서 이제는 닷넷에서 만든 웹사이트를 윈도우만이 아닌 리눅스 등 다른 플랫폼에서도 돌아갈
수 있을 정도의 호환성을 만들어 냈습니다.
두서 없이 이야기 하긴 했지만...
최근에 기업에 따라서 기존 윈폼 및 wpf등 윈도우 기반 시스템들을 웹으로 전환하는 곳들도 있습니
다. xaml이 나온지 내년이면 만 20년인데.... 서서히 웹으로 전환이 된다면 xaml이 설자리를 상당
부분 잃을 것으로 생각되네요.
개인적으로 wpf와 실버라이트 등 xaml만 실무에서 사용한지도 15~16년이 넘어가고 있습니다.
물론 현재는 blazor를 개발하고 있지만... 더는 wpf나 xaml을 실무에서 사용할 수 있으려나 하는
생각도 듭니다.
요즘 저 포함 주변 wpf(xaml)를 주력으로 개발자들 보면 wpf 프로젝트가 점점 줄고 있다는 얘기를
듣고 있습니다. 이제는 시대가 모바일을 포함한 완전한 웹으로의 전환의 흐름이라 xaml의 좋고
나쁨을 떠나서 존폐의 기로를 걱정해야 할 때가 서서히 오고 있는 것으로 봅니다.
ms가 하도 개발자들 뒤통수를 많이 치기 때문에 언제든 내놓은 기술이 힘을 받지 못하면 과감히
없애버리는(사장) 경우가 종종 있었어요.
암튼 xaml이 좀더 확장되었으면 좋겠지만 시대적 흐름에 좋고 싫음을 떠나 존재의 가치까지
생각할 때가 가까이에 와 있기도 합니다.
이제는 오히려 리액트 네이티브를 웹으로 쓰는게 더 시장성이 좋을 지경 아닌가 싶기도 합니다….
구체적인 댓글 감사드립니다.