ViennaNET: පසුපෙළ සඳහා පුස්තකාල කට්ටලයක්

ආයුබෝවන් හැමෝටම!

අපි Raiffeisenbank හි .NET සංවර්ධකයින්ගේ ප්‍රජාවක් වන අතර අපට තනි පරිසර පද්ධතියක් සහිත ක්ෂුද්‍ර සේවා ඉක්මනින් නිර්මාණය කිරීම සඳහා .NET Core මත පදනම් වූ යටිතල පහසුකම් පුස්තකාල කට්ටලයක් ගැන කතා කිරීමට අවශ්‍යය. ඔවුන් එය විවෘත මූලාශ්‍රයට ගෙනාවා!

ViennaNET: පසුපෙළ සඳහා පුස්තකාල කට්ටලයක්

ඉතිහාසය ටිකක්

වරෙක අපට විශාල මොනොලිතික් ව්‍යාපෘතියක් තිබුණි, එය ක්‍රමයෙන් ක්ෂුද්‍ර සේවා කට්ටලයක් බවට පත් විය (මෙම ක්‍රියාවලියේ විශේෂාංග ගැන ඔබට කියවිය හැකිය. මේ ලිපිය කියවන්න) මෙම ක්‍රියාවලියේදී, නව ක්ෂුද්‍ර සේවා නිර්මාණය කිරීමේදී, අපට බොහෝ විට විවිධ යටිතල පහසුකම් විසඳුම් පිටපත් කිරීමට සිදු වූ ගැටලුවක් අපට හමු විය - එනම් ලොග් වීම, දත්ත සමුදායක් සමඟ වැඩ කිරීම, WCF යනාදිය. එක් කණ්ඩායමක් මෙම ව්‍යාපෘතියේ වැඩ කළ අතර, යටිතල පහසුකම් සමඟ වැඩ කිරීමට යම් ස්ථාපිත ප්‍රවේශයකට සෑම දෙනාම දැනටමත් පුරුදු වී සිටියහ. එමනිසා, අපි පොදු කේතය වෙනම ගබඩාවකට වෙන් කර, එකතු කරන ලද පුස්තකාල නුගෙට් පැකේජවල ඔතා අපගේ අභ්‍යන්තර නුගේට් ගබඩාවේ තැබුවෙමු.

කාලය ගෙවී ගිය අතර, ව්‍යාපෘතිය ක්‍රමයෙන් ඛණ්ඩනය වූ අතර නවීන 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 හි සේවා දියත් කිරීම හා සම්බන්ධ ක්‍රියාකාරිත්වය නැවත සකස් කිරීමට ය.

අපි සලකා බැලූ පළමු දෙය නම් පෙර අනුවාදයේ ප්රධාන අඩුපාඩුව ඉවත් කරන සංකල්පයකි: නම්යශීලීභාවය නොමැතිකම. එබැවින්, සම්පූර්ණ පුස්තකාල පද්ධතිය හැකිතාක් ස්වාධීන හා මොඩියුලර් බවට පත් කිරීමටත්, ඉදිකිරීම්කරුවෙකු ලෙස ක්‍රියාකාරීත්වයට අවශ්‍ය සේවාවන් එකතු කිරීමටත් තීරණය විය.

ප්රධාන ඉලක්කය වන්නේ දත්ත සමුදායන්, බස් රථ සහ අනෙකුත් සේවාවන් සමඟ අන්තර් ක්රියා කරන ආකාරය විස්තර කරන ඒකාබද්ධ ප්රවේශයක් නිර්මාණය කිරීමයි. අපි ඒකාබද්ධ කිරීම් ඉක්මන් සහ වේදනා රහිත කිරීමට උත්සාහ කළ අතර, සංවර්ධකයින්ට යටිතල පහසුකම් වලට වඩා ව්‍යාපාර තර්කනය ලිවීමට අවධානය යොමු කළ හැකිය - එය දැනටමත් සූදානම්. පොදු ගබඩාවක් කණ්ඩායම් තුළ අන්තර් ක්‍රියාකාරිත්වයේ අත්දැකීම් වැඩිදියුණු කිරීමට උපකාරී වේ: ඉතා සමාන අභ්‍යන්තර යටිතල පහසුකම් භාවිතා කරන විට, වෙනත් කණ්ඩායමක සංවර්ධන ක්‍රියාවලියට සම්බන්ධ වීම සහ විශේෂඥ දැනුම හුවමාරු කර ගැනීම පහසු වේ.

සහ අපට විවෘත මූලාශ්‍ර අවශ්‍ය වන්නේ ඇයි?

අපගේ ප්‍රවීණත්වයේ පරිණතභාවය පෙන්වීමට සහ උසස් තත්ත්වයේ ප්‍රතිපෝෂණ ලබා ගැනීමට අපට අවශ්‍යය: බැංකුවෙන් පිටත සිටින පුද්ගලයෙකුට තමාගේම දෙයක් ගෙන ඒමට හැකි වනු ඇත. කර්මාන්තයේ .NET හි ක්ෂුද්‍ර සේවා සහ DDD සමඟ වැඩ කිරීමේ පරිචයන් වර්ධනය කිරීම ගැනද අපි උනන්දු වෙමු; සමහර විට යමෙකුට රාමුවේ සමහර කොටස් පවරා ගැනීමට අවශ්‍ය වනු ඇත.

ඇත්ත වශයෙන්ම, වියානානෙට්

දැන් අපි සමීපව බලමු. සම්පූර්ණ මූල කේතය මෙහි පළ කර ඇත.

ViennaNET.WebApi.*

මෙම පුස්තකාල සමූහය සමන්විත වන්නේ "root" ViennaNET.WebApi, CompanyHostBuilder සේවාව සඳහා වන තනන්නා පන්තිය සහ ViennaNET.WebApi.Configurators.* වින්‍යාසකරුවන් සමූහයක් අඩංගු වන අතර, ඒ සෑම එකක්ම ඔබට නිර්මාණය කරන ලද දේට යම් ක්‍රියාකාරීත්වයක් එක් කිරීමට සහ වින්‍යාස කිරීමට ඉඩ සලසයි. සේවය. වින්‍යාස කරන්නන් අතර ඔබට ලොග් වීම, රෝග විනිශ්චය, සත්‍යාපනය සහ අවසර වර්ග, ස්වැගර් යනාදිය සඳහා සම්බන්ධතා සොයාගත හැකිය.

ViennaNET.WebApi.Runners.* හි පූර්ව වින්‍යාසගත සේවා සාදන්නන් ද අඩංගු වේ. වින්‍යාසකරුවන් සම්බන්ධ කිරීමට අවශ්‍ය නව සේවාවක් සාදන සෑම අවස්ථාවකම මතක තබා නොගැනීමට මෙම පැකේජ ඔබට ඉඩ සලසයි. කෙසේ වෙතත්, ඔවුන් කිසිදු ආකාරයකින් සේවා තනන්නාගේ ක්රියාකාරිත්වය සීමා නොකරයි.

ViennaNET.Mediator.*

සේවාවක් තුළ විධාන සහ ඉල්ලීම් සඳහා අභ්‍යන්තර අතරමැදි බස් රථයක් නිර්මාණය කිරීමට ඔබට ඉඩ සලසන පුස්තකාල. මෙම ප්රවේශය ඔබට DI එන්නත් ගණන එකකට අඩු කිරීමට ඉඩ සලසයි, උදාහරණයක් ලෙස, පාලකයන් තුළ. මේ නිසා, ඔබට ඉල්ලීම් සඳහා විවිධ සැරසිලි කරුවන් එකතු කළ හැකිය, එමඟින් ඒවායේ සැකසුම් ඒකාබද්ධ කරන අතර කේත ප්‍රමාණය අඩු කරයි.

ViennaNET. වලංගුකරණය

ඒවායින් වලංගු කිරීමේ නීති සහ අනුපිළිවෙල නිර්මාණය කිරීම සඳහා පන්ති සමූහයක් අඩංගු එකලස් කිරීම. ඩොමේන් වලංගුකරණය ක්‍රියාත්මක කිරීම සඳහා එය ඉතා පහසු වේ, එය ඔබට එක් එක් ව්‍යාපාර තත්ත්වය සරල සහ වෙනම රීතියක ආකාරයෙන් විස්තර කිරීමට ඉඩ සලසයි.

ViennaNET.Redis

මතකයේ ඇති හැඹිලියක් ලෙස Redis සමඟ පහසු වැඩ සඳහා දවටන සහිත පුස්තකාලයක්.

ViennaNET. පිරිවිතර

පිරිවිතර රටාව ක්‍රියාත්මක කරන පන්ති අඩංගු එකලස් කිරීමක්.

අපේ සෙට් එකේ මේ ඔක්කොම නෑ. ඉතුරු ටික බලන්න පුළුවන් GitHub ගබඩාවේ. දත්ත සමුදායන් සමඟ වැඩ කිරීම සඳහා අපගේ පුස්තකාල ඉක්මනින් OpenSource වෙත මුදා හැරීමට අපි සැලසුම් කරමු.

ඔබගේ අවධානයට ස්තූතියි, අපි ඔබගේ අදහස් සහ අදින්න ඉල්ලීම් බලාපොරොත්තු වන්නෙමු.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න