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

avalonia-viewmodels-zafiro

آمن

Zafiro 패턴으로 반응형 Avalonia UI 애플리케이션 구축

유지보수가 가능한 Avalonia 애플리케이션을 만들려면 일관된 ViewModel 패턴과 탐색 구조가 필요합니다. 이 스킬은 강력한 UI 개발을 위해 검증된 ReactiveUI 및 Zafiro 도구 키트 패턴을 제공합니다.

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

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

2

رفع في Claude

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

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "avalonia-viewmodels-zafiro". 사용자 이름과 비밀번호 필드가 있는 로그인 화면용 ViewModel 생성

النتيجة المتوقعة:

Username 및 Password 속성에 [Reactive] 속성이 있는 ReactiveObject를 상속하는 부분 클래스 LoginViewModel으로, 검증이 있는 ReactiveCommand.CreateFromTask를 통해 생성된 LoginCommand와 정리를 위한 CompositeDisposable가 있는 적절한 IDisposable 구현이 포함됩니다.

استخدام "avalonia-viewmodels-zafiro". 사용자가 항목을 클릭할 때 HomeViewModel에서 DetailsViewModel으로 어떻게 탐색하나요?

النتيجة المتوقعة:

HomeViewModel 생성자에 INavigator를 주입한 다음, 선택 핸들러에서 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
الامتثال للمواصفات

ماذا يمكنك بناءه

모듈러 섹션을 가진 데스크톱 애플리케이션

[Section] 속성과 INavigator를 사용하여 Wallet, Browse, Settings와 같은 자동 검색 섹션을 가진 지갑 애플리케이션을 구축하고 뷰 간 원활한 탐색을 제공합니다.

복잡한 다단계 워크플로우 구현

WizardBuilder로 WhenValid 및 NextCommand 규칙을 사용하여 검증, 진행률 추적 및 조건부 탐색이 있는 프로젝트 설정 마법사를 만듭니다.

반응형 명령 인프라 구축

HandleErrorsWith를 통한 오류 처리, CompositeDisposable를 통한 자동 Disposable 관리, WhenAnyValue를 통한 반응형 속성 관찰을 사용하여 강력한 명령 패턴을 확립합니다.

جرّب هذه الموجهات

기본 ViewModel 생성
Name, Email, IsBusy 속성을 가진 사용자 프로필 화면용 ReactiveUI ViewModel을 만드세요. 실행 전에 이메일 형식을 검증하는 Save 명령을 포함하세요. [Reactive] 속성과 적절한 disposable 처리를 사용하세요.
섹션 기반 탐색 설정
대시보드, 보고서, 설정의 세 섹션이 있는 사이드바 탐색을 구현하는 방법을 보여주세요. FontAwesome 아이콘과 함께 [Section] 속성을 사용하고 IShellViewModel을 사용하여 섹션 간 전환을 시연하세요.
검증 기능이 있는 다단계 마법사
4단계(프로젝트 정보, 템플릿 선택, 설정 구성, 검토)로 새 프로젝트를 만들기 위한 마법사를 구축하세요. 각 단계는 진행하기 전에 검증해야 합니다. WizardBuilder와 WhenValid 규칙을 사용하고 최종 결과를 처리하는 방법을 보여주세요.
오류 처리가 있는 향상된 명령
데이터 동기화를 위한 IEnhancedCommand를 생성하여 진행률을 표시하고, NotificationService를 통해 오류를 처리하며,Subscription을 적절히 삭제하는 방법을 시연하세요. 취소 지원과 연결 상태에 따른 반응형 활성화/비활성화 로직을 포함하세요.

أفضل الممارسات

  • 항상 구독 및 명령에 .DisposeWith(disposables)를 사용하여 반응형 스트림의 메모리 누수 방지
  • CompositionRoot에서 수동 배선 대신 [Section] 속성으로 섹션 ViewModel을 표시하여 자동 등록
  • HandleErrorsWith 확장을 사용하여 명령 오류를 NotificationService로 라우팅하여 일관된 사용자 피드백 제공

تجنب

  • 팩토리 메서드 외부에서 'new'를 사용하여 ViewModel을 수동으로 인스턴스화하지 마세요 - CompositionRoot를 통한 의존성 주입 사용
  • Observable을 구독할 때 CompositeDisposable에 추가하지 마세요 - 메모리 누수가 발생합니다
  • 명령 실행에서 비동기 작업을 차단하지 마세요 - 항상 CreateFromTask를 사용하고 탐색 호출을 await하세요

الأسئلة المتكررة

이 패턴을 사용하려면 어떤 종속성이 필요한가요?
Avalonia UI, ReactiveUI, ReactiveUI.SourceGenerators 및 Zafiro 도구 키트가 필요합니다. 프로젝트 파일의 NuGet 패키지를 통해 추가하세요.
자동 섹션 검색은 어떻게 작동하나요?
[Section] 속성은 ViewModel을 섹션으로 표시합니다. Zafiro의 AddSectionsFromAttributes는 시작 시 어셈블리를 스캔하여 표시된 유형을 의존성 주입 컨테이너에 등록합니다.
전체 Zafiro 도구 키트 없이 이 패턴을 사용할 수 있나요?
핵심 ReactiveUI 패턴은 독립적으로 작동합니다. 그러나 SlimWizard, IEnhancedCommand 및 섹션 검색에는 Zafiro 컴포넌트가 필요합니다.
마법사 단계에서 검증은 어떻게 처리하나요?
WhenAnyValue를 사용하여 단계 ViewModel에서 속성 변경을 관찰하고 유효성 플래그를 설정하여 검증하세요. WizardBuilder에서 .WhenValid()를 사용하여 검증이 통과될 때까지 탐색을 차단하세요.
표준 ICommand보다 IEnhancedCommand의 목적은 무엇인가요?
IEnhancedCommand는 UI 바인딩을 위한 Name 및 Text 메타데이터와 NotificationService와의 기본 제공 진행률 보고 및 오류 처리 통합으로 ICommand를 확장합니다.
이 패턴으로 만든 ViewModel은 어떻게 테스트하나요?
ViewModel은 주입 가능한 종속성이 있는 일반 클래스입니다. moq 또는 NSubstitute를 사용하여 모ock하고, ReactiveUI.Testing을 사용하거나 속성 변경을 직접 관찰하여 반응형 속성을 테스트하세요.

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

بنية الملفات