áááºá¹ááá¬áá«áá°ááá¯ááºážá¡ááœááº!
áá»áœááºá¯ááºááá¯á·ááẠRaiffeisenbank ááŸá .NET developer áá»á¬ážá á¡ááá¯ááºá¡áááºážáá áºáá¯ááŒá áºááŒá®áž áá±áá áá áºáá áºáá¯áááºážááŒáá·áº microservices áá»á¬ážááᯠáá»ááºááŒááºá áœá¬áááºáá®ážáááºá¡ááœáẠ.NET Core ááá¯á¡ááŒá±áá¶áá¬ážáá±á¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠá á¬ááŒáá·áºááá¯ááºáá»á¬ážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážááá¯áá«áááºá áááºážááá¯á·ááẠáááºážááᯠOpen Source ááá¯á· áá°áá±á¬ááºáá¬áá²á·áááºá
á¡áááºážáááºáá±á¬áááá¯ááºáž
áá
áºáá»áááºá áá»áœááºáá±á¬áºááá¯á·ááŸá¬ microservices á¡á
á¯á¡áá±ážáá
áºáá¯á¡ááŒá
ẠáááŒááºážááŒááºážááŒá±á¬ááºážáá²áá¬áá²á· monolithic ááá±á¬áá»ááºááŒá®ážáá
áºáá¯ááŸááá²á·ááẠ(áá®ááŒá
áºá
ááºáá²á·á¡ááºá¹áá«áááºááœá±á¡ááŒá±á¬ááºáž áááºááŸá¯ááá¯ááºáá«áááºá
á¡áá»áááºááŒá¬áá¬áááºááŸáá·áºá¡áá»áŸ ááá±á¬áá»ááºááẠáááŒááºážááŒááºážááœá²ááœá²ááœá¬ážáᬠáá±ááºáá® JS áá°áá±á¬ááºáá áºáá¯áá±á«áºááœáẠclient-side modules á¡áá áºáá»á¬ážáááºáá®ážáᬠbrowser ááœáẠáááºážááá¯á·ááᯠrun ááẠááá¹áááŸááá¬áááºá áá»áœááºá¯ááºááá¯á·ááẠWCF/SOAP á០REST/HTTP ááá¯á· á áááºááœá±á·áá»á¬ážáá¬áá±á¬ááŒá±á¬áá·áº AspNet WebApi ááá¯á¡ááŒá±áá¶á áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡ááŒááºá áááºáááºá¡ááœáẠá á¬ááŒáá·áºááá¯ááºá¡áá áºáá»á¬áž ááá¯á¡ááºáá«áááºá .Net Framework 4.5 ááŸá ááááá¯á¶ážáá¬ážááŸááºážááᯠáá»áœááºá¯ááºááá¯á·ááááá¯áá¬ááá¬ááŸááºá á¡á¬ážáááºáá»áááºá áá°ážáá±á¬ááºáá¯áá®ážáá«áž áááºáá®ážáá¬ážáá±á¬áºáááºáž ááœáá·áºááŒá¯áá»áẠ(NTLM) áá«ááŸááá±á¬ Program.cs ááœáẠá á¬ááŒá±á¬ááºážáá¯á¶ážááŒá±á¬ááºážáá«áá±á¬ áááºáá±á¬ááºááŸá¯áá áºáá¯ááᯠá áááºááá¯ááºá á±áá²á·áááºá ááá±á¬áá»ááºáá áºáá¯áá¯á¶ážááœáẠá¡áá¯á¶ážááŸá¡áá¯á¶ážááá¯á· ááŸááºáááºážááá°áááºá¡ááœáẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ áá±á«ááºážá á®ážáá»á¬ážááᯠáá±ážááá¯á·áá±á¬ Castle Windsor ááá¯á¡ááŒá±áá¶á áá áºáá¯ááºááŒááºážá Swaggerá IoC/DIá á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠservice configuration file ááœáẠááá¯ááºááá¯áẠconfigure áá¯ááºááá¯ááºáá«áááºá
ááá¯á·áá±á¬áºá á¡áá¬á¡á¬ážáá¯á¶ážááẠáá»á±á¬ááœá±á·áááºááá¯ááºáá±- á€á á¬ááŒáá·áºááá¯ááºááẠáá±á¬áºáá»á°ážá¡áá áºáá»á¬ážááᯠááááºáááºááŒááºážááá¯ááºáᬠáááºááŸááºáá»ááºáá»á¬ážááœáẠá¡ááœááºá¡áááºáž áá»á±á¬á·ááŒá±á¬ááºážááœá¬ážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠá¡áá°ážá¡áááºáááºážáá±á¬á·ááºáá²á¡áá»áá¯á·ááᯠááá·áºáááºááá¯á¡ááºáá«áá áááºááẠá ááºážáá±ážááœá²á¡áá áºáá áºáá¯ááᯠáááºáá®ážááŒá®áž áááºáá±á¬ááºááŸá¯ááᯠáá¯ááºáá±á¬ááºááá·áº á¡ááŒá±áá¶áá°áááºážá á¬ážáá¶á០á¡ááœá±áááºáá¶ááááºááŒá áºááŒá®ážá á¡ááœááºá¡áááºáááŒá±ááŒá áºááá·áºá áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á ááá¯ááá¯á·áá±á¬ááŒá áºáááºáá»á¬ážá áœá¬áááŸááá²á·áá«á
Docker ááŸáá·áº Kubernetes áá±ááº
áá»áœááºá¯ááºááá¯á· á¡áá®ážáááºá á±á¬áá·áºááŒáá·áºáá²á·ááá·áº Docker ááŸáá·áº Kubernetes ááŸáá¯ááºážáá¯á¶ážáá»á¬ážáá±á¬ááºááŸááá¬ááá·áºá¡áá»áááºáá±á¬ááºáá¬áááº- áá±á¬ááºáá¯á¶ážááœááºá .Net Core ááœáẠáááºážááá¬áá»á¬ážáá áºáá»áŸá±á¬áẠááá¯ááá¯á áááºáá¯ááºáá±á¬ááºááẠá¡ááœáá·áºá¡áá±ážáá±á¬ááºážáá áºáá¯ááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááá¯áá¯ááºáá±á¬ááºááẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡áá áºáá áºáᯠááá¯á¡ááºáááºááŒá áºáááº- á¡áá»áá¯á·áá±á¬á á¬ááŒáá·áºááá¯ááºáá»á¬ážááẠ.Net Framework á០.Net Standard ááŸáá·áº .Net Core ááá¯á· áááºááœá±á·áá»áá» ááŒá±á¬ááºážáá²ááŸá¯áááŸááá² á¡áá»áá¯á·áá±á¬ááá¯ážáááºááŸá¯á¡áááºážáááºááŒáá·áº áááºááœá±á·áá»áá» ááŒá±á¬ááºážááœáŸá±á·áá¬ážáá«áááºá ááá¯á·áá±á¬áº á¡áá»á¬ážá á¯ááŸá¬ AspNet Core ááœáẠáááºáá±á¬ááºááŸá¯áá»á¬áž á áááºááŒááºážááŸáá·áº áááºá ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºááᯠááŒááºáááºáá¯ááºáá±á¬ááºááá¯áá«áááºá
áá»áœááºá¯ááºááá¯á· ááááá¯á¶ážá ááºážá á¬ážáááºááŸá¬ ááááºáá¬ážááŸááºážá á¡áááá¡á¬ážáááºážáá»ááºááᯠáááºááŸá¬ážáá±ážááá·áº á¡áá°á¡áááŒá áºáááº- ááŒá±á¬ááºážááœááºááŒááºááœááºáááŸáááŒááºážáááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá á á¬ááŒáá·áºááá¯ááºá áá áºáá áºáá¯áá¯á¶ážááᯠá¡ááŸá®á¡ááá¯áááºážááŒá®áž áá±á¬áºáá»á°áá¬á¡ááŒá Ạáááºááá¯ááºááá»áŸááŒá¯áá¯ááºáááºááŸáá·áº áááºáá±á¬ááºáá°á¡áá±ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºá áœááºážá¡ááœáẠááá¯á¡ááºáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá á¯áá±á¬ááºážááẠáá¯á¶ážááŒááºáá²á·áááºá
á¡ááá áááºááŸááºážáá»ááºááŸá¬ áá±áá¬áá±á·á áºáá»á¬ážá áááºá áºáá¬ážáá»á¬ážááŸáá·áº á¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºáá²á·ááá¯á· áá¯á¶á·ááŒááºááááºááᯠáá±á¬áºááŒááá·áº áá±á«ááºážá ááºážáá¬ážáá±á¬ áá»ááºážáááºáááºážááᯠáááºáá®ážáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá±á«ááºážá ááºááŸá¯áá»á¬ážááᯠáá»ááºááŒááºááŒá®áž áá¬áá»ááºááŸá¯áááŸáá á±ááẠááŒáá¯ážá á¬ážáá²á·ááŒá®áž developer áá»á¬ážááẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬ážááẠá á®ážááœá¬ážáá±ážáá¯áá¹áááá±áááᯠá¡á¬áá¯á¶á áá¯ááºááá¯ááºááẠ- áááºážááẠá¡áááºááá·áºááŒá áºáá±áá«ááŒá®á áá¯á¶ááá¯ááŸá±á¬ááºááŸá¯áá áºáá¯ááẠá¡ááœá²á·áá»á¬ážá¡ááœááºáž á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯á¡ááœá±á·á¡ááŒá¯á¶ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá°áá®áá±ážáááº- á¡ááœááºáááºáá°áá±á¬ á¡ááœááºážááá¯ááºážá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á á¡ááŒá¬ážá¡ááœá²á·á ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯ááºáááºážá ááºááœáẠáá«áááºááŒá®áž áá»áœááºážáá»ááºááŸá¯áááŸááºááẠááá¯ááá¯ááœááºáá°áá«áááºá
ááŒá®ážáá±á¬á· áá¬ááŒá±á¬áá·áº Open Source ááá¯á¡ááºáá¬áá²á
áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá»áœááºážáá»ááºááŸá¯áááá·áºáá»ááºááŸá¯ááá¯ááŒáááŒá®áž á¡áááºá¡ááœá±ážááŒáá·áºáá±á¬áá¯á¶á·ááŒááºáá»ááºáá»á¬ážááá¯ááá°ááá¯áá«áááº- áááºááŒááºááá°áá áºáŠážááẠáááºážááá¯á·ááá¯ááºááá¯ááºáá áºáá¯áá¯áá°áá±á¬ááºáá¬áááºááŒá áºáááºá áá¯ááºáááºážááœááºážááŸá .NET ááœáẠmicroservices ááŸáá·áº DDD ááŸáá·áº á¡áá¯ááºáá¯ááºááŒááºážá¡ááœáẠá¡áá±á·á¡áá»áá·áºáá»á¬áž ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážááá¯áááºáž á áááºáááºá á¬ážáá«áááºá áá áºá á¯á¶áá áºáŠážááẠáá°áá±á¬ááºá á¡áá»áá¯á·áá±á¬á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááá°ááá¯áá±áááºá
ááááºáá±á¬á· ViennaNET
á¡áᯠá¡áá®ážáááºááŒáá·áºáá¡á±á¬ááºá
ViennaNET.WebApi.*
á€á á¬ááŒáá·áºááá¯ááºá¡á á¯ááœáẠCompanyHostBuilder áááºáá±á¬ááºááŸá¯á¡ááœáẠáááºáá±á¬ááºáá°á¡áááºážá¡á á¬ážááŸáá·áº ViennaNET.WebApi.Configurators á¡á á¯á¶áá«áááºááá·áº ârootâ ViennaNET.WebApi áá«áááºááẠáááºáá±á¬ááºááŸá¯á ááŒááºáááºáááºááŸááºáá±ážááá·áºá áá áºáá»á¬ážáá²ááœáẠáá áºáá¯ááºááŒááºážá áá±á¬áá«ááŸá¬ááœá±ááŒááºážá á á áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááŒááŒááºážááŸáá·áº ááœáá·áºááŒá¯áá»ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áááºáá±á¬á·ááŒááºážá áááºááá¯á·á¡ááœáẠáá»áááºáááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ááœá±á·ááá¯ááºáá«áááºá
ViennaNET.WebApi.Runners.* ááœááºáááºáž ááŒáá¯áááºááŒááºáááºáá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯áááºáá±á¬ááºáá°áá»á¬áž áá«ááŸááááºá á€áááºáá±á·áá»áºáá»á¬ážááẠáá»áááºáááºááẠááá¯á¡ááºááá·áº áááºáá±á¬ááºááŸá¯á¡áá áºáá áºáá¯ááᯠáááºáááºáá®ážááá·áºá¡áá«ááá¯ááºáž ááá·áºá¡á¬áž áááŸááºááá á±áá±á¬á·áá«á ááá¯á·áá±á¬áºáááºáž áááºážááá¯á·ááẠáááºáá±á¬ááºááŸá¯áááºáá±á¬ááºáá°á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáááºááá·áºáááºážááŒáá·áºáá»áŸ ááá·áºáááºááá¬ážáá±á
ViennaNET.Mediator.*
áááºáá±á¬ááºááŸá¯áá áºáá¯á¡ááœááºáž á¡áááá·áºáá»á¬ážááŸáá·áº áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááœáẠá¡ááœááºážááá¯ááºážááŒá¬ážáá¶áááºá áºáá áºáá¯ááᯠáááºáá®ážááœáá·áºááŒá¯ááá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬ážá á€áááºážáááºážááẠááá·áºá¡á¬áž ááááºážáá»á¯ááºáááááá¬áá»á¬ážááœáẠDI ááá¯ážáá±ážá¡áá±á¡ááœááºááᯠá¥ááá¬áá áºáá¯ááá¯á· áá»áŸá±á¬á·áá»ááá¯ááºá á±áá«áááºá áááºážááŒá±á¬áá·áºá áááºážááá¯á·á áá¯ááºáá±á¬ááºááŸá¯ááᯠáá±á«ááºážá ááºááŒá®áž áá¯ááºááá¬áááᯠáá»áŸá±á¬á·áá»áá±ážááá·áº áá±á¬ááºážááá¯áá»ááºáá»á¬ážááœáẠá¡ááŸáááºáá° á¡áá»áá¯ážáá»áá¯ážááᯠáááºááá·áºááá¯ááºáááºá
ViennaNET.Validation
á¡áááºááŒá¯ááŒááºážááá¯ááºáᬠá ááºážáá»á¥áºážáá»á¬ážááŸáá·áº á¡á á®á¡á á¥áºáá»á¬ážááᯠáááºáá®ážáááºá¡ááœáẠá¡áááºážá¡á á¯á¶áá«ááŸááá±á¬ á ááºážáá±ážááœá²áá áºáá¯á áá¯ááºáááºážá¡ááŒá±á¡áá±áá áºáá¯á á®ááᯠááá¯ážááŸááºážááŒá®áž áá®ážááŒá¬ážá ááºážáá»ááºážáá¯á¶á á¶ááŒáá·áº áá±á¬áºááŒááá¯ááºáá±á¬ááŒá±á¬áá·áº domain validation ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠá¡ááœááºá¡áááºááŒá±áá«áááºá
ViennaNET.Redis
Redis ááŸáá·áº á¡áááºááŒá±áá±á¬ á¡áá¯ááºá¡ááœáẠáá¯ááºááá¯ážáá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá áºáá¯á
ViennaNET.áááºááŸááºáá»ááºáá»á¬áž
Specification áá¯á¶á á¶ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááá·áº á¡áááºážáá»á¬ážáá«áááºáá±á¬ á ááºážáá±ážááœá²áá áºáá¯á
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·á á¡á
á¯á¡áá±ážááœáẠááŸááááºááá¯ááºáá«á áá»ááºáá¬ááᯠááŒáá·áºááá¯á·ááááºá
ááá·áºá¡á¬áá¯á¶á áá¯ááºááŸá¯á¡ááœáẠáá»á±ážáá°ážáááºáá«áááºá ááá·áºááŸááºáá»ááºáá»á¬ážááŸáá·áº áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááœá²áá¯ááºááẠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá
source: www.habr.com