[itvdn] Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (2020)
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΡ Β«Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ unit ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΡ Β«Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ unit ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π½ΡΠ»Ρ, Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π±ΡΡΡΡΠΎ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΠ΄Π°ΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΠΈΡΠΎΠ³ΠΎΠ² ΠΊΡΡΡΠ° - Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠ΅:
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΡ Β«Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ unit ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΡ Β«Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ unit ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π½ΡΠ»Ρ, Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π±ΡΡΡΡΠΎ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΠ΄Π°ΠΌΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΠΈΡΠΎΠ³ΠΎΠ² ΠΊΡΡΡΠ° - Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠ΅:
- ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASP.NET Core MVC ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
- ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ unit-ΡΠ΅ΡΡΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠ°.
- ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ΅ΡΡΠΎΠ².
- Π£ΠΌΠ΅ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ.
- Π£Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ View ΠΈ Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ.
- ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- Π£Π·Π½Π°Π΅ΡΠ΅ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
- ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ BDD (Behavior Driven Development) β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ Π΅Π΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ TDD.
- Π£Π·Π½Π°Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ·ΡΠΊΠ° Gherkin ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ².
- ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ SpecFlow Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ BDD ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.
Π‘ΠΊΠ°ΡΠ°ΡΡ:Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.