Skip to content
Back to skills

Structuring Avalonia Projects

ASecurity

Guides the design of AvaloniaUI solution and project structures. Use when creating new AvaloniaUI solutions or organizing projects following naming conventions and layer separation.

  • 207 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added February 7, 2026
developmentc#testing

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add NeverSight/skills_feed --skill structuring-avalonia-projects --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Structuring Avalonia Projects?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Structuring Avalonia Projects
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/neversight-structuring-avalonia-projects/badge)](https://www.skillsdirectory.com/skills/neversight-structuring-avalonia-projects)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: structuring-avalonia-projects
description: "Guides the design of AvaloniaUI solution and project structures. Use when creating new AvaloniaUI solutions or organizing projects following naming conventions and layer separation."
---

# 6.2 AvaloniaUI Solution and Project Structure

#### 6.2.1 Project Naming Conventions

```
SolutionName/
├── SolutionName.Abstractions      // .NET Class Library (Interface, abstract class, and other abstract types)
├── SolutionName.Core              // .NET Class Library (Business logic, pure C#)
├── SolutionName.Core.Tests        // xUnit Test Project
├── SolutionName.ViewModels        // .NET Class Library (MVVM ViewModel)
├── SolutionName.AvaloniaServices  // Avalonia Class Library (Avalonia-related services)
├── SolutionName.AvaloniaLib       // Avalonia Class Library (Reusable components)
├── SolutionName.AvaloniaApp       // Avalonia Application Project (Entry point)
├── SolutionName.UI                // Avalonia Custom Control Library (Custom controls)
└── [Solution Folders]
    ├── SolutionName/              // Main project group
    └── Common/                    // Common project group
```

**Naming by Project Type:**
- `.Abstractions`: .NET Class Library - Defines abstract types like Interface, abstract class (Inversion of Control)
- `.Core`: .NET Class Library - Business logic, data models, services (UI framework independent)
- `.Core.Tests`: xUnit/NUnit/MSTest Test Project
- `.ViewModels`: .NET Class Library - MVVM ViewModel (UI framework independent)
- `.AvaloniaServices`: Avalonia Class Library - Avalonia-related services (DialogService, NavigationService, etc.)
- `.AvaloniaLib`: Avalonia Class Library - Reusable UserControl, Window, Converter, Behavior, AttachedProperty
- `.AvaloniaApp`: Avalonia Application Project - Entry point, App.axaml
- `.UI`: Avalonia Custom Control Library - ControlTheme-based custom controls

**Project Dependency Hierarchy:**
```
SolutionName.AvaloniaApp
    ↓ references
SolutionName.Abstractions (Top layer - does not depend on other projects)
    ↓ references
SolutionName.Core
```

**Role of the Abstractions Layer:**
- Houses all Interfaces and abstract classes
- Dependency inversion through abstract types instead of direct references to concrete types (Dependency Inversion Principle)
- Actual implementations injected via DI container at runtime
- Can be replaced with Mock objects during testing

Files in this skill

  • SKILL.md2.4 KB
  • description_cn.txt154 B
  • description_de.txt227 B
  • description_en.txt182 B
  • description_es.txt206 B
  • description_fr.txt249 B
  • description_ja.txt273 B
  • description_ko.txt217 B
  • description_tw.txt154 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.