ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π‘Π°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ WPF, Π΄Π΅Π»Π°ΡΡΠΈΠΉ MVVM ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, — ΡΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ° ΡΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ»Π°Π±ΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual Studio 2013 Ultimate Edition.
Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual Studio ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π³ΡΡΠΏΠΏ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual Studio, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΠ²ΡΠ·ΠΊΠ° Π΄Π²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:
- 1) WPF — Windows Presentation Foundation (WPF) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠΌΠ΅ΡΡΠΈΡ Π½Π°ΡΡΡΠ΅Π½Π½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Windows Forms, WPF Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² ΠΎΡΠ½ΠΎΠ²Π΅ WPF Π»Π΅ΠΆΠΈΡ ΠΌΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° DirectX). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π²ΠΈΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ², Π½Π΅ ΠΏΠ»Π°ΡΡ Π·Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ Π² Windows Forms. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° (ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°), ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΡΠΎΡΠ°ΡΡΠΈΠ΅ΡΡ Π² Π³Π»Π°Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π² Windows Forms.
- 2) ADO.NET EntityFramework (EF) — ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ EF, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π΅ ΠΈΠΌΠ΅Ρ Π΄Π΅Π»ΠΎ Ρ ΠΊΠΎΠ΄ΠΎΠΌ SQL (ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ). ΠΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡΠ΅Π΄Π° EF Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ SQL, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ LINQ ΠΊ ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ. ΠΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² SQL, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡΠ΅Π΄Π° EF ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ MVVM.
MVVM (Model-View-ViewModel) — ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² MVC ΠΈ MVP, ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΈΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½. ΠΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Smalltalk Π² 80-Ρ , ΠΈ Π±ΡΠ»Π° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ»ΡΡΡΠ΅Π½Π° Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΉ (MVP).
Π¨Π°Π±Π»ΠΎΠ½ MVVM ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° XAML, ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅-ΠΌΠΎΠ΄Π΅Π»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ MVVM.
Π ΠΈΡΡΠ½ΠΎΠΊ 3 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±Π»ΠΎΠ½Π° MVVM.
Π‘Π°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ WPF, Π΄Π΅Π»Π°ΡΡΠΈΠΉ MVVM ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, — ΡΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ° ΡΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ»Π°Π±ΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°ΡΡΠΈΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ MVVM ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΡΠ°Π±ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ — Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½Π΅ΡΡΡΠ΄Π½ΠΎ ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΠΌ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² — Π½Π° ΡΠ΄ΠΎΠ±Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ .