ViennaNET: txheej tsev qiv ntawv rau lub backend

Nyob zoo txhua leej txhua tus!

Peb yog ib lub zej zog ntawm .NET developers ntawm Raiffeisenbank thiab peb xav tham txog ib txheej ntawm cov tsev qiv ntawv infrastructure raws li .NET Core rau sai tsim microservices nrog ib tug ecosystem. Lawv coj nws mus rau Qhib Qhov Chaw!

ViennaNET: txheej tsev qiv ntawv rau lub backend

Ib me ntsis keeb kwm

Ib zaug dhau ib zaug peb muaj ib txoj haujlwm loj monolithic, uas maj mam tig mus rau hauv cov txheej txheem microservices (koj tuaj yeem nyeem txog cov yam ntxwv ntawm cov txheej txheem no hauv qhov no tsab xov xwm). Hauv cov txheej txheem, peb tau ntsib qhov teeb meem uas thaum tsim cov microservices tshiab, peb feem ntau yuav tsum tau luam tawm ntau yam kev daws teeb meem - xws li teeb tsa kev txiav, ua haujlwm nrog database, WCF, thiab lwm yam. Ib pab neeg tau ua haujlwm ntawm qhov haujlwm no, thiab txhua tus neeg twb tau siv los ua qee qhov kev tsim los ua haujlwm nrog kev tsim kho vaj tse. Yog li ntawd, peb tau cais cov cai sib txawv rau hauv ib qho chaw khaws cia, qhwv cov tsev qiv ntawv khaws cia hauv Nuget pob thiab muab tso rau hauv peb lub chaw khaws khoom Nuget sab hauv.

Sij hawm dhau mus, qhov project maj mam tawg, thiab muaj lub siab xav tsim cov neeg siv khoom sab nraud tshiab ntawm JS lub moj khaum niaj hnub thiab khiav lawv hauv qhov browser. Peb pib txav los ntawm WCF/SOAP mus rau REST/HTTP, yog li peb xav tau cov tsev qiv ntawv tshiab kom sai sai tso cov kev pabcuam raws li AspNet WebApi. Thawj version ntawm .Net Framework 4.5 tau tsim los ntawm peb tus kws tsim qauv yuav luag ntawm nws lub hauv caug hauv nws lub sijhawm dawb, tab sis tawm ntawm lub thawv nws ua rau nws muaj peev xwm tshaj tawm cov kev pabcuam nrog peb kab hauv Program.cs uas muaj kev tso cai (NTLM), logging, Swagger, IoC / DI raws li Castle Windsor, customized HTTP cov neeg siv uas xa mus rau ntau yam headers los muab xaus-rau-kawg txiav tawm thoob plaws tag nrho qhov project. Thiab tag nrho qhov no tuaj yeem raug teeb tsa ncaj qha rau hauv cov ntaub ntawv kev pabcuam teeb tsa.

Txawm li cas los xij, tsis yog txhua yam ua tau zoo: lub tsev qiv ntawv no tau dhau los ua qhov tsis yooj yim ntawm kev qhia cov qauv tshiab. Piv txwv li, yog tias koj xav tau ntxiv qee qhov tshwj xeeb nruab nrab, koj yuav tsum tsim lub rooj sib txoos tshiab thiab tau txais los ntawm cov chav kawm hauv paus uas khiav cov kev pabcuam, uas yog qhov tsis yooj yim heev. Hmoov zoo, tsis muaj ntau qhov xwm txheej zoo li no.

Lub sijhawm ntawm Docker thiab Kubernetes

Lub sijhawm tau los txog thaum nthwv dej ntawm Docker thiab Kubernetes tau tuaj txog peb, uas peb tau saib ze ze: tom qab tag nrho, nws yog lub sijhawm zoo los pib txav mus ntxiv raws cov thev naus laus zis, hauv .Net Core. Qhov no txhais tau tias peb yuav xav tau ib qho kev tsim kho tshiab los khiav cov kev pabcuam: qee lub tsev qiv ntawv tau tsiv los ntawm .Net Framework rau .Net Standard thiab .Net Core xyaum tsis muaj kev hloov pauv, qee qhov nrog kev txhim kho me me. Tab sis feem ntau ntawm txhua yam kuv xav rov ua dua qhov kev ua haujlwm cuam tshuam nrog kev pib ua haujlwm ntawm AspNet Core.

Thawj qhov uas peb xav tias yog lub tswv yim uas yuav tshem tawm qhov tsis zoo ntawm cov ntawv dhau los: tsis muaj qhov hloov pauv. Yog li ntawd, nws tau txiav txim siab los ua kom tag nrho cov tsev qiv ntawv muaj kev ywj pheej thiab hloov kho raws li qhov ua tau thiab sau cov kev pabcuam tsim nyog rau kev ua haujlwm raws li tus tsim qauv.

Lub hom phiaj tseem ceeb yog tsim kom muaj kev sib koom ua ke uas piav qhia txog kev cuam tshuam nrog cov ntaub ntawv, tsheb npav thiab lwm yam kev pabcuam. Peb tau sim ua kom muaj kev sib koom ua ke sai thiab tsis mob, thiab cov neeg tsim khoom tuaj yeem mloog zoo rau kev sau ntawv kev lag luam es tsis yog kev tsim kho vaj tse - nws twb tau npaj lawm. Ib qho chaw khaws cia ntau pab txhim kho cov kev paub ntawm kev sib cuam tshuam hauv pab pawg: thaum siv cov txheej txheem sab hauv zoo sib xws, nws yooj yim dua los koom nrog cov txheej txheem txhim kho ntawm lwm pab pawg thiab sib pauv kev txawj ntse.

Thiab vim li cas peb thiaj xav tau Open Source?

Peb xav qhia txog kev loj hlob ntawm peb cov kev txawj ntse thiab tau txais cov lus pom zoo: ib tus neeg sab nraud lub txhab nyiaj yuav tuaj yeem nqa qee yam ntawm lawv tus kheej. Peb kuj txaus siab rau kev txhim kho cov kev coj ua rau kev ua haujlwm nrog microservices thiab DDD ntawm .NET hauv kev lag luam; tej zaum ib tus neeg yuav xav coj qee qhov ntawm lub moj khaum.

Qhov tseeb, ViennaNET

Tam sim no cia peb saib ze dua. Daim ntawv qhia tag nrho yog muab tso rau ntawm no.

ViennaNET.WebApi.*

Cov tsev qiv ntawv no muaj "hauv paus" ViennaNET.WebApi, muaj cov chav tsim tsim rau CompanyHostBuilder cov kev pabcuam, thiab cov txheej txheem teeb tsa ViennaNET.WebApi.Configurators.*, txhua qhov tso cai rau koj ntxiv thiab teeb tsa qee qhov kev ua haujlwm rau tus tsim kev pabcuam. Ntawm cov configurators koj tuaj yeem nrhiav kev sib txuas rau kev txiav, kev kuaj mob, kev lees paub thiab kev tso cai hom, swagger, thiab lwm yam.

ViennaNET.WebApi.Runners.* kuj muaj cov neeg tsim kev pabcuam ua ntej. Cov pob no tso cai rau koj tsis nco qab txhua zaus koj tsim cov kev pabcuam tshiab uas cov neeg tsim khoom yuav tsum tau txuas nrog. Txawm li cas los xij, lawv tsis txwv kev ua haujlwm ntawm tus tsim kev pabcuam hauv txhua txoj kev.

ViennaNET.Mediator.*

Cov tsev qiv ntawv uas tso cai rau koj los tsim lub tsheb npav sab hauv nruab nrab rau cov lus txib thiab kev thov hauv ib qho kev pabcuam. Txoj hauv kev no tso cai rau koj los txo tus naj npawb ntawm DI txhaj tshuaj rau ib qho, piv txwv li, hauv cov tswj. Vim qhov no, koj tuaj yeem ntxiv ntau yam khoom dai rau cov lus thov, uas sib koom ua ke lawv cov txheej txheem thiab txo tus lej ntawm cov lej.

ViennaNET.Validation

Ib lub rooj sib txoos uas muaj cov chav kawm los tsim cov cai siv tau thiab cov kab ke los ntawm lawv. Nws yog qhov yooj yim heev rau kev siv qhov kev lees paub sau npe, vim nws tso cai rau koj piav qhia txhua yam kev lag luam hauv daim ntawv ntawm txoj cai yooj yim thiab cais.

ViennaNET.Redis

Lub tsev qiv ntawv nrog wrappers rau kev ua haujlwm yooj yim nrog Redis ua lub cim xeeb cache.

ViennaNET Specifications

Ib qho kev sib dhos uas muaj cov chav kawm uas siv cov qauv Specification.

Qhov no tsis yog txhua yam uas nyob hauv peb cov teeb. Koj tuaj yeem pom qhov seem hauv GitHub repository. Peb tab tom npaj yuav tso peb cov tsev qiv ntawv rau kev ua haujlwm nrog cov ntaub ntawv rau OpenSource sai sai.

Ua tsaug rau koj qhov kev mloog, peb tos ntsoov rau koj cov lus thiab rub cov lus thov.

Tau qhov twg los: www.hab.com

Ntxiv ib saib