안녕하세요 c# 시작하였습니다

안녕하세요

작은 회사에서 c++, MFC만 주구장창 하다가
뭐 백엔드 만들일이 있어서 오래전에 했던 php로 만들기도 하고(라라벨도 아닌 그냥 쌩php)
그야말로 레거시의 화신처럼 일하고 있었는데요

사실 모듈만 제공하는 입장에서는 MFC도 뭐 그리 크게 나쁘지는 않습니다만,
그런데 회사 망하면 뭔가 제자신이 큰일이 나겠더라구여 ㅎㅎ
그래서 회사 내 새로운 프로젝트에 c#같은 뭔가 세련된 언어를 좀 사용하고 싶어서 이제 공부를 시작했습니다

새로 하려는 프로젝트는 아아아아주 오래전 vb6으로 만들어진 윈도우 응용프로그램을 새롭게 만드는 것인데
그나마 조금 살짝 할줄 아는 html+javascript (바닐라만 가능합니다;; react같은거는 역시 공부해야하네요)같은 경험으로
일렉트론으로 만들어볼까했는데 멀티쓰레드 안되고 MFC로 만들어놓은 dll을 로드하기에 뭔가 애매한 느낌이고 뭐 아무튼 느낌이 좋지는 않아서 C#으로 개발하려고 마음먹었습니다.

그러면 윈폼이나 wpf인데 xaml 에 대해서는 하나도 몰라서 ui를 html+javascript로 구성하는 방법은 어떻게 없는지 찾아보다보니 닷넷데브까지 흘러들어오게 되었네요

  • MAUI + Blazor Hybrid
    요거를 딱 기본 프로젝트 열고 빌드해봤는데,

어 이럴거면 그냥 webview2 컨트롤 창 가득 띄워서 로컬 html,js 파일 열면 되는거 아닌지…해서
그냥 띄우고 AddHostObjectToScript 요걸로 적당히 소스짜니까

webview2 컨트롤에서 열린 로컬 html 에서 자바스크립트로 c#내부 함수 호출도 너무 간단하게 되길래

프로그램 기능 동작은 c#에서 처리하고 UI는 react나 vue svelt같은걸로 로컬 html만들고 그걸 webview2에 띄우면 되는거 아닌지 하는 고민이 생겼습니다.
(제대로 작동할지는 안해봐서 모르겠습니다 ㅎㅎ chatGPT님은 가능하다고 얘기해주긴했습니다만…)

장점은 webview2면 고객이 설치할때 에버그린 버전으로 런타임을 구성할 수 있어서 아주 작은 용량으로 배포가 가능하겠더라구여… 놀라운 용량…

즉 요약하자면 주요기능은 c#에서 동작하고, UI는 웹(html+자바스크립트)으로 하는 윈도우 응용 프로그램을 만드려고 합니다

  1. 일렉트론
  2. MAUI + Blazor Hybrid
  3. C# 윈폼프로젝트에 Webview2컨트롤을 가득 띄워서 프론트엔드로 빌드한 파일들 로드하기

2번이 제일 나을거 같긴한데 기술적인 이유보다 그외의 이유가 더 고민스러운 이유이긴합니다…
곧 신입 인력을 충원할 예정인데, c# 블레이저보다 react 개발자를 구하기가 더 쉬울거 같기도 하고, 또 ms store기반으로 설치되는걸 회사 윗분들이 어색해 할것 같은 느낌이었습니다…(MSIX)

일단 3번 한번 맛보고 어떤 문제 없는지 나중에 보고드리도록 하겠습니다
디자인은 또 어떻게 해야할지 모르겠네요 (피그마 일단 회원가입했습니다 ㅎㅎ)

6개의 좋아요

Blazor 사용에 최적화된 커리어를 보유하고 계시군요. 너무 부럽습니다.

제 생각엔 블레이저만 해도 될 것 같습니다.
아래 글이 유사한 아이디어를 구현하기 위한 취지로 작성되었습니다.

4개의 좋아요

WPF를 사용하는 Blazor 하이브리드도 간편합니다. 윈도에서만 사용하실 계획이면 요것도 좋은 방법이라 생각합니다.

+생각해보니 윈폼에도 Blazor 하이브리드가 되는군요…

3개의 좋아요