WPF MVU 라이브러리(feat. Delta)

안녕하세요, 이광석입니다.

예전에 준비해두었던 저의 개인 프로젝트
Delta라는 라이브러리를 이제야 소개드리게 되었습니다.

육아와 일에 치여 어영부영 멈춰 있었는데,
이번에는 slog를 통해 조금씩이라도 진행 상황을 공유해보려 합니다.


WPF 개발에서는 XAML과 MVVM이 거의 필수처럼 따라붙습니다.
하지만 최근에는 화면을 만들 때 습관적으로 MVP 정도의 구조만 잡고,
2페이지 정도 되는 화면에도 ‘나중에 뭔가 더 붙겠지…’ 생각하며
괜히 큰 설계부터 시작하는 버릇이 생겼습니다.


Delta는 WPF 환경에서
MVU(Model-View-Update) 패턴을 간결하고 직관적으로 구현할 수 있게 도와주는 라이브러리입니다.

React의 함수형 상태 관리(Hooks) 개념에 영감을 받아,
useState를 통한 상태 관리와
Fluent 스타일(체이닝)로 UI를 선언형으로 정의할 수 있도록 만들었습니다.

이를 통해 복잡한 UI 로직도
단순하고 명확하게 표현할 수 있으며,
필요한 업데이트를 자동으로 최적화합니다.

간단한 예시는 다음과 같습니다:

// 예시코드
using Delta;

public class CounterComponent : Component
{
    protected override IVisual Render()
    {
        var (count, setCount) = useState(0);

        return HStack(
                        Text($"Count: {count}"),
                        Button("Increment")
                            .OnClick(() => setCount(count + 1)),
                        Button("Decrement")
                            .OnClick(() => setCount(count - 1))
                    );
    }
}

GitHUB URL : GitHub - lukewire129/Delta: WPF C# MVU

8개의 좋아요

정말 멋진 프로젝트군요!! 기대됩니다.

개인적으로는 Comet 등장 이후 빠르게 MVU가 도입될걸로 기대했는데…
더 기다리는 중입니다.

MAUI 처음 작업할 때 MVU로 한참 시끄러웠었죠.

2개의 좋아요