ViennaNET: แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒ˜ แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ’แƒแƒฃแƒ›แƒแƒ แƒฏแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒก!

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ แƒ— .NET แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ Raiffeisenbank-แƒจแƒ˜ แƒ“แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒแƒ— แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ .NET Core-แƒ–แƒ”, แƒ แƒแƒ—แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒœ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒ”แƒ™แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒ—. แƒ›แƒแƒ— แƒ›แƒ˜แƒ˜แƒขแƒแƒœแƒ”แƒก แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒ–แƒ”!

ViennaNET: แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒ˜ แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒžแƒแƒขแƒแƒ แƒ แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ˜แƒก

แƒแƒ“แƒ”แƒกแƒฆแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒšแƒ˜แƒ—แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒแƒœแƒ“แƒแƒ—แƒแƒœ แƒ’แƒแƒ“แƒแƒ˜แƒฅแƒชแƒ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒแƒจแƒ˜ (แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ”แƒก แƒ›แƒฃแƒฎแƒšแƒ˜). แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ แƒจแƒ”แƒ’แƒ•แƒฎแƒ•แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ› แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒ•แƒ˜แƒฌแƒ”แƒ•แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ โ€“ แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒšแƒแƒ’แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ, WCF แƒ“แƒ แƒ.แƒจ. แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒฃแƒ™แƒ•แƒ” แƒ›แƒ˜แƒฉแƒ•แƒ”แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒ•แƒ˜แƒ— แƒกแƒแƒ”แƒ แƒ—แƒ แƒ™แƒแƒ“แƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒจแƒ”แƒ•แƒคแƒฃแƒ—แƒ”แƒ— แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ Nuget แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒ›แƒแƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ˜แƒ“แƒ Nuget แƒกแƒแƒชแƒแƒ•แƒจแƒ˜.

แƒ’แƒแƒ•แƒ˜แƒ“แƒ แƒ“แƒ แƒ, แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ—แƒแƒœแƒ“แƒแƒ—แƒแƒœ แƒ“แƒแƒ˜แƒจแƒแƒšแƒ แƒ“แƒ แƒ’แƒแƒฉแƒœแƒ“แƒ แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜, แƒจแƒ”แƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” JS แƒฉแƒแƒ แƒฉแƒแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— WCF/SOAP-แƒ“แƒแƒœ REST/HTTP-แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ AspNet WebApi-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“. .Net Framework 4.5-แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒš แƒ“แƒ แƒแƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ›แƒฃแƒฎแƒšแƒ”แƒ‘แƒ–แƒ” แƒ˜แƒงแƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ แƒ”แƒ“แƒแƒœ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒฎแƒ“แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ Program.cs-แƒจแƒ˜ แƒกแƒแƒ›แƒ˜ แƒฎแƒแƒ–แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก (NTLM). logging, Swagger, IoC/DI Castle Windsor-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ HTTP แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒแƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒœ แƒ‘แƒแƒšแƒแƒ“แƒแƒœ แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜. แƒ“แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜.

แƒ—แƒฃแƒ›แƒชแƒ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒšแƒฃแƒ•แƒ˜: แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ›แƒแƒฃแƒฅแƒœแƒ”แƒšแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒฃแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ, แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ แƒ“แƒ แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒ แƒ›แƒ˜แƒ”แƒฆแƒแƒ— แƒกแƒแƒ‘แƒแƒ–แƒ แƒ™แƒšแƒแƒกแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก, แƒ แƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒฃแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ˜แƒงแƒ.

แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ”แƒžแƒแƒฅแƒ

แƒ“แƒแƒ“แƒ’แƒ แƒ“แƒ แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Docker-แƒ˜แƒกแƒ แƒ“แƒ Kubernetes-แƒ˜แƒก แƒขแƒแƒšแƒฆแƒแƒ› แƒฉแƒ•แƒ”แƒœแƒแƒ›แƒ“แƒ” แƒ›แƒแƒแƒฆแƒฌแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒ— แƒ•แƒแƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒ—แƒ•แƒแƒšแƒก: แƒงแƒแƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ”แƒก แƒ˜แƒงแƒ แƒ“แƒ˜แƒ“แƒ˜ แƒจแƒแƒœแƒกแƒ˜, แƒ“แƒแƒ’แƒ•แƒ”แƒฌแƒงแƒ แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒฌแƒ•แƒ แƒ˜แƒ•, .Net Core-แƒจแƒ˜. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“: แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ .Net Framework-แƒ“แƒแƒœ .Net Standard-แƒ–แƒ” แƒ“แƒ .Net Core-แƒ–แƒ” แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒ”แƒขแƒแƒ“ แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ’แƒแƒ“แƒแƒ›แƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒœแƒ AspNet Core แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒช แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ—, แƒ˜แƒงแƒ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒฎแƒกแƒœแƒ˜แƒ“แƒ แƒฌแƒ˜แƒœแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒœแƒแƒ™แƒšแƒก: แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ‘แƒแƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ, แƒ แƒแƒ› แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ“แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ แƒ“แƒ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒขแƒแƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ.

แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒแƒก แƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ•แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ—แƒแƒœ, แƒแƒ•แƒขแƒแƒ‘แƒฃแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ—แƒแƒœ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒ แƒฃแƒ›แƒขแƒ™แƒ˜แƒ•แƒœแƒ”แƒฃแƒšแƒ แƒ’แƒแƒ’แƒ•แƒ”แƒ™แƒ”แƒ—แƒ”แƒ‘แƒ˜แƒœแƒ แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒ”แƒซแƒšแƒแƒ— แƒ™แƒแƒœแƒชแƒ”แƒœแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒœ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒ–แƒ” แƒ“แƒ แƒแƒ แƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒ–แƒ” - แƒ˜แƒก แƒฃแƒ™แƒ•แƒ” แƒ›แƒ–แƒแƒ“ แƒแƒ แƒ˜แƒก. แƒกแƒแƒ”แƒ แƒ—แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ แƒฎแƒ”แƒšแƒก แƒฃแƒฌแƒงแƒแƒ‘แƒก แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒจแƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒแƒก: แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒจแƒ˜แƒ“แƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒ แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒชแƒ•แƒšแƒ.

แƒ“แƒ แƒ แƒแƒขแƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒ?

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒขแƒ˜แƒ–แƒ˜แƒก แƒกแƒ˜แƒ›แƒฌแƒ˜แƒคแƒ” แƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ: แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ— แƒ›แƒงแƒแƒคแƒ˜ แƒžแƒ˜แƒ แƒ˜ แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒแƒขแƒแƒœแƒแƒก. แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ— แƒ˜แƒœแƒ“แƒฃแƒกแƒขแƒ แƒ˜แƒแƒจแƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒ DDD-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒ—.

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, ViennaNET

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ—. แƒกแƒ แƒฃแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒฅ.

ViennaNET.WebApi.*

แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ”แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ โ€žแƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜โ€œ ViennaNET.WebApi-แƒกแƒ’แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก CompanyHostBuilder แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒ˜แƒก แƒ™แƒšแƒแƒกแƒก แƒ“แƒ ViennaNET.WebApi.Configurators.* แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒจแƒ˜. แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜. แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก, แƒ“แƒ˜แƒแƒ’แƒœแƒแƒกแƒขแƒ˜แƒ™แƒ˜แƒก, แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, swagger แƒ“แƒ แƒ.แƒจ.

ViennaNET.WebApi.Runners.* แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ”แƒ‘แƒก. แƒ”แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ  แƒ“แƒแƒ˜แƒ›แƒแƒฎแƒกแƒแƒ•แƒ แƒแƒ— แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒ— แƒแƒฎแƒแƒš แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒก. แƒแƒ›แƒแƒกแƒ—แƒแƒœ, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒแƒ“ แƒแƒ  แƒ–แƒฆแƒฃแƒ“แƒแƒ•แƒ”แƒœ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก.

ViennaNET.Mediator.*

แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒจแƒ˜แƒ“แƒ แƒจแƒฃแƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ•แƒขแƒแƒ‘แƒฃแƒกแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒจแƒ˜. แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— DI แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ”แƒ แƒ—แƒแƒ›แƒ“แƒ”, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒ”แƒ™แƒแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒช แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก.

ViennaNET.Validation

แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก แƒ›แƒแƒ—แƒ’แƒแƒœ แƒ•แƒแƒšแƒ˜แƒ“แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“. แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒ•แƒแƒšแƒ˜แƒ“แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒฆแƒฌแƒ”แƒ แƒแƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒชแƒแƒšแƒ™แƒ” แƒฌแƒ”แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—.

ViennaNET.Redis

แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ˜แƒ— แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Redis-แƒ—แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜.

ViennaNET.Specifications

แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ”แƒœ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒก.

แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒจแƒ˜แƒ. แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— GitHub แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ— แƒ›แƒแƒšแƒ” แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก OpenSource-แƒจแƒ˜.

แƒ’แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ— แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒฃแƒ—แƒ›แƒ”แƒœแƒšแƒแƒ“ แƒ•แƒ”แƒšแƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒก แƒ“แƒ แƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ