“WinForms” 태그의 글
“WinForms” 태그가 붙은 글 14건을 최신순으로 정리했습니다.
-
「응답 없음」의 정체 ── Windows가 앱의 행을 판단하는 방식과 멈추지 않는 설계
Windows의 「응답 없음」은 창이 5초 동안 메시지를 꺼내지 않았다고 OS가 판단해 고스트 창으로 바꾸는 메커니즘입니다. 그 판단의 내부, 행의 고전적 원인, 무거운 작업을 UI 스레드에서 떼어 내는 설계, 행 조사 절차를 정리합니다.
-
클립보드와 드래그 앤 드롭의 구조 ── 업무 앱에서 OLE 데이터 전송을 올바르게 다루기
Excel 표를 붙여 넣으면 서식이 무너지고, 원본 앱을 닫으면 붙여 넣을 수 없게 되는 일── 둘 다 클립보드가 같은 내용을 여러 형식으로 한꺼번에 두기 때문입니다. 표준 형식, 지연 렌더링, OLE 드래그 앤 드롭, 클립보드 기록과 클라우드 동기 정책을 정리합니다.
-
Windows 앱 접근성 입문 ── UI Automation과 합리적 배려 요구에 대비하기
2024년 4월 시행된 개정 장애인차별해소법을 배경으로, 스크린 리더가 Windows 앱을 읽는 메커니즘인 UI Automation을 중심으로 WinForms/WPF의 이름 붙이기, 키보드 조작, 대비, 검증 도구를 실무 관점에서 정리합니다.
-
WinForms / WPF 앱의 CI/CD 실전 ── GitHub Actions로 빌드부터 서명·배포까지 자동화하기
WinForms / WPF 앱의 CI/CD를 GitHub Actions로 구성하는 실무 가이드입니다. windows-latest에서의 빌드+테스트 최소 YAML, 태그 기반 버전 번호 부여, signtool을 이용한 서명 적용, MSI/MSIX/ClickOnce/xcopy별 CI ...
-
Windows 앱의 작업 트레이 상주와 토스트 알림 ── NotifyIcon의 함정과 AppNotification 선택 기준
업무용 Windows 앱을 작업 트레이(알림 영역)에 상주시키고 토스트 알림으로 사용자에게 알리는 구현을 정리합니다. NotifyIcon의 올바른 사용법과 「닫으면 트레이로」설계, 탐색기 재시작 시 재등록, 토스트 API 3종(Windows App SDK AppNotificatio...
-
WinForms/WPF 앱 다국어화 ── resx·새틀라이트 어셈블리·컬처 전환 실무
Windows 데스크톱 앱의 다국어화를 CurrentCulture와 CurrentUICulture의 차이, resx와 새틀라이트 어셈블리를 통한 리소스 구조, WinForms의 Localizable 속성, WPF에서의 현실적인 방식 선택, 실행 중 언어 전환, 레이아웃·서식·RTL...
-
Windows 업무 앱의 인쇄와 PDF 출력 - System.Drawing.Printing / WPF / 보고서 라이브러리 구분 사용법
PrintDocument를 이용한 WinForms 인쇄, WPF의 FlowDocument/FixedDocument 인쇄, PDF 출력의 선택지를 요구사항별 판단표로 정리합니다. 페이지 나눔 제어나 DPI 차이 같은 구현의 함정, Windows 서비스에서의 인쇄, 기본 프린터 의존의...
-
WinForms/WPF 앱에 Entra ID 인증 넣기 ── MSAL.NET과 WAM 브로커 실무 구성
WinForms/WPF 데스크톱 앱에 Entra ID(구 Azure AD) 인증을 도입하는 절차를 실무 관점에서 정리합니다. 퍼블릭 클라이언트의 개념, ROPC 폐지 현황, 앱 등록, MSAL.NET의 AcquireTokenSilent 패턴, WAM 브로커, 토큰 캐시 영속화, 도...
-
Windows 데스크톱 앱의 UI 자동 테스트 ── UI Automation의 원리와 FlaUI로 만드는 잘 깨지지 않는 테스트
WinForms/WPF 앱의 UI 자동 테스트를 Windows UI Automation의 원리(트리·AutomationId·컨트롤 패턴)부터 정리합니다. FlaUI를 이용한 최소 구현, WinAppDriver의 현재 상황, AutomationId 설계와 조건 대기로 잘 깨지지 않게...
-
WinForms의 고DPI 대응 - 4K 모니터에서 흐려지거나 깨지는 원인과 현실적인 대처법
4K 모니터나 150% 스케일링 환경에서 WinForms 앱이 흐려지거나 레이아웃이 깨지는 원인을 DPI 가상화와 DPI 인식 모드(System Aware / Per-Monitor V2) 관점에서 정리합니다. .NET과 .NET Framework 각각의 설정 방법, AutoScal...
-
Windows 앱 외주·수탁 개발을 의뢰하기 전에 정리해야 할 것
Windows 앱의 외주·수탁 개발을 의뢰하기 전에, 기존 소프트웨어 개수, 장치 연계, COM/ActiveX, 배포·업데이트, 보수와 관련해 정리해야 할 포인트를 설명합니다.
-
Windows Forms, WPF, WinUI 중 어느 것으로 할까 - 신규 개발, 기존 자산, 배포, UI 표현의 판단표
Windows 데스크톱 앱을 C#/.NET으로 새로 만들 때 WinForms·WPF·WinUI 중 무엇을 고를지, 신규 개발과 기존 자산, 배포 방식, UI 표현력, 팀 문화의 다섯 축으로 비교한 한 장짜리 판단표를 제시하여 독자가 자기 프로젝트에 가장 마찰이 적은 길을 빠르게 결...
-
Generic Host / BackgroundService를 데스크톱 앱에 가지고 들어오는 이유 - 기동·수명·graceful shutdown의 정리가 꽤 편해진다
Windows 도구나 상주 앱에서 기동, 정기 처리, 종료 처리, 로그, 설정, DI를 정리하기 위해 Generic Host와 BackgroundService를 어떻게 활용할지 정리합니다.
-
WPF / WinForms의 async/await와 UI 스레드를 한 장으로 정리 - await 후의 돌아갈 곳, Dispatcher, ConfigureAwait, .Result / .Wait()의 막힘 포인트
WPF/WinForms에서 async/await가 헷갈리는 핵심—await 후의 복귀 스레드, Dispatcher와 Invoke의 사용 구분, ConfigureAwait(false)의 진짜 의미, .Result/.Wait()로 화면이 굳는 이유까지 한 장으로 정리합니다.