UI 라이브러리를 만들기 시작했을 때 처음에는 단순히 컨트롤 모음 정도로 생각했다. 그런데 구조가 조금씩 커지면서 이상한 느낌이 들었다.
UI 코드 안에 상태 로직이 들어가고 플랫폼 API가 섞이고 테스트가 점점 어려워지고 다른 플랫폼으로 확장하기가 부담스러워졌다. 그때 처음으로 이런 생각을 했다.
UI 라이브러리에도 “경계”가 필요하지 않을까? 그래서 *.Core 분리를 고민하게 됐다. 1.
플랫폼 종속성에서 벗어나고 싶었다 WPF, WinUI, Avalonia, MAUI. 모두 XAML 기반이지만 내부 구현은 다르다.
UI 계층 안에서 다음과 같은 코드가 섞이기 시작하면 문제가 생긴다. Dispatcher 접근 DependencyProperty FrameworkElement 의존 플랫폼 전용 이벤트 이 순간부터 코드는 해당 프레임워크에 고정된다.
그래서 이렇게 나눴다. MyLibrary.Core MyLibrary.Wpf MyLibrary.Avalonia MyLibrary.Maui...
원문 링크 : UI 라이브러리를 *.Core로 분리한 이유