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개의 μ’‹μ•„μš”