スキル avalonia-viewmodels-zafiro
📦

avalonia-viewmodels-zafiro

安全

بناء تطبيقات واجهة مستخدم Avalonia تفاعلية باستخدام أنماط Zafiro

يتطلب إنشاء تطبيقات Avalonia قابلة للصيانة أنماط ViewModel وهياكل تنقل متسقة. توفر هذه المهارة أنماطًا مثبتة لأدوات ReactiveUI و Zafiro لتطوير واجهات مستخدم قوية.

対応: Claude Codex Code(CC)
📊 71 十分
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「avalonia-viewmodels-zafiro」を使用しています。 أنشئ ViewModel لشاشة تسجيل الدخول مع حقلي اسم المستخدم وكلمة المرور

期待される結果:

فئة جزئية LoginViewModel ترث من ReactiveObject مع سمات [Reactive] لخصائص Username و Password، و LoginCommand تم إنشاؤه عبر ReactiveCommand.CreateFromTask مع التحقق من الصحة، وتنفيذ IDisposable مناسب مع CompositeDisposable للتنظيف.

「avalonia-viewmodels-zafiro」を使用しています。 كيف أنتقل من HomeViewModel إلى DetailsViewModel عندما ينقر المستخدم على عنصر؟

期待される結果:

احقن INavigator في مُنشئ HomeViewModel، ثم استدعِ await navigator.Navigate(() => new DetailsViewModel(selectedItem) في معالج التحديد الخاص بك. يقوم DataTypeViewLocator تلقائيًا بحل DetailsView المقابل.

セキュリティ監査

安全
v1 • 2/24/2026

Static analyzer flagged 79 potential issues (71 external_commands, 8 blocker patterns). All findings are FALSE POSITIVES. The detected 'backtick execution' patterns are markdown code fence markers (```) and C# attribute syntax ([Section], [Reactive]). The 'blocker' patterns are documentation callouts ([!TIP], [!IMPORTANT]). This skill contains only documentation markdown files with C# code examples - no executable code or security risks exist.

5
スキャンされたファイル
282
解析された行数
0
検出結果
1
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
30
コミュニティ
100
セキュリティ
91
仕様準拠

作れるもの

تطبيق سطح مكتب مع أقسام وحدات نمطية

بناء تطبيق محفظة مع أقsections مكتشفة تلقائيًا مثل Wallet و Browse و Settings باستخدام سمات [Section] و INavigator للتنقل السلس بين العروض.

تطبيق سير عمل متعدد الخطوات معقد

إنشاء معالجات إعداد المشروع مع التحقق من الصحة وتتبع التقدم والتنقل الشرطي باستخدام WizardBuilder لتحديد الخطوات مع قواعد WhenValid و NextCommand.

إعداد بنية الأوامر التفاعلية

إنشاء أنماط أوامر قوية مع معالجة الأخطاء عبر HandleErrorsWith، وإدارة المُصرفات التلقائية مع CompositeDisposable، ومراقبة خصائص تفاعلية باستخدام WhenAnyValue.

これらのプロンプトを試す

إنشاء ViewModel أساسي
أنشئ ViewModel ReactiveUI لشاشة ملف تعريف المستخدم مع خصائص Name و Email و IsBusy. ضمّن أمر Save يتحقق من تنسيق البريد الإلكتروني قبل التنفيذ. استخدم سمات [Reactive] والتعامل المناسب مع المُصرفات.
إعداد التنقل القائم على الأقسام
أظهر لي كيفية تطبيق تنقل شريط جانبي مع ثلاثة أقسام: Dashboard و Reports و Settings. استخدم السمة [Section] مع أيقونات FontAwesome ووضح كيفية التبديل بين الأقسام باستخدام IShellViewModel.
معالج متعدد الخطوات مع التحقق من الصحة
ابنِ معالجًا لإنشاء مشروع جديد بأربع خطوات: Project Info و Select Template و Configure Settings و Review. يجب التحقق من صحة كل خطوة قبل المتابعة. استخدم WizardBuilder مع قواعد WhenValid ووضح كيفية التعامل مع النتيجة النهائية.
أمر محسن مع معالجة الأخطاء
وضح إنشاء IEnhancedCommand لمزامنة البيانات يُظهر التقدم ويتعامل مع الأخطاء عبر NotificationService ويُصرف الاشتراكات بشكل صحيح. ضمّن دعم الإلغاء ومنطق تمكين/تعطيل تفاعلي بناءً على حالة الاتصال.

ベストプラクティス

  • استخدم دائمًا .DisposeWith(disposables) على الاشتراكات والأوامر لمنع تسرب الذاكرة في التدفقات التفاعلية
  • علّم section ViewModels بالسمة [Section] للتسجيل التلقائي بدلاً من التوصيل اليدوي في CompositionRoot
  • استخدم امتداد HandleErrorsWith لتوجيه أخطاء الأوامر إلى NotificationService للحصول على ملاحظات مستخدم متسقة

回避

  • لا تقم بإنشاء مثيلات ViewModels يدويًا باستخدام 'new' خارج طرق المصنع - استخدم حقن التبعيات عبر CompositionRoot
  • تجنب الاشتراك في الملاحظات دون إضافتها إلى CompositeDisposable - هذا يسبب تسرب الذاكرة
  • لا تقم بحظر العمليات غير المتزامنة في تنفيذ الأوامر - استخدم دائمًا CreateFromTask واستدعيات await للتنقل

よくある質問

ما التبعيات التي أحتاجها لاستخدام هذه الأنماط؟
تحتاج إلى Avalonia UI و ReactiveUI و ReactiveUI.SourceGenerators وأدوات Zafiro. أضفها عبر حزم NuGet إلى ملف المشروع الخاص بك.
كيف يعمل الاكتشاف التلقائي للأقسام؟
تحدد السمة [Section] ViewModels كأقسام. تقوم Zafiro's AddSectionsFromAttributes بمسح التجميعات عند بدء التشغيل وتسجيل الأنواع المحددة مع حاوية حقن التبعيات.
هل يمكنني استخدام هذه الأنماط بدون مجموعة أدوات Zafiro الكاملة؟
نعم، تعمل أنماط ReactiveUI الأساسية بشكل مستقل. ومع ذلك، تتطلب SlimWizard و IEnhancedCommand واكتشاف الأقسام مكونات Zafiro.
كيف أتعامل مع التحقق من الصحة في خطوات المعالج؟
طبّق التحقق من الصحة في step ViewModel الخاص بك باستخدام WhenAnyValue لمراقبة تغييرات الخصائص وتعيين علم صحة. استخدم .WhenValid() في WizardBuilder لحظر التنقل حتى يمر التحقق من الصحة.
ما الغرض من IEnhancedCommand مقارنة بـ ICommand القياسي؟
يوسع IEnhancedCommand ICommand مع بيانات اسم Name ونص Text لربط واجهة المستخدم، بالإضافة إلى إبلاغ مدمج عن التقدم وتكامل معالجة الأخطاء مع NotificationService.
كيف أختبر ViewModels التي تم إنشاؤها بهذه الأنماط؟
ViewModels هي فئات عادية مع تبعيات قابلة للحقن. استخدم moq أو NSubstitute للمحاكاة، واختبر الخصائص التفاعلية باستخدام ReactiveUI.Testing أو عن طريق مراقبة تغييرات الخصائص مباشرة.

開発者の詳細

ファイル構成