structuring-avalonia-projectslisted
Install: claude install-skill christian289/dotnet-with-claudecode
# 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, Atta