structuring-avalonia-projects

Organize AvaloniaUI projects with consistent naming and layered architecture.

40|5|Updated Dec 9, 2025
One-click install
npx skills add https://github.com/christian289/dotnet-with-claudecode --skill structuring-avalonia-projects
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: structuring-avalonia-projects
Source: https://github.com/christian289/dotnet-with-claudecode/tree/main/.claude/skills/structuring-avalonia-projects
Command: npx skills add https://github.com/christian289/dotnet-with-claudecode --skill structuring-avalonia-projects

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Guides teams to design AvaloniaUI solutions with consistent naming, separation of concerns, and layered architecture to simplify maintenance and onboarding.

Core Features & Use Cases

  • Project naming conventions for solution and each project type (Abstractions, Core, ViewModels, AvaloniaServices, AvaloniaLib, AvaloniaApp, UI) to improve readability and maintainability.
  • Recommended folder structure and dependency flow to enforce a clean architecture (UI layer depends on Core, which depends on Abstractions).
  • Guidance on role of the Abstractions layer to enable dependency inversion and easy mocking for testing.

Quick Start

Apply these conventions when starting a new AvaloniaUI project to ensure consistent structure and scalable architecture.

Frequently Asked Questions about structuring-avalonia-projects

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure an AvaloniaUI project for scalable MVVM architecture?

To structure an AvaloniaUI project for scalable MVVM architecture, separate your solution into Abstractions, Core, ViewModels, and UI layers with strict dependency flow. This enforces separation of concerns, simplifies onboarding, and ensures maintainable code.

What is the recommended folder layout for a dotnet Avalonia solution?

The recommended folder layout for a dotnet Avalonia solution organizes projects into Abstractions, Core, AvaloniaServices, AvaloniaLib, AvaloniaApp, and UI. This naming convention improves readability and enforces a clean dependency direction across layers.

Can I use these project conventions to refactor an existing Avalonia app?

Yes, you can apply these project conventions to refactor an existing Avalonia app. The guidelines apply to both creating new AvaloniaUI solutions and refactoring existing projects, ensuring consistent naming and a layered architecture.

Why does the Avalonia project structure need an Abstractions layer?

The Avalonia project structure needs an Abstractions layer to enable dependency inversion. This allows the UI layer to depend on Core rather than concrete implementations, facilitating easy mocking for testing and enforcing a clean architecture.

What's the best way to enforce dependency direction in an AvaloniaUI MVVM project?

The best way to enforce dependency direction in an AvaloniaUI MVVM project is to apply a layered architecture where the UI layer depends on Core, which depends on Abstractions. This explicit project convention prevents circular dependencies and maintains scalability.