ViennaNET: Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ Π½Π° всички!

НиС смС общност ΠΎΡ‚ .NET Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π Π°ΠΉΡ„Π°ΠΉΠ·Π΅Π½Π±Π°Π½ΠΊ ΠΈ искамС Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инфраструктурни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° .NET Core Π·Π° Π±ΡŠΡ€Π·ΠΎ създаванС Π½Π° микросСрвизи с Π΅Π΄ΠΈΠ½Π½Π° СкосистСма. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…ΠΌΠ΅ Π³ΠΎ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄!

ViennaNET: Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄

Малко история

ΠŸΡ€Π΅Π΄ΠΈ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ голям ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ постСпСнно сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π° Π² Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ микросСрвизи (Π·Π° особСноститС Π½Π° Ρ‚ΠΎΠ·ΠΈ процСс ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π² Ρ‚Π°Π·ΠΈ статия). Π’ процСса сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‡Π΅ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ микросСрвизи чСсто сС налагашС Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инфраструктурни Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ – ΠΊΠ°Ρ‚ΠΎ настройки Π·Π° Π»ΠΎΠ³Π²Π°Π½Π΅, Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π”, WCF ΠΈ Ρ‚.Π½. По Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π΅Π΄ΠΈΠ½ Π΅ΠΊΠΈΠΏ ΠΈ всички Π²Π΅Ρ‡Π΅ свикнаха с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с инфраструктурата. Π—Π°Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ общия ΠΊΠΎΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΡΡŠΠ±Ρ€Π°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ…ΠΌΠ΅ Π² Nuget ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π³ΠΈ поставихмС Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ Nuget Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ минавашС, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ постСпСнно сС дСлСшС, появи сС ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° създадСм Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° клиСнтската част Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ Js Ρ„Ρ€Π΅ΠΉΠΌΡƒΠΎΡ€ΠΊ ΠΈ Π΄Π° Π³ΠΈ стартирамС Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚ WCF/SOAP Π½Π° REST/HTTP, Π·Π°Ρ‚ΠΎΠ²Π° Π½ΠΈ бяха Π½ΡƒΠΆΠ½ΠΈ Π½ΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π±ΡŠΡ€Π·ΠΎ стартиранС Π½Π° услуги Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° AspNet WebApi. ΠŸΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° .Net Framework 4.5 бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½Π° ΠΎΡ‚ нашия Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° ΠΊΡ€Π°ΠΊ Π² свободното ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ Π²Π΅Ρ‡Π΅ позволявашС с Ρ‚Ρ€ΠΈ Ρ€Π΅Π΄Π° Π² Program.cs Π΄Π° стартирамС услуга, която ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ автСнтикация (NTLM), Π»ΠΎΠ³Π²Π°Π½Π΅, Swagger, IoC/DI Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Castle Windsor, настроСни HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‰ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ заглавия Π·Π° осигуряванС Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΎ Π»ΠΎΠ³Π²Π°Π½Π΅ Π² цСлия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. И всичко Ρ‚ΠΎΠ²Π° моТСшС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° бъдС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΎ Π²Π΅Ρ‡Π΅ Π² самия ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π½Π° услугата.

Но Π½Π΅ всичко бСшС Π³Π»Π°Π΄ΠΊΠΎ: Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° сС ΠΎΠΊΠ°Π·Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Π° Π·Π° внСдряванС Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. НапримСр, Π°ΠΊΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ някакво спСциално middleware, сС налагашС Π΄Π° създавамС Π½ΠΎΠ²Π° сборка ΠΈ Π΄Π° наслСдявамС ΠΎΡ‚ базовия клас, ΠΊΠΎΠΉΡ‚ΠΎ стартира услугата, ΠΊΠΎΠ΅Ρ‚ΠΎ бСшС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π—Π° щастиС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ случаи Π½Π΅ бяха ΠΌΠ½ΠΎΠ³ΠΎ.

Π•ΠΏΠΎΡ…Π°Ρ‚Π° Π½Π° Docker ΠΈ Kubernetes

Π”ΠΎΠΉΠ΄Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈ Π΄ΠΎ нас достигна Π²ΡŠΠ»Π½Π°Ρ‚Π° Π½Π° Docker ΠΈ Kubernetes, Π·Π° която Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ…ΠΌΠ΅: Ρ‚ΠΎΠ²Π° бСшС прСкрасна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ Π½Π°ΠΏΡ€Π΅Π΄ с Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ Π² .Net Core. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Ρ‰Π΅ Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π½ΠΎΠ²Π° инфраструктура Π·Π° стартиранС Π½Π° услугитС: част ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…Π° ΠΎΡ‚ .Net Framework Π½Π° .Net Standard ΠΈ .Net Core ΠΏΠΎΡ‡Ρ‚ΠΈ Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Π° част с ΠΌΠ°Π»ΠΊΠΈ подобрСния. Но Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ искахмС Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ функционалността, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с стартиранСто Π½Π° услуги Π² AspNet Core.

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅, бСшС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ основния Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия: липсата Π½Π° Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚. Π—Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ цялата систСма ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ възмоТно Π½Π°ΠΉ-нСзависима ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π½Π° ΠΈ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ услуги ΠΊΠ°Ρ‚ΠΎ конструктор.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π΅ Π΄Π° създадСм ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, описващ ΠΊΠ°ΠΊ Π΄Π° взаимодСйствамС с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, шини ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ услуги. БтрСмяхмС сС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π±ΡŠΡ€Π·ΠΈ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΈ, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ написванСто Π½Π° бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π°, Π° Π½Π΅ инфраструктурата – тя Π²Π΅Ρ‡Π΅ Π΅ Π³ΠΎΡ‚ΠΎΠ²Π°. ΠžΠ±Ρ‰ΠΈΡΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° подобряванС Π½Π° взаимодСйствиСто Π² Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅: ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ инфраструктури, ΠΏΠΎ-лСсно Π΅ Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡ΠΈΡˆ Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Ρ€ΡƒΠ³ ΠΎΡ‚Π±ΠΎΡ€ ΠΈ Π΄Π° обмСниш знания.

И Π·Π°Ρ‰ΠΎ Π½ΠΈ Π΅ Open Source?

ИскамС Π΄Π° дСмонстрирамС зрСлост Π½Π° СкспСртизата ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ качСствСна ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°: Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ извън Π±Π°Π½ΠΊΠ°Ρ‚Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° донСсС Π½Π΅Ρ‰ΠΎ ΠΎΡ‚ сСбС си. ОсвСн Ρ‚ΠΎΠ²Π° Π½ΠΈ интСрСсува Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с микросСрвизи ΠΈ DDD Π½Π° .NET Π² индустрията, възмоТно Π΅ някой Π΄Π° иска Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ части ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΡƒΡŠΡ€ΠΊΠ° Π·Π° сСбС си.

БобствСно, ViennaNET

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ всичко ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. ЦСлият ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ слоТихмС Ρ‚ΡƒΠΊ.

ViennaNET.WebApi.*

Π’ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ β€žΠΊΠΎΡ€Π΅Π½Π°β€œ ViennaNET.WebApi, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ клас-построитСл Π·Π° услугата CompanyHostBuilder, ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΈ ViennaNET.WebApi.Configurators.*, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ позволява Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° функционалност Π² ΡΡŠΠ·Π΄Π°Π²Π°Π½Π°Ρ‚Π° услуга. Π‘Ρ€Π΅Π΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡ€Π°Π½Π΅, диагностика, Ρ‚ΠΈΠΏΠΎΠ²Π΅ аутСнтификация ΠΈ авторизация, swagger ΠΈ Ρ‚.Π½.

Π’ΡƒΠΊ ViennaNET.WebApi.Runners.* Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ строитСли Π½Π° услуги. Π’Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π²ΠΈ позволяват Π΄Π° Π½Π΅ сС притСсняватС всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π½ΠΎΠ²Π° услуга, ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ трябва Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅. Π’Π΅ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Ρ‚ функционалността Π½Π° строитСля Π½Π° услуги.

ViennaNET.Mediator.*

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ посрСдник Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ заявки Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° услугата. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ намалява броя Π½Π° DI-ΠΈΠ½ΠΆΠ΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π΄ΠΎ Π΅Π΄Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π΅ възмоТно добавянСто Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈ към заявкитС, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° тяхната ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ намалява количСството ΠΊΠΎΠ΄.

ViennaNET.Validation

Π‘Π±ΠΎΡ€ΠΊΠ°, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ класовС Π·Π° създаванС Π½Π° Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Ρ‰ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ послСдоватСлности ΠΎΡ‚ тях. Много ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π½Π° валидация, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ позволява описванСто Π½Π° всяко бизнСс условиС ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° прост ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΡ€Π°Π²ΠΈΠ».

ViennaNET.Redis

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с Redis ΠΊΠ°Ρ‚ΠΎ in-memory cache.

ViennaNET.Specifications

Π‘Π±ΠΎΡ€ΠΊΠ°, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰Π° класовС, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰ΠΈ шаблона β€žΠ‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡβ€.

Π’ΠΎΠ²Π° Π½Π΅ Π΅ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π² нашия ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚. ΠžΡΡ‚Π°Π½Π°Π»ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° GitHub. ΠŸΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ скоро Π΄Π° пуснСм Π½Π°ΡˆΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ ΠΈ pull request-ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster