ViennaNET- နောက်ခံဖိုင်အတလက် စာကဌည့်တိုက်မျာသ

မင်္ဂလာပါလူတိုင်သအတလက်!

ကျလန်ုပ်တို့သည် Raiffeisenbank ရဟိ .NET developer မျာသ၏ အသိုက်အဝန်သတစ်ခုဖဌစ်ပဌီသ ဂေဟစနစ်တစ်ခုတည်သဖဌင့် microservices မျာသကို လျင်မဌန်စလာဖန်တီသရန်အတလက် .NET Core ကိုအခဌေခံထာသသော အခဌေခံအဆောက်အညစာကဌည့်တိုက်မျာသအကဌောင်သ ဆလေသနလေသလိုပါသည်။ ၎င်သတို့သည် ၎င်သကို Open Source သို့ ယူဆောင်လာခဲ့သည်။

ViennaNET- နောက်ခံဖိုင်အတလက် စာကဌည့်တိုက်မျာသ

အနည်သငယ်သောသမိုင်သ

တစ်ချိန်က ကျလန်တော်တို့မဟာ microservices အစုအဝေသတစ်ခုအဖဌစ် တဖဌည်သဖဌည်သပဌောင်သလဲလာတဲ့ monolithic ပရောဂျက်ကဌီသတစ်ခုရဟိခဲ့တယ် (ဒီဖဌစ်စဉ်ရဲ့အင်္ဂါရပ်တလေအကဌောင်သ ဖတ်ရဟုနိုင်ပါတယ်။ ကဆောင်သပါသတလင်) လုပ်ငန်သစဉ်တလင်၊ မိုက်ခရိုဝန်ဆောင်မဟုအသစ်မျာသဖန်တီသသည့်အခါ၊ မဟတ်တမ်သထည့်သလင်သခဌင်သ၊ ဒေတာဘေ့စ်၊ WCF နဟင့် လုပ်ဆောင်ခဌင်သစသည့် အမျိုသမျိုသသော အခဌေခံအဆောက်အအုံဆိုင်ရာဖဌေရဟင်သချက်မျာသကို မကဌာခဏကူသယူရလေ့ရဟိသည့် ပဌဿနာကို ကျလန်ုပ်တို့ကဌုံတလေ့ခဲ့ရသည်။ အဖလဲ့တစ်ဖလဲ့သည် ကပရောဂျက်တလင် လုပ်ဆောင်ခဲ့ပဌီသ လူတိုင်သသည် အခဌေခံအဆောက်အအုံနဟင့် လုပ်ဆောင်ရန် ချမဟတ်ထာသသော နည်သလမ်သအချို့ကို ကျင့်သာသရနေပဌီဖဌစ်သည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် ဘုံကုဒ်ကို သီသခဌာသသိုလဟောင်မဟုအဖဌစ် ခလဲထုတ်ပဌီသ စုဆောင်သထာသသော စာကဌည့်တိုက်မျာသကို Nuget ပက်ကေ့ဂျ်မျာသတလင် ထုပ်ပိုသပဌီသ ကျလန်ုပ်တို့၏အတလင်သပိုင်သ Nuget repository တလင် ထာသရဟိပါသည်။

အချိန်ကဌာလာသည်နဟင့်အမျဟ ပရောဂျက်သည် တဖဌည်သဖဌည်သကလဲကလဲသလာသကာ ခေတ်မီ 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 ပုံစံကိုအကောင်အထည်ဖော်သည့် အတန်သမျာသပါဝင်သော စည်သဝေသပလဲတစ်ခု။

ကသည်မဟာ ကျလန်ုပ်တို့၏ အစုအဝေသတလင် ရဟိသည်မဟုတ်ပါ။ ကျန်တာကို ကဌည့်လို့ရတယ်။ GitHub သိုလဟောင်မဟုတလင်. ကျလန်ုပ်တို့သည် OpenSource သို့ဒေတာဘေ့စ်မျာသနဟင့်အလုပ်လုပ်ဆောင်ရန်အတလက်ကျလန်ုပ်တို့၏စာကဌည့်တိုက်မျာသကိုမကဌာမီထုတ်ပဌန်ရန်စီစဉ်နေပါသည်။

သင့်အာရုံစိုက်မဟုအတလက် ကျေသဇူသတင်ပါသည်၊ သင့်မဟတ်ချက်မျာသနဟင့် တောင်သဆိုချက်မျာသကို ဆလဲထုတ်ရန် ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။

source: www.habr.com

မဟတ်ချက် Add