윈폼, WPF, 마우이, WinUI 등등
이것은 모두 ms산하에서 나오는 프로젝트 들이며 새로운 윈도우와 밀접한 관련이 있다.
그리고 크로스 플랫폼을 지원하는 것은 마우이가 유일하다. (자마린은 언급하지말자)
요즘은 클로스 플랫폼이 대세이며 지금빌드가 되고 있는 나의 프로젝트가 타겟이 윈도우 였다가 어느순간 리눅스나 안드로이드로 바뀔수 있다.
특히 키오스트 레벨에서는 더욱 그러하다..
이러한 상황에서는 웹이 그 대안이겠지만 소켓이라던가 시리얼통신이 들어간다면 얘기는 다르다.
그리고 ms는 윈도우 프로그래밍처리를 할때 주로 다뤄졌던 윈폼과 WPF는
이제 업데이트대상이 아니다. 그냥 비쥬얼베이직처럼
레거시로 남아서 쭉 가는.. 그런 포지션이 되어버렸다.
wpf로 앱을 만드는 방식은 이대로라면 사장될것이 분명하다..
그래서 이러한 상황에서 나온게 아발로니아 프로젝트이다.
처음에는 나는 모노프레임워크 처럼 윈폼을 리눅스에서 돌리듯이 wpf가 리눅스에서
돌아가나 보구나.. 이런식으로 생각했다.. 그런데 그 생각은 틀렸다.
아발로니아는 닷넷 파운데이션에서 분리하여 독립적인 아키텍쳐가 되었다.
그리고 플러터처럼 스키아 엔진으로 랜더링을 지원하고 이를 기반으로
크로스 플렛폼을 지원한다. 그래서 C#진영에서의 플러터 포지션이라고 생각한다.
wpf의 개발지식을 그대로 가져가면서 UI만 살짝 바꾸고 백단에서는 C#으로 처리된다.
C#으로 할수있는거 거의다되고 UI만 손본 느낌이다..
이게 참 매력적이다. 새롭게 언어를 안배워도 되니까..
ms는 자체적으로 DirectX가 있어서 이를 기반으로 랜더링을 지원하도록 만들었는데
이 아발로니아를 자신의 정식 프로젝트로 흡수하기에는 스키아엔진은 구글꺼라서 좀 거시기
할것이다.
그리고 마우이가 포장지는 그럴싸한데.. 이게 네이티브앱을 래핑하는 느낌으로 가기 때문에
결과적으로 실패할것으로 보인다.
하지만 아발로니아는 플러터와 같은 포지션이기 때문에 이게 뒷단에서 쭉 남아있는
자바처럼 될수도 있다.. 망하지는 않을것 같고 업데이트는 계속될 것 같다.
자바처럼 될수도 있다.. 망하지는 않을것 같고 업데이트는 계속될 것 같다.
아니 오히려 플러터는 컴퍼넌트 트리기반이라서 랜더링에 직접관여하지 않는 구조이지만
아발로니아는 로우레벨 렌더링을 직접컨트롤 할 수 있다.
그래서 C#을 배우고 GUI프로그래밍을 하려거든 나는 아발로니아를 추천한다.
물론 윈폼에 비해서 학습곡선이 높은편이기는 하지만 그 고비만 넘기면 어느정도는 쓸만하다.
메시지 드리븐과 위지윅방식의 윈폼은 UI의 유려함을 따지지 않는 프로젝트에서는
개발속도만 놓고 따지면 WPF를 압도한다. 하지만 키오스크처럼 유려한 디자인이 중요한
프로젝트에서는 그와 양상이 반대가 된다. 게다가 OS의존성까지 없에려고 한다면 더욱이
아발로니아를 사용하는것을 추천한다.
WinUI가 새로운 개발트랜드인것 처럼 꾸며지는데 물론 네이티브앱으로써 새
로운 이벤트라던가 메시징이 운영체제에서 생겨나는것에 대해서는 좋다.. 하지만..
내가 봤을때 그런거는 이미 성숙기를 지났기때문에 혁신적인 메시지가 나오기란 힘들지 않을까??
일단 어느정도 종결자가 나온것 같은 느낌이긴 하다.. 비슷한 포지션으로 우노플랫폼이 있는데..
이거는 모바일중심으로 보여지고 xaml이 상대적으로 덜성숙해 보이고 제한적인 커스터 마이징에 메서드체이닝으로 ui빌드에 상태관리 까지 있는것으로 보아 진짜로 플러터랑 비벼야할것 같다..
뭐 어쨋든.. 기술은 계속 발전하니까
또 어떻게 변할지는 아무도 모르고 AI가 완전히 흡수해서 GUI프로그래밍 자체가
필요 없어질 수 도 있겠지만..
댓글 없음:
댓글 쓰기