μλ
νμΈμ κ°λμ WPF νλ‘μ νΈλ₯Ό νλ μ¬λμ
λλ€.
WPFλ Prism μ μ£Όλ‘ μ°λλ° μ²μμλ λ§μ΄ ν€λ§Έμ§λ§
μ΄μ μ΄λμ λ λ€λ£°μ€ μκ³ κ±°μ μ΄κ²λ§μ μ°λ€κ°
λ·λ·λ°λΈμμ Community Toolkit μ μκ²λμ΅λλ€.
κ·Έμ μλ κ²μνλ€κ° λ³΄κ³ λκ° νλλ° λΉμ·ν
FwμΈκ° λ³Έλ° ? μ°μ΄μ κ°λ¦¬κΈ° νλ€μ§λ λͺ¨λ₯΄μ§λ§
μ£Όλ‘ C/T λ₯Ό λ§μ΄μ°λμ?? μ μ§ Prism ν° μΈκΈμ΄ μλκ² κ°κΈ°λ νλ€μ
Prism μ μΈλ Viewκ΄λ¦¬κ° νΈλ¦¬νκ³ life cycle κ΄λ¦¬κ° μ무λλ wpfμ
μ΅μ νλ fw λΌ κ°λ
μ μλ©΄ νΈλ¦¬νλλ° λ°λ©΄ C/T κ° λ€λ₯Έ μ₯μ μ΄ μμκΉ κΆκΈνλ€μ?
C/Tλ₯Ό λλ΅μ μΌλ‘ λ΄€μλ IOC μ±ν₯μ΄ κ°ν FWκ°μλ° Prism μ Resion κ°μκ²λ μλμ?
κ°μΈμ μΌλ‘
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 ꡬ쑰 ννλ‘ κ°λ° κ°λ₯νλλ‘ λ λ§μ κΈ°λ₯μ μ§μνκ³ μμ΅λλ€.
첨μΈμ λ λ리μλ©΄, μμ΄μ μ¬μ©ν μλ μμ΅λλ€.
Prismμ λͺ¨λ₯΄κ² μΌλ CommunityToolkitμ μμ€ μ λ€λ μ΄ν°λ₯Ό μ΄μ©ν΄ μ½λκ° κ°μνλλ λΆλΆμ Prismκ³Ό μμ΄μ μ¬μ©ν΄λ λλ λΆλΆμ΄λΌκ³ μκ°ν©λλ€.
μ μΆκ°λ‘, .NET Community Toolkit
μμ
μ΄ λΆλΆ Prism
μ Regions λ
ContentControl μ DataTypeμ 맀νν΄μ κ°μ μ©λλ‘ μ²λ¦¬ ν μ μμ΅λλ€.