요즘 윈도우 응용프로그램(데스크탑 앱) 트렌드는 어떤지 궁금합니다.

안녕하세요
윈폼으로도 토이프로젝트 이것저것 만들어보기도하고 파이썬으로 pyqt를 이용해서도 만들어보기도 했는데 개발을 해보면서 윈도우상에서 응용프로그램을 개발할때 요즘에는 어떤 것을 사용해서 개발하는지 다른 분들의 생각이 궁금합니다!
(뭐 언어로는 C#, 프레임워크는 winform or WPF 등등…)

3개의 좋아요

electron 이 많이 뜨고있다고 들었지만 아무래도 wpf 가 유지보수성에서 더 좋지 않을까 합니다

5개의 좋아요

닷넷 데스크톱 페이지가 MS의 관심을 유추할 수 있겠죠…
크로스플랫폼 기반인 MAUI, Blazor 하이브리드를 우선 강조하는 것 같습니다.
최신 윈도우 어플리케이션은 WinAppSDK 기반의 WinUI 입니다.
셋다 MS가 관심을 유도하는 전략이고 뭐가 살아남을지는 아직 모르죠
Windows Forms랑 WPF는 레거시로 하이퍼링크만 남아있네요 ㅎㅎ
개인적으로 제로베이스에서 새로 시작하려는 가정하에 기술적 도전과 희소성을 원하면 MAUI or WinUI
검증 끝난 풍부한 레퍼런스의 레거시중 택하려면 이왕이면 윈폼보단 WPF가 좋을 듯 합니다.

7개의 좋아요

사견이 있어 하나 남기자면, 개인적으로 Winform과 WPF는 레거시는 아니라고 생각합니다.

오래된 기술인 것은 맞지만, 아직까지 신규버전이 나오고 있고 특히 .NET 7에서 winform은 오히려 지원을 강화했습니다.

저는 지원이 중단된 기술을 레거시라고 쓰고 있기 때문에, 지원이 계속되고 있는 기술은 레거시는 아닌 것 같습니다.

혹 다른 분들이 보시기에 오해가 없으시길 마음에 남깁니다.

7개의 좋아요

내가 하려는 업무를 간단하게 자동화 할 수 있는 거라면 데스크톱 앱만큼 좋은 것도 없는 것 같습니다.

일상생활속에서 반복적으로 어떤 것을 하는 게 있다면 그런 것을 데스크톱앱으로 자동화해둔다면 시간을 절약할 수 있을 것 같습니다.

물론 그게 확장성 있게 개발해야한다면 뷰와 로직을 분리하면서 데스크탑 앱을 만든 뒤, 나중에 웹으로 넘어가면서 로직을 붙여주면 될 것 같네요.

웹을 쓰는 가장 큰 이유는 설치없이 URL 주소로 접근할 수 있기 때문이고, 클라우드까지 붙어서 Scale out 까지 추가되면 좋을 거 같네요.

저 같은 경우에는 사내에서 비공개적으로 모니터링 프로그램을 만들었던 경험이 있고, 혼자 가지고 놀기 용으로 게임에서 하는 행위들을 자동화 하는 일을 하고 있습니다. Notion하고 Google Spread Sheet 에 데이터를 업데이트하는 WPF 프로그램입니다.

또한 응용프로그램의 최고의 장점은, 내 PC의 모든 리소스를 끌어다 쓸 수 있다는 점입니다.

웹은 여러 사람이 접속하는 것을 신경써야하기 때문에 서비스규모에 따라 다르겠지만 일반적으로 웹서버자체에서 멀티스레딩은 잘 안하는 것으로 알고 있습니다.

HTTP Connection 하나 자체가 곧 비동기 스레드로 동작하기 때문에 기본적으로 스레드 자체가 많기도 하구요.

데스크탑 앱을 통해 그동안 사내에 쌓인 데이터를 정리할 일이 있다면 간단하게 프로토타이핑 용도로도 적합해 보이네요.

10개의 좋아요

Microsoft Store에 올려서 일반인이 사용하는 데스크톱 앱을 만들 경우 WinUI 3이 최신의 기술이므로 이것으로 시작하는 것이 좋습니다. WinUI 3은 WinUI 2(UWP 기반)에서 다음 세대인 Windows App SDK 기반으로 윈도우10 및 윈도우11에 최적화 되어 있습니다. (윈도10 19041 이하에서 동작 하지 않습니다.)

일반인 대상이 아닌 경우 (보통 회사에서는 왕왕 존재합니다) 그냥 WPF를 하는 것이 편한 것 같습니다. 고객 회사에서 데스크톱 앱의 경우 최신 기술을 특별히 원하지 않고 WinUI 3의 경우 하위호환성의 문제도 있기 때문입니다.

WPF의 경우 .NET Core(이후 .NET)에서도 Microsoft에서 꾸준히 관리가 되고 있으며 심지어 Windows Forms도 잘 관리되고 있습니다. 그것을 선택해도 괜찮습니다. 특히 WPF의 경우 XAML의 기반이 UWP나 WinUI 3으로 계속 사용(완전히 동일한 것은 아닙니다)되기 때문에 한번 익히면 MAUI나 Uno, Avalonia로 어느정도 쉽게 넘어갈 수 있는 장점이 있습니다.

마지막으로… 언어는 당연히 C# 이죠 ^^

6개의 좋아요

제가 생각하는 트렌드를 한번 말씀드려 보겠습니다.

“윈도우 응용프로그램” 이라는 개념이 상당히 옛 스러워 졌다고 생각합니다.

WPF 의 경우 현재도 개발이 진행되고 있지만, 현재 나오고 있는 경쟁 프레임워크를 생각했을때는 저는 회의적입니다.

현재의 트렌드는 다른 운영체제 및 다른 기기(PC 외)에서도 적용가능한 프레임워크가 등장하고 했으며 오픈소스로 개발되고 있습니다.

물론 WPF 같은 경우도 .Net Foundation 에서 오픈소스로 풀려서 저도 해당 소스를 많이 보고 있지만 다른 플랫폼들도 경쟁력을 가지고 있습니다.

저는 .Net 만 한정적으로 보자면 모바일쪽은 MAUI, 데스크탑쪽은 Avalonia 가 WPF를 향후 대체하지 않을까 생각을 합니다.

하지만 Flutter, Electron 등 다른 언어를 기반으로 하는 프레임워크도 상당히 경쟁력을 가지고 있습니다.

5개의 좋아요

일렉트론은 처음들어봤는데 디스코드 PC버전을 일렉트론으로 만들었네요
새로운거 하나 알아갑니다

1개의 좋아요

우선 답변 감사드립니다.
제로베이스나 다름없긴하지만, MAUI or WinUI,도 끌리고 WPF도 놓치긴 아쉽고 ㅎㅎ 어렵네요

1개의 좋아요

제가 생각하는부분을 정확하게 짚어주셨네요!
저도 제가 하려는 업무를 간단하게 자동화하는거부터 시작해서 점점 관심을 갖게 된 케이스인데,
개발하면서 디자인도 좀 멋지게 만들어보고 싶고 내부 아키텍쳐도 보기좋게 하고싶은데 기왕이면
트렌드에 맞춰서 해보고싶은 마음이 있어서 질문하게되었네요 ㅎㅎ

2개의 좋아요

ㅎㅎ 답변감사드립니다
언어는 C#이죠!
WPF, WinUI 3 모두 한번 체험을 해봐야겠네요

1개의 좋아요

@biahn 여담으로 Electorn 공식 홈페이지에 가보면 더 많은 프로그램을 확인하실 수 있습니다!

https://www.electronjs.org/apps

  • Discord
  • GitHub Desktop
  • Figma
  • Notion
  • Obsidian
  • Postman
  • Skype
  • Twitch
  • WhatsApp
  • Visual Studio Code

등등…

1개의 좋아요

답변 감사드립니다!
역시 요즘 트렌드는 참 다양한 프레임워크들이 많은것 같습니다
마음 같아선 다 해보고싶은데 우선 대상이 윈도우라면 아무래도 다른분들이 답변주신것처럼
WPF나 MAUI, WinUI 3 이쪽을 좀 알아보는게 좋아보이네요 ㅎㅎ

1개의 좋아요