TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #611 174
5️⃣ساده‌سازی توسعه‌ی لوکال با Aspire 🚀

راه‌اندازی محیط توسعه‌ی لوکال معمولاً آزاردهنده است. توسعه‌دهنده‌ها ساعت‌ها زمان صرف نصب دیتابیس‌ها، تنظیم connection stringها و هماهنگ کردن وابستگی‌ها با هم می‌کنند. 😵‍💫

حتی با وجود Docker، باز هم مقدار زیادی تنظیمات دستی وجود دارد؛ از جمله volumeها و کانفیگ هر کانتینر.

ءNET Aspire. این مشکل را با ارائه‌ی یک روش یکپارچه برای مدیریت وابستگی‌ها، پیکربندی و استقرار (deployment) حل می‌کند.

ءAspire یک application framework برای ساخت اپلیکیشن‌های cloud-native، قابل مشاهده (observable) و آماده‌ی production با NET. است. این فریم‌ورک به‌صورت پیش‌فرض موارد زیر را هندل می‌کند:
• Service discovery
• Configuration
• Health checks
• Telemetry 📊
از نسخه‌ی 13 به بعد، NET Aspire. به Aspire تغییر برند داد و حالا یک پلتفرم چندزبانه (multi-language) برای ساخت اپلیکیشن است.

ءAspire دو نوع پروژه‌ی جدید به solution شما اضافه می‌کند:

🔸️ءAppHost: ارکستریتوری که معماری اپلیکیشن و وابستگی‌ها را تعریف می‌کند.

🔹️ءServiceDefaults: تنظیمات مشترک و observability که روی همه‌ی سرویس‌ها اعمال می‌شود.

نحوه‌ی اضافه کردن Aspire به پروژه‌ی جدید

مرحله 1️⃣: نصب templateهای Aspire
dotnet new install Aspire.ProjectTemplates

مرحله 2️⃣: نصب Aspire CLI
dotnet tool install --global aspire.cli

مرحله 3️⃣: اضافه کردن Aspire به solution از طریق Visual Studio یا Rider، یا استفاده از CLI برای ساخت یک پروژه‌ی جدید Aspire.

مرحله 4️⃣: تعریف وابستگی‌ها در پروژه‌ی AppHost
var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");
var postgres = builder.AddPostgres("postgres");

builder
.AddProject<Projects.Products_Api>("products-api");
.WithReference(cache)
.WithReference(postgres);

builder.Build().Run();

مرحله 5️⃣: استفاده از connection stringها در پروژه‌ی API
var postgresConnection = configuration.GetConnectionString("postgres");
var redisConnection = configuration.GetConnectionString("cache");

ءAspire به‌صورت خودکار connection stringها را از طریق environment variableها تزریق می‌کند. نیازی نیست آن‌ها را دستی داخل appsettings.json تعریف کنید. ⚡️

با یکپارچگی Docker، وقتی پروژه‌ی AppHost را اجرا می‌کنید، Aspire تمام وابستگی‌ها را به‌صورت خودکار بالا می‌آورد. PostgreSQL، Redis و هر سرویس دیگری داخل کانتینر اجرا می‌شوند و Aspire چرخه‌ی عمر آن‌ها را مدیریت می‌کند. 🐳

داشبورد Aspire در مرورگر باز می‌شود و همه‌ی سرویس‌های در حال اجرا، وضعیت سلامت، لاگ‌ها و distributed traceها را نمایش می‌دهد. 📈

مزایای کلیدی استفاده از Aspire

🔸️Simplified local development:
اجرای تمام سرویس‌ها و دیتابیس‌ها با یک دستور واحد.

🔹️Built-in observability:
یکپارچگی آماده با OpenTelemetry برای لاگ، متریک و تریس.

🔸️Service discovery:
سرویس‌ها بدون URLهای هاردکد شده همدیگر را پیدا می‌کنند.

🔹️Configuration management:
پیکربندی متمرکز برای لوکال و کلاود.

🔸️Easy deployment:
استقرار کل سیستم روی Docker، Azure یا AWS با کمترین تنظیمات.

🔹️Consistent developer experience:
اعضای جدید تیم می‌توانند کل سیستم را در چند دقیقه اجرا کنند. 🎯
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →