Салом хама!
Мо як ҷомеаи таҳиягарони .NET дар Raiffeisenbank ҳастем ва мо мехоҳем дар бораи маҷмӯи китобхонаҳои инфрасохторӣ дар асоси .NET Core барои зуд эҷод кардани хидматҳои хурд бо як экосистема сӯҳбат кунем. Онҳо онро ба кушодаасос оварданд!
Якчанд таърих
Замоне мо як лоиҳаи бузурги монолитӣ доштем, ки тадриҷан ба маҷмӯи микросервисҳо табдил ёфт (шумо метавонед дар бораи хусусиятҳои ин раванд дар
Вақт гузашт, лоиҳа тадриҷан пароканда шуд ва хоҳиш пайдо шуд, ки модулҳои нави муштарӣ дар чаҳорчӯбаи муосири JS эҷод карда, онҳоро дар браузер иҷро кунед. Мо гузаштан аз WCF/SOAP ба REST/HTTP оғоз кардем, аз ин рӯ ба мо китобхонаҳои нав лозим буд, то хадамотро дар асоси AspNet WebApi зуд оғоз кунем. Варианти аввал дар .Net Framework 4.5 аз ҷониби меъмори мо дар вақти холӣ қариб дар зонуяш сохта шудааст, аммо аз қуттӣ он имкон дод, ки хидмат бо се сатр дар Program.cs, ки дорои иҷозатнома (NTLM) буд, оғоз карда шавад. logging, Swagger, IoC/DI дар асоси Castle Windsor, мизоҷони фармоишии HTTP, ки сарлавҳаҳои гуногунро барои таъмин кардани сабти ба охир дар тамоми лоиҳа интиқол медиҳанд. Ва ин ҳама чиз метавонад минбаъд бевосита дар файли конфигуратсияи хидматрасонӣ танзим карда шавад.
Бо вуҷуди ин, на ҳама чиз ҳамвор буд: ин китобхона аз ҷиҳати ҷорӣ намудани модулҳои нав хеле ноустувор буд. Масалан, агар ба шумо лозим буд, ки ягон миёнаравии махсусро илова кунед, шумо бояд маҷлиси нав эҷод кунед ва аз синфи асосие, ки хидматро иҷро мекунад, мерос гиред, ки ин хеле нороҳат буд. Хушбахтона, ин гуна ҳолатҳо чандон зиёд набуданд.
Давраи Докер ва Кубернетес
Замоне фаро расид, ки мавҷи Докер ва Кубернетес ба мо расид, ки мо онро бодиққат мушоҳида кардем: дар ниҳоят, ин як имконияти хубе буд, ки минбаъд дар технологияҳои .Net Core ҳаракат кунад. Ин маънои онро дорад, ки мо ба инфрасохтори нав ниёз дорем, то хидматҳоро иҷро кунем: баъзе китобхонаҳо аз .Net Framework ба .Net Standard ва .Net Core амалан бидуни тағирот, баъзеҳо бо такмилдиҳии ночиз гузаштанд. Аммо пеш аз ҳама ман мехостам, ки функсияи марбут ба оғози хидматҳо дар AspNet Core аз нав кор кунам.
Аввалин чизе, ки мо баррасӣ кардем, консепсияе буд, ки камбудии асосии версияи қаблиро бартараф мекунад: набудани чандирӣ. Аз ин рӯ, тасмим гирифта шуд, ки тамоми системаи китобхона то ҳадди имкон мустақил ва модулӣ гардонад ва хидматҳоеро, ки барои фаъолият ҳамчун созанда заруранд, ҷамъоварӣ кунанд.
Ҳадафи асосӣ эҷоди равиши ягонаест, ки чӣ гуна муносибат карданро бо пойгоҳи додаҳо, автобусҳо ва хидматҳои дигар тавсиф мекунад. Мо кӯшиш кардем, ки ҳамгироиро зуд ва бедард созем ва таҳиягарон метавонистанд ба навиштани мантиқи тиҷорӣ тамаркуз кунанд, на инфрасохтор - он аллакай омода аст. Анбори умумӣ барои беҳтар кардани таҷрибаи ҳамкории байни дастаҳо кӯмак мекунад: вақте ки инфрасохтори дохилӣ хеле шабеҳ истифода мешавад, ҳамроҳ шудан ба раванди рушди дастаи дигар ва табодули таҷриба осонтар мешавад.
Ва чаро мо ба манбаи кушода ниёз дорем?
Мо мехоҳем камолоти таҷрибаамонро нишон диҳем ва фикру мулоҳизаҳои баландсифат гирем: шахсе, ки берун аз бонк аст, метавонад чизе аз худ биёрад. Мо инчунин ба рушди таҷрибаҳо оид ба кор бо хидматрасонии микросервисҳо ва DDD дар .NET дар саноат манфиатдорем; шояд касе мехоҳад қисматҳои муайяни чаҳорчӯбаро ба ӯҳда гирад.
Дар асл, ViennaNET
Акнун биёед муфассалтар назар кунем.
ViennaNET.WebApi.*
Ин маҷмӯи китобхонаҳо аз "реша" ViennaNET.WebApi иборат аст, ки дорои синфи созанда барои хидмати CompanyHostBuilder ва маҷмӯи конфигураторҳои ViennaNET.WebApi.Configurators.* мебошад, ки ҳар яки онҳо ба шумо имкон медиҳанд, ки баъзе функсияҳоро ба китобхонаи сохташуда илова ва танзим кунед. хизматрасонй. Дар байни конфигураторҳо шумо метавонед пайвастҳоро барои сабти ном, ташхис, аутентификатсия ва намудҳои авторизатсия, swagger ва ғайра пайдо кунед.
ViennaNET.WebApi.Runners.* инчунин бинокорони хидматрасонии пешакӣ танзимшударо дар бар мегирад. Ин бастаҳо ба шумо имкон медиҳанд, ки ҳар дафъае, ки шумо хидмати наверо эҷод мекунед, ки конфигураторҳо бояд пайваст шаванд, ба ёд оред. Бо вуҷуди ин, онҳо ба ҳеҷ ваҷҳ фаъолияти созандаи хидматрасониро маҳдуд намекунанд.
ViennaNET.Mediator.*
Китобхонаҳое, ки ба шумо имкон медиҳанд, ки автобуси дохилии миёнаравро барои фармонҳо ва дархостҳо дар дохили хидмат эҷод кунед. Ин равиш ба шумо имкон медиҳад, ки шумораи тазриқҳои DI-ро то як, масалан, дар контроллерҳо кам кунед. Ба туфайли ин, шумо метавонед ороишгарони гуногунро ба дархостҳо илова кунед, ки коркарди онҳоро муттаҳид мекунад ва миқдори кодро кам мекунад.
ViennaNET.Validation
Маҷмааи дорои маҷмӯи синфҳо барои эҷоди қоидаҳо ва пайдарпайии тасдиқи онҳо. Он барои татбиқи тасдиқи домен хеле қулай аст, зеро он ба шумо имкон медиҳад, ки ҳар як ҳолати тиҷоратро дар шакли як қоидаи оддӣ ва алоҳида тавсиф кунед.
ViennaNET.Redis
Китобхона бо парпечҳо барои кори қулай бо Redis ҳамчун кэши дохили хотира.
Мушаххасоти ViennaNET
Маҷмааи дорои синфҳое, ки намунаи мушаххасотро амалӣ мекунанд.
Ин ҳама чизест, ки дар маҷмӯи мо нест. Шумо метавонед боқимондаро бубинед
Ташаккур барои таваҷҷуҳ, мо интизори шарҳҳо ва дархостҳои шумост.
Манбаъ: will.com