پورتال کاج

واژه پرتال به معنی دروازه یا محل ورود به یک شهرمی باشد و تا بحال بیشترین کاربرد را در حوزه IT داشته است. طبق تعاریفی که تا بحال ارائه شده است، پرتال را می توان یک مرکز ارائه خدمات و اطلاعات اینترنتی دانست

Aspire 9.4 با CLI و ویژگی‌های داشبورد تعاملی منتشر شد


مدی مونتاکیلا، مدیر ارشد محصول

امروز ما نسخه .NET Aspire 9.4 را منتشر کردیم، بزرگ‌ترین نسخه ما تاکنون، که شامل ادغام‌های جدید، ورودی‌های مبتنی بر داشبورد تعاملی و یک ابزار خط فرمان مستقل با کامپایل AOT برای ایجاد و اجرای برنامه‌های Aspirified است. هفته گذشته نیز اولین نقشه راه خود را منتشر کردیم که مجموعه‌ای از ویژگی‌های هیجان‌انگیز را که قصد داریم در 6 ماه آینده پیاده‌سازی کنیم، مشخص می‌کند. ویژگی‌های این نسخه آن‌قدر زیاد هستند که نمی‌توانم همه را در یک پست وبلاگ پوشش دهم، بنابراین چند مورد از موارد مورد علاقه‌ام را انتخاب کرده‌ام – بقیه را می‌توانید در مستندات چه چیز جدیدی ببینید.

⚡ فقط کلون کنید و با CLI جدید Aspire اجرا کنید

با Aspire 9.4، ابزار خط فرمان Aspire (CLI) به طور رسمی به مرحله GA رسیده و برای ساده‌تر کردن حلقه توسعه شما طراحی شده است. این CLI یک روش سریع، قابل اسکریپت و یکپارچه برای ساخت، اجرا و پیکربندی برنامه‌های شما ارائه می‌دهد.

این نسخه شامل چهار دستور اصلی اولیه است:

  • aspire new – از مجموعه قالب‌های ما برای شروع سریع برنامه خود انتخاب کنید
  • aspire add – ادغام‌های میزبانی Aspire را از هر نقطه در مخزن خود اضافه کنید
  • aspire run – کل پشته برنامه خود را از هر ترمینال یا ویرایشگر (یا زیرپوشه!) اجرا کنید
  • aspire config – تنظیمات CLI و پرچم‌های ویژگی را مشاهده، تنظیم یا تغییر دهید – به صورت محلی برای مخزن یا به صورت کلی برای دستگاه شما

ما همچنین نسخه به‌روزرسانی‌شده aspire publish را که هنوز در حالت پیش‌نمایش است، و دو دستور در مرحله بتا – exec (برای اجرای ابزارهای CLI مانند مهاجرت‌های پایگاه داده) و deploy (برای استقرار کل پشته شما در محیط‌های توسعه، تست یا حتی تولید) اضافه کرده‌ایم. این دو دستور بتا را می‌توان از طریق aspire config set فعال کرد – برای جزئیات بیشتر به مستندات مرجع CLI مراجعه کنید.

CLI به صورت بومی با AOT (کامپایل پیش از اجرا) ساخته شده است، که آن را در معماری‌های مختلف فوق‌العاده سریع می‌کند. شما می‌توانید CLI نسخه GA را از اسکریپت نصب ما دانلود کنید:

Bash:

curl -sSL https://aspire.dev/install.sh | bash

Powershell:

iex "& { $(irm https://aspire.dev/install.ps1) }"

توجه: می‌توانید همچنان از Aspire CLI به عنوان یک ابزار dotnet استفاده کنید، اما این نسخه AOT نخواهد بود. اگر در حال حاضر از ابزار dotnet استفاده می‌کنید و می‌خواهید به نسخه AOT ارتقا دهید، ابتدا آن را با dotnet tool uninstall -g aspire.cli حذف کنید.

درباره Aspire CLI در مستندات ما بیشتر بیاموزید.

🖱️ تعامل سفارشی با داشبورد

با Aspire، می‌توانید داشبورد را با دستورات سفارشی منابع، URLهای نام‌گذاری‌شده و امکان اتصال به رویدادهای چرخه حیات منابع، برای برنامه خاص خود سفارشی کنید. Aspire 9.4 یک بازنگری کاربرپسند در APIهای رویداد ما و یک نقطه گسترش جدید و مهم – سرویس تعامل – ارائه می‌دهد.

با سرویس تعامل، می‌توانید UX سفارشی برای دریافت ورودی کاربر در حین توسعه، ارائه اعلان‌ها یا درخواست تأیید قبل از اجرای یک دستور ایجاد کنید. سرویس تعامل از 5 نوع ورودی مختلف پشتیبانی می‌کند:

  • متن (ورودی متنی استاندارد – عالی برای انتقال آرگومان‌ها، ایجاد داده‌های موک و غیره)
  • متن مخفی (ورودی متنی مخفی – عالی برای کلیدهای API، توکن‌ها و غیره)
  • عدد (ورودی عددی – عالی برای پر کردن آیتم‌های پایگاه داده، اجرای تست‌های بار)
  • انتخاب (منوی کشویی از یک لیست مشخص – مفید برای ورودی‌های ساختاریافته)
  • بولین (چک‌باکس – عالی برای فعال/غیرفعال کردن مواردی مانند داده‌های موک در زمان اجرا)

تصویری از داشبورد Aspire با یک مدال جدید "درخواست ورودی" که نام، رمز عبور، نوع شام و تعداد را درخواست می‌کند.

سرویس تعامل همچنین در CLI برای ورودی‌های مورد نیاز در حین انتشار و استقرار کار می‌کند.

ویژگی پیش‌نمایش: سرویس تعامل هنوز در حالت پیش‌نمایش است و API ممکن است با پالایش بیشتر تغییر کند. مشتاقانه منتظر دریافت بازخورد شما در مورد آن در GitHub Aspire هستیم!

🔠 درخواست داخلی برای پارامترها

Aspire 9.4 از سرویس تعامل جدید برای جمع‌آوری مقادیر پارامترهای از دست رفته تعریف‌شده در apphost شما استفاده می‌کند. به جای اینکه انتظار داشته باشید هر توسعه‌دهنده در تیم شما فایل appsettings.development.json یا .env محلی خود را حفظ کند، Aspire قبل از راه‌اندازی هر منبعی که به آنها نیاز دارد، در داشبورد برای مقادیر از دست رفته درخواست می‌دهد. حتی می‌توانید توضیحات پارامترها را با مارک‌داون غنی سفارشی کنید، بنابراین هر کسی که برنامه شما را کلون و اجرا می‌کند، راهنمایی واضحی درباره مقادیر مورد نیاز داشته باشد – و سپس به صورت اختیاری آن مقادیر را در اسرار کاربر خود برای پیکربندی پروژه‌ای که در کنترل منبع ذخیره نمی‌شود، ذخیره کند.

✨ توسعه آسان AI با GitHub Models و Azure AI Foundry

Aspire توسعه برنامه‌های پیچیده و توزیع‌شده را ساده می‌کند، و یک نمونه محبوب و رو به رشد از این، توسعه AI است. اگر در حال افزودن جریان‌های کاری مبتنی بر عامل، چت‌بات‌ها یا سایر تجربیات فعال‌شده با AI به پشته‌های خود هستید، می‌دانید که آزمایش مدل‌های مختلف، اتصال آنها، استقرار (و احراز هویت!) در زمان توسعه و فهمیدن آنچه در حال اشکال‌زدایی رخ می‌دهد، چقدر دشوار است. اما برنامه‌های فعال‌شده با AI واقعاً فقط برنامه‌های توزیع‌شده با یک نوع جدید از کانتینر – یک مدل AI! – هستند، که به این معناست که Aspire برای ساده‌سازی این حلقه توسعه عالی است.

Aspire 9.4 شامل دو ادغام میزبانی متمرکز بر AI جدید است – GitHub Models (پیش‌نمایش) و Azure AI Foundry (پیش‌نمایش) – که به شما امکان می‌دهند مدل‌های AI را در apphost خود تعریف کنید، سپس آنها را به صورت محلی اجرا کنید یا مدل‌ها را برای توسعه در برابر آنها مستقر کنید. هر دو ادغام به طور یکپارچه با ادغام کلاینت Azure AI Inference (پیش‌نمایش) کار می‌کنند، بنابراین شما ردیابی‌های دقیق OpenTelemetry و کد راه‌اندازی ساده برای برنامه کلاینت یا سرویسی که آن را پیاده‌سازی می‌کند، دریافت می‌کنید.

این تمام کدی است که برای تعریف، استقرار و اجرای یک مدل جدید GitHub یا Azure AI Foundry در apphost شما لازم است:


// AppHost.cs
var ai = builder.AddAzureAIFoundry("ai");

var embedding = ai.AddDeployment(
    name: "text-embedding",
    modelName: "text-embedding-3-small",
    modelVersion: "1",
    format: "OpenAI")
     .WithProperties(d =>
        {
            d.SkuCapacity = 20;
        });
    

🌐 یک منبع دیگر با ExternalService و ادغام به‌روزرسانی‌شده YARP

یکی از ویژگی‌های مورد علاقه من در 9.4 به نظر کوچک می‌آید، اما برای هر کسی که با APIهای خارجی یا شخص ثالث کار می‌کند، بهبود بزرگی در کیفیت زندگی است. حالا می‌توانید از AddExternalService() برای مدل‌سازی هر URL یا نقطه پایانی به عنوان یک منبع استفاده کنید، وضعیت سلامت را دریافت کنید و آن را مانند هر منبع دیگری در apphost ارجاع یا پیکربندی کنید.


var externalApi = builder.AddExternalService("resource-name", "https://api.example.com");

var frontend = builder.AddNpmApp("frontend", "../MyJSCodeDirectory")
    .WithReference(externalApi);
    

بسیاری از APIهای خارجی نیاز به نوعی احراز هویت یا هدرهای خاص، نسخه‌بندی یا مسیرها دارند. ادغام پیش‌نمایش YARP با APIهای تبدیل روان به‌روزرسانی شده است، بنابراین می‌توانید پیکربندی خود را به صورت برنامه‌نویسی در C# با انواع قوی، IntelliSense و هر پیکربندی منبع Aspire دیگر تعریف کنید.

🎉 امروز با 9.4 شروع کنید

ویژگی‌ها، به‌روزرسانی‌های ادغام و بهبودهای کیفیت زندگی بسیار بیشتری در Aspire 9.4 ارائه شده است – اگر بخواهم همه را پوشش دهم، طول پستم به سطح استفن توب می‌رسد! می‌توانید لیست جامعی از تغییرات را در مستندات چه چیز جدیدی ببینید و حالا با به‌روزرسانی نسخه SDK و بسته‌های AppHost.csproj خود از آنها استفاده کنید:



    

من بسیار به این نسخه و کار فوق‌العاده‌ای که هم از تیم Aspire و هم از مشارکت‌کنندگان جامعه ما در آن انجام شده، افتخار می‌کنم. مشتاقانه منتظر دریافت بازخورد شما در مورد 9.4 و آنچه که می‌خواهید بعدی ببینید هستیم