저는 어떤걸 하는게 좋을까요??

안녕하세요 저는 현재 회사의 전산직에 있으면서 회사에서 사용하는 프로그램을 조금식
C# 을 이용하여 개발 하고 있습니다.
제가 유지보수하는 프로그램을 사용하는 유저의 수는 약 200명 정도 되고 있습니다.
회사 업무에 도움이 될만한 프로그램을 조금씩 만드는데
현재 C#을 만드는데 유저의 요구사항중에 웹으로 만들면 더 좋을꺼 같다.
라는 의견이 점점 계속 나오고 있습니다.
사실 윈폼이나 웹이나 거기서 거기지만 차이점이 유저들은 패드나 핸드폰을 사용하여
업무를 처리하고 싶은 맘이 있는거 같습니다.
지금도 윈도우패드 에서 프로그램을 실행하여 사용하는데 그런것처럼 모바일로도 사용가능한 프로그램을 원합니다. ex) 재고관리 프로그램

혹시 제가 웹쪽으로는 지식이 전무하다 싶이 하는데 어떠한 기술을 이용하는것이 좋을지 상담겸 질문드립니다.
회사 서버는 현재 Azure 클라우드 서버를 이용중입니다.

답변 부탁드립니다.

1 Like

도움이 될진 모르겠지만, C# 으로 윈폼을 만드실 수 있다는 가정 하에 몇가지 방법을 조언 드리면,
(최대한 웹쪽 기술은 사용하지 않는다는 조건에서~)

  1. Blazor Webassembly 로 제작하여 웹브라우져상에 어플리케이션을 구현 한다.
    : 사실 최소한으로 HTML과 Javascript가 사용 될 수 있습니다. 하지만 검증되고 안전한 방법 입니다.

  2. MAUI 로 컨버팅
    : WPF 경험이 있으실지 모르겠지만, XAML 로 기본적인 UI 구성이 가능하고 비교적 손쉽게 IOS , AOS 둘다 빌드가 가능합니다만, AOS 의 경우 APK 를 통해 파일로 사내배포 하시면 되겠지만, IOS의 경우 러닝커브가 좀 있습니다.

  3. avaloniaui.net 이나 Uno Platform 를 이용하여 XAML을 통한 웹 어플리케이션 배포
    : XAML을 이용하여 웹브라우징에서 웹어셈블리로 구현하기 좋은 방법이긴 하나 좀 … 무겁습니다.

도움이 되실지 모르겠네요. 더 좋은 방법은 아랫분께서 …(ㅋ)

2 Likes

https://www.google.com/search?q=azure+asp.net

이 말의 의미가 웹 API가 존재한다는 의미라면, 이미 반 이상이 준비되어 있다는 얘기입니다.
모바일앱이든 웹앱이든 이 API에 접속만 하면 되니까요.

그렇지 않고, 데이터 베이스만 클라우드에 있다는 의미라 해도, 걱정하실 필요는 없습니다.

웹 API 든, 데이터 베이스이든 동일하게 데이터 계층에 있는 것으로 치부할 수 있기 때문에 새로 만들 앱 구조가 크게 달라지는 것은 아닙니다.

조금 위험한 발상입니다.
C# 코드 구조로만 본다면 맞는 말이지만, 화면 구성의 편리성은 차이가 매우 크게 납니다.

사용하고 계신 윈폼은 훌륭한 디자이너 도구가 있기에 UI 작성이 매우 쉽고 간단한 편에 속합니다.
그래서 입문자들이 많이 선택하고 교육용으로도 많이 쓰이는 것입니다.

그러나, 그러한 디자인도구가 항상 사용가능한 것은 아닙니다.
일례로 닷넷의 다른 UI 앱 개발 도구인, WPF 나 MAUI, Xamarin 에는 그런 강력한 디자이너 도구가 없습니다.

닷넷이 아닌 다른 개발 플랫폼에도 “폼 디자이너” 처럼 강력한 디자인 도구는 찾기 힘듭니다.
디자이너의 존재는 코드 개발자에게는 강력한 생산성 무기가 되지만, 웹 앱을 만들 때는 이를 사용할 수 없어 생산성에서 매우 크게 차이가 납니다.

웹앱의 UI는 html 과 CSS 로 그림을 그리듯 하나 씩 만들어야 하는데, 이들을 가지고 화면을 구성한다는 게 사실 그렇게 만만한 작업은 아닙니다.

아래 그림은 css 쪽에서 유명한 짤입니다.
(awesome 의 일부가 박스 밖으로 튀어 나온 게 웃음 포인트입니다)
image

사전에 세심하게 설계된 콘트롤만 다루던 사람들은 위의 그림을 이해하기 힘들겠지만, 직접 해보시면 awesome 이 박스 밖으로 삐져 나오는 것을 막는다는 게 쉽지 않음을 아실 수 있을 것입니다.

웹앱으로 만들 계획이시라면, 반드시 html 과 css 에 대해 선행 학습을 하시는 것이 좋습니다.
Bootstrap, MudBlazor, DevExpress 등과 같은 css 프레임워크 말고, css 자체를 익혀 두는 게 훨씬 더 많이 도움이 됩니다.

html, css 를 배우게 되면, 자연히 자바스크립트에 대한 학습이 포함되어 있는데, 닷넷의 웹앱 개발 도구를 사용한다면, 자바 스크립트는 안 하셔도 무방합니다.

닷넷의 웹앱 개발 도구는 Asp.Net Core 가 있는데, 이 도구는 full-stack 도구로서, UI를 담당하는 프론트 엔드과 데이터를 담당하는 백엔드를 한 꺼번에 작성하는 구조입니다.
이 경우, 프론트 엔드는 html/css/C# 을 사용하고, 백엔드는 C#을 사용하게 됩니다.

네이티브 웹앱은 프론트 엔드에서 C# 대신에 자바 스크립트를 사용하는데, 닷넷 도구는 자바 스크립트의 역할을 C# 으로 대체할 수 있게 해줍니다. 역량에 따라 이 둘을 혼용해도 됩니다.

뿐만 아니라, 닷넷 웹앱은 하나의 프로그램이 웹앱과 웹API 기능을 동시에 제공할 수도 있습니다.
사용자가 200명 정도 되면, 이를 동시에 제공해도 서버 운영에 큰 부담은 없을 것 같습니다.

그런데 웹앱 자체가 하나의 전문적인 분야라 공부 기간은 적지 않게 필요합니다.

무엇을 작성하시든 닷넷은 충분한 도구를 제공하니, C# 기술만 있으면 요구된 기능을 구현하는 것 자체는 무리가 없습니다.

종합해보면, 선택할 수 있는 프로젝트 전략은 아래와 같을 것입니다.

  1. 기존의 윈폼 앱은 윈도우 용으로 그대로 나두고, 다른 OS 에서 사용할 앱을 MAUI로 작성한다.(웹 기술 없음)
  2. Asp.Net Core 로 웹앱만 작성해서, 사용자들에게 브라우저에서만 사용하도록 만든다. (OS 별 앱 만들지 않음)
  3. .Net 8.0 Blazor 로 웹앱을 만들어 운영하고, Blazor 컴포넌트를 MAUI에서 재사용하여, OS 별 버전으로 파생한다.(UI 코드 공유 전략)
5 Likes