NET Aspire چیست؟

NET Aspire چیست؟

HTML Editor - Full Version

 

معرفی NET Aspire 

دات نت Aspire یک چارچوب جامع و ابر محور (cloud-oriented) است که برای ایجاد برنامه های کاربردی توزیع شده مقیاس پذیر، قابل مشاهده و درجه تولید طراحی شده است. در بخش پیش نمایش نسخه .NET 8 معرفی شد.

این چارچوب از طریق مجموعه‌ای از بسته‌های NuGet ارائه می‌شود که هر کدام جنبه‌های مختلفی از توسعه برنامه‌های بومی ابری را مورد توجه قرار می‌دهند، که معمولاً به‌عنوان شبکه‌ای از میکرو سرویس‌ها به جای یک پایگاه کد واحد و بزرگ ساخته می‌شوند و به شدت به انواع سرویس‌ها مانند پایگاه‌های داده، سیستم های پیام رسانی و ... متکی هستند. 

 

Orchestration

ارکستراسیون در زمینه برنامه های کاربردی ابری شامل هماهنگ سازی و مدیریت اجزای مختلف است. دات نت Aspire این فرآیند را با ساده کردن راه اندازی و ادغام بخش های مختلف یک برنامه کاربردی ابری بهبود می بخشد. بنابراین کار را برای مدیریت مؤثر جنبه هایی مانند کشف خدمات، متغیرهای محیطی و پیکربندی کانتینرها آسان میکند، و نیاز به کدگذاری پیچیده سطح پایین را از بین می برد. 

با دات نت Aspire، ارکستراسیون به حوزه های کلیدی مانند:

ترکیب برنامه: این شامل تعریف پروژه های دات نت، کانتینرها، فایل های اجرایی و منابع مبتنی بر ابر است که برنامه را تشکیل می دهند.
کشف سرویس و مدیریت رشته های اتصال: میزبان برنامه مسئول ترکیب یکپارچه رشته های اتصال دقیق و جزئیات کشف سرویس است، در نتیجه روند توسعه را بهبود می بخشد.

به عنوان مثال، دات نت Aspire ایجاد یک منبع کانتینر Redis محلی و راه اندازی رشته اتصال مربوطه را در یک پروژه "frontend" با حداقل کدنویسی، تنها با استفاده از چند متد کمکی امکان پذیر می کند.

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis container to the application.
var cache = builder.AddRedisContainer("cache");

// Add the frontend project to the application and configure it to use the 
// Redis container, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
       .WithReference(cache);

 

 

Components

مؤلفه‌ها یا کامپوننت های .NET Aspire که به‌عنوان بسته‌های NuGet در دسترس هستند، برای ساده‌سازی ادغام با سرویس‌ها و پلتفرم‌های پرکاربرد مانند Redis و PostgreSQL ساخته شده‌اند. این مؤلفه‌ها با ارائه تنظیمات پیکربندی یکنواخت، از جمله اجرای بررسی‌های سلامت و ویژگی‌های تله متری (telemetry)، جنبه‌های مختلف توسعه برنامه‌های بومی ابری را ارائه می‌کنند.

هر یک از این اجزا به گونه ای طراحی شده اند که به طور یکپارچه با چارچوب ارکستراسیون دات نت Aspire ادغام شوند. آنها توانایی انتشار خودکار تنظیمات خود را در بین وابستگی ها، بر اساس روابط تعریف شده در پروژه دات نت و ارجاعات پکیج ها را دارند. این به این معنی است که اگر یک کامپوننت، مثلاً Example.ServiceFoo، به دیگری، Example.ServiceBar وابستگی داشته باشد، Example.ServiceFoo به طور خودکار تنظیمات لازم را از Example.ServiceBar برای تسهیل ارتباط بین آنها اتخاذ می کند.

برای نشان دادن، اجازه دهید استفاده از .NET Aspire Service Bus را در یک سناریوی کدنویسی در نظر بگیریم.

builder.AddAzureServiceBus("servicebus");

متد AddAzureServiceBus در دات نت Aspire به چندین تابع کلیدی می پردازد:

یک ServiceBusClient را به صورت Single در کانتینر تزریق وابستگی (DI) ایجاد می‌کند و امکان اتصال به Azure Service Bus را فراهم می‌کند.
این متد امکان پیکربندی ServiceBusClient را فراهم می کند که می تواند مستقیماً در کد یا از طریق تنظیمات پیکربندی خارجی انجام شود.
به‌علاوه، health checks ، loggin و ویژگی‌های تله‌متری را که به‌طور خاص برای Azure Service Bus طراحی شده‌اند، فعال می‌کند و از نظارت و نگهداری کارآمد اطمینان می‌دهد.

 

Tooling

برنامه های توسعه یافته با .NET Aspire از ساختار یکنواختی پیروی می کنند که توسط الگوهای پروژه پیش فرض .NET Aspire ایجاد شده است. به طور معمول، یک برنامه دات نت Aspire از حداقل سه پروژه مجزا تشکیل شده است:

Foo: این برنامه اولیه است که می تواند یک پروژه استاندارد دات نت مانند Blazor UI یا Minimal API باشد. با رشد برنامه، پروژه های بیشتری را می توان اضافه کرد و هماهنگی آنها از طریق پروژه های Foo.AppHost و Foo.ServiceDefaults مدیریت می شود.
Foo.AppHost: پروژه AppHost بر هماهنگی سطح بالای برنامه نظارت دارد. این شامل اسمبل اجزای مختلف مانند API ها، کانتینرهای سرویس و فایل های اجرایی و پیکربندی اتصالات و ارتباطات آنها می شود.
Foo.ServiceDefaults: این پروژه تنظیمات پیکربندی پیش فرض را برای یک برنامه NET Aspire در خود جای داده است. این تنظیمات، که شامل جنبه‌هایی مانند Health check و تنظیمات OpenTelemetry می‌شوند، می‌توانند در صورت نیاز تنظیم و گسترش داده شوند.

برای کمک به شروع با این ساختار، دو قالب اولیه دات نت Aspire ارائه شده است:

برنامه .NET Aspire: یک الگوی اولیه اساسی است که فقط شامل پروژه های Foo.AppHost و Foo.ServiceDefaults می شود و چارچوب اساسی را برای ساختن فراهم می کند.
.NET Aspire Starter Application: یک الگوی جامع تر، این قالب نه تنها شامل پروژه های Foo.AppHost و Foo.ServiceDefaults می شود، بلکه دارای پروژه های UI و API از پیش تنظیم شده به همراه عملکردهای استاندارد دات نت Aspire از پیش پیکربندی شده اند نیز می باشد .

مرتضی جنگجو

برنامه نویس fullstack با بیش از 14 سال سابقه کار و همکاری در توسعه و پیاده سازی نرم افزارهای تحت وب با تکنولوژی Net. در شرکتهای بزرگ ایرانی، هلندی، فنلاندی و ترکیه

شبکه های اجتماعی نویسنده

دیدگاه کاربران