عن المشروع
Purview.Aspire.ResourceKit إطار عمل مدعوم بمولّد مصدر لتنظيم تركيب موارد AppHost في .NET Aspire كفئات قوية الأنواع وسهلة الاختبار.
الغرض:
عندما تكبر تطبيقات AppHost، يصبح الحفاظ على إعداد الموارد قابلاً للصيانة والاكتشاف تحدياً. يعالج ResourceKit ذلك بنقل منطق التركيب إلى فئات موارد مركزة وتوليد البنية التحتية تلقائياً.
الفوائد الرئيسية:
- كود AppHost أنظف: ينقسم منطق الموارد إلى فئات مخصصة بدلاً من طرق إعداد متجانسة.
- الأنواع القوية وIntelliSense: يستبدل الإعداد المعتمد على السلاسل النصية بأمان وقت الترجمة.
- ربط مولّد: ينتج تلقائياً خيارات المضيف والمورد وكود التسجيل.
- دورة حياة يمكن التنبؤ بها: يتبع نمط البناء ثم الضبط لإدارة التبعيات بين الموارد.
- قابلية الاختبار: يدعم تجاوزات الخيارات وتكوين الموارد المعزول لاختبارات الوحدة.
نموذج الاستخدام:
عرّف فئة حقيبة مضيف وفئات موارد باستخدام السمات. تُعلن فئة جزئية باسم ShopHostKit موسومة بالسمة HostKit. وتُعلن ApiResourceKit فئة جزئية موسومة بـ ResourceDefinition لنوع ProjectResource وبالاسم api، وتتجاوز BuildResource لإرجاع builder.AddProject لنوع Projects.Example_Service مع تمرير Name.
ثم سجّل في AppHost:
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAspireResourceKit();
يُولَّد أسلوب امتداد من بيانات تعريف المضيف، مثل AddAspireResourceKit.
دورة الحياة:
تنفذ ResourceKit دورة حياة من مرحلتين:
1. البناء: إنشاء كل مورد على حدة، مثل AddProject وAddRedis.
2. الضبط: ربط الموارد ببعضها عبر المراجع والارتباطات والربط المتبادل بين الموارد.
يتحكم التفعيل في وقت تنشيط الموارد:
- IsEnabled: مفتاح محفوظ يأتي عادةً من خيارات مولّدة.
- IsResourceEnabled(builder): خطاف وقت التشغيل لتقييم البيئة أو الإعداد أو وضع النشر.
إذا قُيّم المورد على أنه معطّل، يتم تخطي مرحلتي البناء والضبط بالكامل.
النواتج المولّدة:
من إعلانات HostKit وResourceDefinition ينتج مولّد المصدر:
- فئة أساسية لمورد المضيف.
- خصائص موارد على المضيف.
- خيارات على مستوى المضيف ولكل مورد عند التفعيل.
- أسلوب امتداد لـ AppHost لبناء حقيبة المضيف وضبطها وتسجيلها.
مهارات الوكيل:
يمكن للحزمة تضمين Agent Skills عبر ملفات skills/**/SKILL.md. أثناء البناء، تُنسخ هذه الملفات إلى .agents/skills/ في المشروع المستهلك. عطّلها بتعيين EnableAgentFolderInPackage إلى false.
بنية المستودع:
- src/src/ResourceKit: مصدر حزمة وقت التشغيل.
- src/src/SourceGeneration: مولّد مصدر Roslyn.
- src/src/Example.*: تطبيقات Aspire نموذجية.
- src/tests/*: اختبارات الوحدة والتكامل.
التوثيق:
- الصفحة الرئيسية: https://purview.dev/projects/aspire-resourcekit/
- البدء: docs/wiki/Getting-Started.md
- دليل دورة حياة البناء والضبط: docs/wiki/Lifecycle-Build-Configure.md
- توثيق التفعيل: docs/wiki/Enablement.md
- الإعداد والخيارات: docs/wiki/Configuration-and-Options.md
- التشخيص واستكشاف الأخطاء وإصلاحها: docs/wiki/Diagnostics.md
- أمثلة: المولّد مقابل اليدوي: docs/wiki/Examples.md
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.