ViennaNET: seti yemaraibhurari eiyo backend

Hello vose!

Isu tiri nharaunda yeNET Developers kuRaiffeisenbank uye tinoda kutaura nezve seti yemaraibhurari ezvivakwa zvinoenderana neNET Core yekukasika kugadzira mamicroservices ane imwe ecosystem. Vakauya nayo kuOpen Source!

ViennaNET: seti yemaraibhurari eiyo backend

A bit of history

Pane imwe nguva takanga tine hombe monolithic purojekiti, iyo zvishoma nezvishoma yakashanduka kuita seti ye microservices (unogona kuverenga nezve maficha eichi chiitiko mukati. ichi chinyorwa) Mukuita izvi, takasangana nedambudziko rekuti kana tichigadzira mamicroservices matsva, taiwanzofanirwa kutevedzera zvigadziriso zvakasiyana-siyana - sekumisikidza matanda, kushanda nedatabase, WCF, nezvimwe. Chikwata chimwe chakashanda pachirongwa ichi, uye munhu wese akange atojaira imwe nzira yakasimbiswa yekushanda nezvivakwa. Naizvozvo, isu takapatsanura iyo yakajairika kodhi mune yakaparadzana repository, yakaputira akaunganidzwa maraibhurari muNuget mapakeji uye tikaaisa mukati medu Nuget repository.

Nguva yakapfuura, purojekiti yakatsemuka zvishoma nezvishoma, uye pakanga paine chishuwo chekugadzira mitsva yemutengi-parutivi mamodule pane yemazuva ano JS chimiro uye womhanya iwo mubrowser. Takatanga kufamba kubva kuWCF/SOAP kuenda kuREST/HTTP, saka taida maraibhurari matsva kuti tikurumidze kuvhura masevhisi akavakirwa paAspNet WebApi. Shanduro yekutanga pa.Net Framework 4.5 yakagadzirwa nemugadziri wedu anenge akapfugama munguva yake yekusununguka, asi kunze kwebhokisi yakaita kuti zvikwanise kutangisa basa rine mitsetse mitatu muProgram.cs yaiva nemvumo (NTLM), kutema miti, Swagger, IoC/DI payakavakirwa paCastle Windsor, yakagadziridzwa vatengi veHTTP vanoendesa misoro yakasiyana-siyana kuti ipe magumo-ku-kuguma kutema matanda mukati mese chirongwa. Uye chinhu ichi chose chinogona kugadziridzwa zvakananga musevhisi yekumisikidza faira.

Nekudaro, hazvisi zvese zvaive zvakatsetseka: raibhurari iyi yakave isingachinjiki zvakanyanya maererano nekuunza mamodule matsva. Semuenzaniso, kana iwe waida kuwedzera imwe yakakosha yepakati, waifanira kugadzira musangano mutsva uye kugara nhaka kubva kune base kirasi inomhanyisa sevhisi, izvo zvaive zvisingaite. Sezvineiwo, kwakanga kusina nyaya dzakadaro dzakawanda.

Nguva yeDocker uye Kubernetes

Nguva yasvika apo masaisai eDocker naKubernetes akasvika kwatiri, izvo zvatakanyatsotarisa: shure kwezvose, wakanga uri mukana wakanaka wekutanga kuenderera mberi nematekinoroji, mu.Net Core. Izvi zvinoreva kuti tichada zvivakwa zvitsva kuti tiite masevhisi: mamwe maraibhurari akatama kubva pa.Net Framework kuenda ku.Net Standard uye .Net Core zvisingaite pasina shanduko, mamwe aine zvigadziriso zvidiki. Asi zvakanyanya pane zvese ndaida kugadziridza mashandiro ane chekuita nekutangisa masevhisi paAspNet Core.

Chinhu chekutanga chatakafunga yaive pfungwa yaizobvisa chikuru dhizaini yeshanduro yapfuura: kushaikwa kwekushanduka. Naizvozvo, zvakasarudzwa kuita kuti raibhurari yese ive yakazvimiririra uye modular sezvinobvira uye kuunganidza masevhisi anodiwa pakuita basa semuvaki.

Chinangwa chikuru ndechekugadzira nzira yakabatana inotsanangura nzira yekudyidzana nedhatabhesi, mabhazi uye mamwe masevhisi. Isu takaedza kuita kusanganisa nekukurumidza uye kusarwadza, uye vanogadzira vanogona kutarisisa pakunyora bhizinesi pfungwa kwete zvivakwa - yakatogadzirira. Iyo yakajairika repository inobatsira kuvandudza ruzivo rwekudyidzana mukati mezvikwata: kana zvakafanana zvemukati zvivakwa zvichishandiswa, zviri nyore kujoinha maitiro ekuvandudza echimwe chikwata uye hunyanzvi hwekuchinjana.

Uye nei tichida Open Source?

Tinoda kuratidza kukura kwehunyanzvi hwedu uye kugamuchira mhinduro dzemhando yepamusoro: munhu ari kunze kwebhangi achakwanisa kuunza chimwe chinhu chavo. Isu tinofarirawo kuvandudzwa kwemaitiro ekushanda ne microservices uye DDD pa .NET muindasitiri; pamwe mumwe munhu angada kutora zvimwe zvikamu zvegadziriro.

Chaizvoizvo, ViennaNET

Zvino ngatinyatsoongororai. Iyo yakazara source code yakatumirwa pano.

ViennaNET.WebApi.*

Iyi seti yemaraibhurari ine "mudzi" ViennaNET.WebApi, ine kirasi yevaki yebasa reCompanyHostBuilder, uye seti yezvigadziriso ViennaNET.WebApi.Configurators.*, imwe neimwe inobvumidza iwe kuwedzera nekugadzirisa mamwe maitiro kune akagadzirwa. service. Pakati pezvigadziriso iwe unogona kuwana zvinongedzo zvekutema matanda, diagnostics, authentication uye mvumo mhando, swagger, nezvimwe.

ViennaNET.WebApi.Runners.* zvakare ine pre-configured sevhisi vavaki. Aya mapakeji anotendera iwe kuti usayeuke pese paunogadzira sevhisi nyowani inoda kubatanidzwa. Zvisinei, havadzikisi kushanda kwemuvaki webasa nenzira ipi zvayo.

ViennaNET.Mediator.*

Maraibhurari anobvumidza iwe kugadzira yemukati yepakati bhazi yemirairo uye zvikumbiro mukati mesevhisi. Iyi nzira inobvumidza iwe kudzikisa huwandu hweDI majekiseni kune imwe, semuenzaniso, mune controllers. Nekuda kweizvi, iwe unogona kuwedzera vagadziri vakasiyana-siyana kune zvikumbiro, izvo zvinobatanidza kugadzirisa kwavo uye kuderedza huwandu hwekodhi.

ViennaNET.Validation

Gungano rine seti yemakirasi ekugadzira mitemo yekusimbisa uye kutevedzana kubva kwavari. Izvo zvakaringana kwazvo kuita dhizaini yekusimbisa, sezvo ichikubvumidza iwe kutsanangura yega yega mamiriro ebhizinesi nenzira yeiri nyore uye yakaparadzana mutemo.

ViennaNET.Redis

Raibhurari ine wrappers yebasa riri nyore neRedis senge in-memory cache.

ViennaNET.Specifications

Gungano rine makirasi anoita Specification pattern.

Izvi hazvisi zvese zviri museti yedu. Unogona kuona zvimwe muGitHub repository. Tiri kuronga kuburitsa maraibhurari edu ekushanda nemadhatabhesi kuOpenSource munguva pfupi.

Tinokutendai nekutarisisa kwenyu, tinotarisira mhinduro dzenyu uye nekudhonza zvikumbiro.

Source: www.habr.com

Voeg