المهارات avalonia-viewmodels-zafiro
📦

avalonia-viewmodels-zafiro

آمن

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

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

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

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
المحتوى
50
المجتمع
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 أو عن طريق مراقبة تغييرات الخصائص مباشرة.

تفاصيل المطور

بنية الملفات