منصوبے کے بارے میں
Purview.Aspire.ResourceKit ایک سورس جنریٹر سے چلنے والا فریم ورک ہے جو .NET Aspire AppHost وسائل کی تشکیل کو مضبوطی سے ٹائپ شدہ، ٹیسٹ کے لیے موزوں کلاسز کے طور پر منظم کرتا ہے۔
## مقصد
جب AppHost ایپلیکیشنز بڑی ہو جاتی ہیں تو وسائل کی سیٹ اپ کو قابلِ دیکھ بھال اور قابلِ تلاش رکھنا مشکل ہو جاتا ہے۔ ResourceKit اس مسئلے کو حل کرتا ہے، تشکیل کی منطق کو مرکوز وسائل کلاسز میں منتقل کر کے اور پلمبنگ خودکار طور پر جنریٹ کر کے۔
## اہم فوائد
- **صاف ستھرا AppHost کوڈ**: وسائل کی منطق مونولیتھک سیٹ اپ میتھڈز کے بجائے مخصوص کلاسز میں تقسیم ہوتی ہے
- **مضبوط ٹائپنگ اور IntelliSense**: سٹرنگ ٹائپ کنفیگریشن کی جگہ کمپائل ٹائم سیفٹی
- **جنریٹڈ وائرنگ**: خودکار طور پر ہوسٹ/وسائل آپشنز اور رجسٹریشن کوڈ تیار کرتا ہے
- **قابلِ پیش گوئی لائف سائیکل**: وسائل کے درمیان انحصار کے انتظام کے لیے Build پھر Configure پیٹرن کی پیروی کرتا ہے
- **قابلِ ٹیسٹ**: یونٹ ٹیسٹنگ کے لیے آپشنز اوور رائیڈز اور الگ تھلگ وسائل کی تشکیل کی حمایت کرتا ہے
## استعمال کا ماڈل
ایٹری بیوٹس کا استعمال کرتے ہوئے ہوسٹ کٹ اور وسائل کلاسز کی تعریف کریں:
```csharp
[HostKit]
partial class ShopHostKit;
[ResourceDefinition<ProjectResource>("api")]
partial class ApiResourceKit
{
protected override IResourceBuilder<ProjectResource> BuildResource(IDistributedApplicationBuilder builder)
=> builder.AddProject<Projects.Example_Service>(Name);
}
```
پھر AppHost میں رجسٹر کریں:
```csharp
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAspireResourceKit();
```
آپ کے ہوسٹ میٹا ڈیٹا سے ایک ایکسٹینشن میتھڈ جنریٹ ہوتی ہے (مثلاً `AddAspireResourceKit()`)۔
## لائف سائیکل
ResourceKit دو مرحلوں پر مشتمل لائف سائیکل نافذ کرتا ہے:
1. **Build**: انفرادی وسائل بنائیں (مثلاً `AddProject`، `AddRedis`)
2. **Configure**: حوالہ جات، بائنڈنگز اور کراس ریسورس وائرنگ کے ذریعے وسائل کو آپس میں جوڑیں
انیبلمنٹ کنٹرول کرتا ہے کہ وسائل کب فعال ہوں گے:
- `IsEnabled`: محفوظ شدہ ٹوگل جو عام طور پر جنریٹڈ آپشنز سے حاصل ہوتا ہے
- `IsResourceEnabled(builder)`: ماحول، کنفیگ یا پبلش موڈ کا جائزہ لینے کے لیے رن ٹائم ہک
اگر کوئی وسیلہ غیر فعال قرار پائے تو اس کے Build اور Configure دونوں مراحل مکمل طور پر چھوڑ دیے جاتے ہیں۔
## جنریٹڈ آرٹیفیکٹس
`[HostKit]` اور `[ResourceDefinition]` اعلانات سے سورس جنریٹر یہ تیار کرتا ہے:
- ایک ہوسٹ ریسورس بیس کلاس
- ہوسٹ پر ریسورس پراپرٹیز
- ہوسٹ لیول اور فی ریسورس آپشنز (جب فعال ہوں)
- ہوسٹ کٹ کی تعمیر، تشکیل اور رجسٹریشن کے لیے ایک AppHost ایکسٹینشن میتھڈ
## Agent Skills
پیکیج `skills/**/SKILL.md` فائلوں کے ذریعے [Agent Skills](https://agentskills.io/) کو بنڈل کر سکتا ہے۔ بلڈ کے دوران یہ استعمال کرنے والے پروجیکٹ میں `.agents/skills/` میں کاپی ہو جاتی ہیں۔ اسے غیر فعال کریں:
```xml
<EnableAgentFolderInPackage>false</EnableAgentFolderInPackage>
```
## ریپوزٹری کی ساخت
- `src/src/ResourceKit`: رن ٹائم پیکیج سورس
- `src/src/SourceGeneration`: Roslyn سورس جنریٹر
- `src/src/Example.*`: نمونہ Aspire ایپلیکیشنز
- `src/tests/*`: یونٹ اور انٹیگریشن ٹیسٹس
## دستاویزات
- [ہوم پیج](https://purview.dev/projects/aspire-resourcekit/)
- [شروعات](docs/wiki/Getting-Started.md)
- [Lifecycle-Build-Configure گائیڈ](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.