ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ!
ΠΠΈΠ΅ ΡΠΌΠ΅ ΠΎΠ±ΡΠ½ΠΎΡΡ ΠΎΡ .NET ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π² Π Π°ΠΉΡΠ°ΠΉΠ·Π΅Π½Π±Π°Π½ΠΊ ΠΈ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° .NET Core Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ Ρ Π΅Π΄ΠΈΠ½Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠ²Π΅Π΄ΠΎΡ Π° Π³ΠΎ Π΄ΠΎ Open Source!
ΠΠ°Π»ΠΊΠΎ ΠΈΡΡΠΎΡΠΈΡ
ΠΠΌΠ°Π»ΠΎ Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ°Ρ
ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π·Π° Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ Π²
ΠΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠΈΠ½Π°Π²Π°ΡΠ΅, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΈ ΠΈΠΌΠ°ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π°Ρ Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΡΡ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½Π° JS ΡΠ°ΠΌΠΊΠ° ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π² Π±ΡΠ°ΡΠ·ΡΡΠ°. ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ WCF/SOAP ΠΊΡΠΌ REST/HTTP, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½ΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° AspNet WebApi. ΠΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° .Net Framework 4.5 Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° ΠΎΡ Π½Π°ΡΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡ ΠΏΠΎΡΡΠΈ Π½Π° ΠΊΠΎΠ»Π΅Π½Π΅ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΡΠΎ ΠΌΡ Π²ΡΠ΅ΠΌΠ΅, Π½ΠΎ ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³Π° Ρ ΡΡΠΈ ΡΠ΅Π΄Π° Π² Program.cs, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (NTLM), ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅, Swagger, IoC/DI Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Castle Windsor, ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ HTTP ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ Π² ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ. Π ΡΡΠ»ΠΎΡΠΎ ΡΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°.
ΠΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΎΠ±Π°ΡΠ΅ Π±Π΅ΡΠ΅ Π³Π»Π°Π΄ΠΊΠΎ: ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π΅Π³ΡΠ²ΠΊΠ°Π²Π° ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΡΠΎΡΡΡΠ΅Ρ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ² ΡΠ±ΠΎΡ ΠΈ Π΄Π° Π½Π°ΡΠ»Π΅Π΄ΠΈΡΠ΅ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΈΡ ΠΊΠ»Π°Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠ° ΡΠ°ΡΡΠΈΠ΅ Π½ΡΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ.
ΠΡΠ°ΡΠ° Π½Π° Docker ΠΈ Kubernetes
ΠΠΎΠΉΠ΄Π΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ»Π½Π°ΡΠ° ΠΎΡ Docker ΠΈ Kubernetes Π΄ΠΎΡΡΠΈΠ³Π½Π° Π΄ΠΎ Π½Π°Ρ, ΠΊΠΎΡΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΌΠ΅ ΠΎΡΠ±Π»ΠΈΠ·ΠΎ: Π² ΠΊΡΠ°Ρ Π½Π° ΠΊΡΠ°ΠΈΡΠ°ΡΠ° ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½ ΡΠ°Π½Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠΈΠΌ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΠΏΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅, Π² .Net Core. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ Π½ΠΎΠ²Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ: Π½ΡΠΊΠΎΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ° ΠΌΠΈΠ³ΡΠΈΡΠ°Π»ΠΈ ΠΎΡ .Net Framework ΠΊΡΠΌ .Net Standard ΠΈ .Net Core ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½ΡΠΊΠΎΠΈ Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠ΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΡΠ²ΡΡΠ·Π°Π½Π° ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π° AspNet Core.
ΠΡΡΠ²ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΌΠΈΡΠ»ΠΈΡ ΠΌΠ΅, Π±Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ: Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ. ΠΠ°ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΠ»Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΈ ΠΌΠΎΠ΄ΡΠ»Π½Π° ΠΈ Π΄Π° ΡΡΠ±Π΅ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π΅Π΄ΠΈΠ½Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΠΈΡΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π°Π²ΡΠΎΠ±ΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈΡΠ΅ Π±ΡΡΠ·ΠΈ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠ°Ρ Π²ΡΡΡ Ρ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, Π° Π½Π΅ Π²ΡΡΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° - ΡΡ Π²Π΅ΡΠ΅ Π΅ Π³ΠΎΡΠΎΠ²Π°. ΠΠ±ΡΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠΈ: ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ ΠΎΠ΄Π½ΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΈ, Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄ΡΡΠ³ Π΅ΠΊΠΈΠΏ ΠΈ Π΄Π° ΠΎΠ±ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΠΏΠΈΡ.
Π Π·Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄?
ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π·ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΠΎΠΏΠΈΡ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°: ΡΠΎΠ²Π΅ΠΊ ΠΈΠ·Π²ΡΠ½ Π±Π°Π½ΠΊΠ°ΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ½Π΅ΡΠ΅ Π½Π΅ΡΠΎ ΠΎΡ ΡΠ΅Π±Π΅ ΡΠΈ. ΠΠΈΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΎΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈ DDD Π½Π° .NET Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½ΡΠΊΠΎΠΉ ΡΠ΅ ΠΈΡΠΊΠ° Π΄Π° ΠΏΠΎΠ΅ΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ ΡΠ°ΠΌΠΊΠ°ΡΠ°.
ΠΡΡΡΠ½ΠΎΡΡ ViennaNET
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΏΠΎ-ΠΎΡΠ±Π»ΠΈΠ·ΠΎ.
ViennaNET.WebApi.*
Π’ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ βΠΎΡΠ½ΠΎΠ²Π½ΠΈΡβ ViennaNET.WebApi, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΠ»Π°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° CompanyHostBuilder, ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠΈ ViennaNET.WebApi.Configurators.*, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΡΠΌ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅. Π‘ΡΠ΅Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅, Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°, ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, swagger ΠΈ Π΄Ρ.
ViennaNET.WebApi.Runners.* ΡΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΡΡΠ·Π΄Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. Π’Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π½ΠΎΠ²Π° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΈ. Π’Π΅ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ»ΡΠ³ΠΈ.
ViennaNET.Mediator.*
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π° ΡΠΈΠ½Π° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ Π±ΡΠΎΡ Π½Π° DI ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΠΈΡΠ΅ Π΄ΠΎ Π΅Π΄Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΈ ΠΊΡΠΌ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ° ΡΡΡ Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΊΠΎΠ΄.
ViennaNET.ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
Π‘Π³Π»ΠΎΠ±ΠΊΠ°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠ° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΡΡΡ . Π’ΠΎΠΉ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ Π²ΡΡΠΊΠΎ Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ.
ViennaNET.Redis
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° ΡΠ΄ΠΎΠ±Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Redis ΠΊΠ°ΡΠΎ ΠΊΠ΅Ρ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ViennaNET.Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΎ ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°.
Π’ΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π² Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΡΠ°Π½Π°Π»ΠΎΡΠΎ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ, ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com