WPF Prism vs CommunityToolkit

안녕하세요 가끔식 WPF 프로젝트를 하는 사람입니다.
WPF는 Prism 을 주로 쓰는데 처음에는 많이 헤맸지만
이제 어느정도 다룰줄 알고 거의 이것만을 쓰다가
닷넷데브에서 Community Toolkit 을 알게됐습니다.
그전에도 검색하다가 보고 뭔가 했는데 비슷한
Fw인가 본데 ? 우열을 가리기 힘들지도 모르지만
주로 C/T 를 많이쓰나요?? 왠지 Prism 큰 언급이 없는것 같기도 하네요
Prism 을 쓸때 View관리가 편리하고 life cycle 관리가 아무래도 wpf에
최적화된 fw 라 개념을 알면 편리했는데 반면 C/T 가 다른 장점이 있을까 궁금하네요?
C/T를 대략적으로 봤을때 IOC 성향이 강한 FW같은데 Prism 의 Resion 같은것도 있나요?

5개의 좋아요

개인적으로

Prism.NET Community Toolkit 의 비교 자체는 맞지 않다고 생각 합니다.

그 이유는

.NET Community Toolkit 라이브러리는 WPF에서 MVVM 설계를 위한 MVVM 전용 라이브러리 이며,

Prism은 CAB(Composite UI Application Block) 설계를 목표를 한 하나의 작은 프레임워크에 해당 됩니다.

그 만큼 Prism은 엄청 많은 기능들은 지원하고 있고, MVVM 관련 기능도 Prism의 많은 기능 중 하나로 제공 되는 부분 입니다.

따라서 다음과 같은 프로젝트 성격에 적합하다고 판단 됩니다.

.NET Community Toolkit :

중.소 규모의 프로젝트로 화면이 많지 않고 화면 내 UI가 복잡하지 않은 프로젝트에서 MVVM 아키텍처 설계로 개발되는 프로젝트에 딱 맞 습니다.

Prism :

Prism 자체는 크고 무겁습니다.
때문에 대규모의 프로젝트로 화면이 다소 복잡하거나, 모듈 형식으로 관리되서 UI나 기능이 차별화 되서 패키징 되어야 하는 프로젝트 (스탠다드, 프로페셔널, 엔터프라이즈 버전 같이 등급에 따라 UI가 다르고 기능이 다른) 성격에 어울립니다.


.NET Community Toolkit
뷰모델 간 데이터 전달 및 처리를 위한 메신저
의존성 주입 처리를 위한 IoC지원
편리한 코드 제너레이트 기능 (NotifyPropertyChanged 속성 자동 구현 등) 등
MVVM 아키텍처 설계에 꼭 필요하고 편리한 기능 위주로 지원 되고 있고,
(때문에 Prism의 Regions 같은 기능은 없습니다.)

Prism
위 기능을 모두 포함하고 더불어 CAB 구조 형태로 개발 가능하도록 더 많은 기능을 지원하고 있습니다.

12개의 좋아요

첨언을 더 드리자면, 섞어서 사용할 수도 있습니다.

Prism은 모르겠으나 CommunityToolkit의 소스 제네레이터를 이용해 코드가 간소화되는 부분은 Prism과 섞어서 사용해도 되는 부분이라고 생각합니다.

3개의 좋아요

아 추가로, .NET Community Toolkit 에서

이 부분 Prism 의 Regions 는

ContentControl 에 DataType을 매핑해서 같은 용도로 처리 할 수 있습니다.

4개의 좋아요

@aroooong, @Vincent 말씀에 동의합니다~
저도 그런 이유들로 두 라이브러리를 함께 사용중입니다.

3개의 좋아요