feat: initialize WinUI 3 WebView migration
This commit is contained in:
65
docs/MIGRATION.md
Normal file
65
docs/MIGRATION.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# MBN_STOCK_N 마이그레이션 현황
|
||||
|
||||
## 원본 기준선
|
||||
|
||||
원본은 .NET Framework 4.8 / C# 7.3 기반 WinForms 애플리케이션입니다. 약 38,000줄의 C# 코드와 다음 요소로 구성되어 있습니다.
|
||||
|
||||
- 대형 `MainForm` 및 7개 WinForms UserControl
|
||||
- 보조 폼 7개
|
||||
- Tornado/K3D 장면 처리 클래스 35개
|
||||
- Oracle 및 MariaDB SQL/데이터 요청 계층
|
||||
- FarPoint Spread 4 플레이리스트/그리드
|
||||
|
||||
원본 작업 트리의 `MainForm.cs`와 `RES/MmoneyCoder.ini`에는 커밋되지 않은 변경이 있습니다. 원본 저장소는 그대로 보존했으며, 새 프로젝트에는 비밀값이 포함된 INI를 복사하지 않았습니다.
|
||||
|
||||
## 적용 완료
|
||||
|
||||
| 기존 구현 | 새 구현 |
|
||||
|---|---|
|
||||
| WinForms MainForm | WinUI 3 `MainWindow` + 로컬 WebView2 UI |
|
||||
| FarPoint `FpSpread` 플레이리스트 | HTML table + 선택/드래그 정렬/이동/삭제 |
|
||||
| 플레이리스트 임시 저장 | WebView2 사용자 데이터 영역의 `localStorage` |
|
||||
| WinForms 단축키 | Web UI `F2` / `F8` / `Esc` 처리 |
|
||||
| 직접 DBManager 호출 | Core의 `IDataQueryExecutor` 경계 |
|
||||
| `Data/Request` SQL 정의 | .NET 8 Core 프로젝트로 71개 이관 |
|
||||
| AnyCPU/x86 혼재 | 솔루션 및 게시 프로필 x64 단일화 |
|
||||
| 상대 경로 Web 파일 | MSIX Content 및 안전한 가상 호스트 매핑 |
|
||||
|
||||
WebView는 `https://app.mbn.local` 가상 호스트로 패키지 내부 파일만 제공합니다. 외부 탐색은 WebView 안에서 차단하고 기본 브라우저로 넘기며, 개발자 도구와 기본 컨텍스트 메뉴는 디버거가 연결된 경우에만 활성화합니다.
|
||||
|
||||
## 다음 구현 경계
|
||||
|
||||
### 데이터베이스
|
||||
|
||||
- `IDataQueryExecutor`를 구현하는 Oracle/MariaDB 어댑터
|
||||
- .NET 8 호환 공급자 선정 및 연결 검증
|
||||
- 기존 문자열 조합 SQL의 매개변수화
|
||||
- 비동기 실행, 취소, 타임아웃, 재연결 정책
|
||||
- Credential Locker/DPAPI 등 승인된 비밀 저장 방식
|
||||
|
||||
### Tornado/K3D
|
||||
|
||||
- 설치된 x64 COM 타입 라이브러리에서 재현 가능한 Interop 생성
|
||||
- `IPlayoutEngine` 경계로 COM 형식 격리
|
||||
- STA 호출 직렬화와 프로세스 재연결
|
||||
- MSIX 환경의 COM 활성화 및 벤더 재배포 조건 확인
|
||||
- 기존 `StartsWith("Tornado2")` 프로세스 탐지 변경 반영
|
||||
|
||||
### 화면 기능
|
||||
|
||||
- Oracle 플레이리스트 영구 저장/불러오기
|
||||
- 10개 업무 탭의 실제 데이터 바인딩
|
||||
- 테마, 전문가, VI, 비교, 수동 그래프 편집기
|
||||
- 35개 장면 빌더의 단계별 포팅
|
||||
- 실제 Preview 이미지 및 씬/영상 자산 연결
|
||||
|
||||
## 의도적으로 제외한 항목
|
||||
|
||||
- WinForms `*.Designer.cs`, `*.resx`
|
||||
- FarPoint DLL과 라이선스 파일
|
||||
- `Interop.K3DAsyncEngineLib.dll` 복사본
|
||||
- 원본 `App.config` 바인딩 리디렉션
|
||||
- 실제 DB 주소, 계정, 암호가 들어 있는 INI
|
||||
- Git에서 관리되지 않던 약 212MB의 Tornado 컷/영상 자산
|
||||
|
||||
이 항목들은 WinUI/WebView/MSIX 경계에 맞춰 재구현하거나, 정식 라이선스 및 운영 자산 위치가 확인된 뒤 어댑터 형태로 연결합니다.
|
||||
Reference in New Issue
Block a user