1.3 KiB
1.3 KiB
ClaudeDo.App
Desktop entry point for the ClaudeDo application. Configures DI, initializes the database, and launches the Avalonia window.
Responsibility
Program.cs— STA thread, DI container registration (repositories, services, viewmodels), schema init, Avalonia builderApp.axaml/App.axaml.cs— Avalonia application lifecycle, main window creation, staticServiceProvideraccessorViewLocator.cs— reflection-based IDataTemplate that maps ViewModels to Views by naming convention
Dependencies
- Avalonia 12.0.0 (Desktop, Fluent theme, Inter fonts)
- CommunityToolkit.Mvvm 8.4.1
- Microsoft.Extensions.DependencyInjection 8.0.1
- Microsoft.AspNetCore.SignalR.Client 8.0.11
- Microsoft.Data.Sqlite 8.0.11
- Project references: ClaudeDo.Data, ClaudeDo.Ui
DI Registration Pattern
- Singletons: SqliteConnectionFactory, all Repositories, WorkerClient, MainWindowViewModel, TaskListViewModel, TaskDetailViewModel, StatusBarViewModel
- Transients: TaskEditorViewModel, ListEditorViewModel (created per dialog)
Notes
- This project owns the composition root — all wiring happens here
- ViewLocator resolves
FooViewModel->FooViewby replacing "ViewModel" with "View" in the type name - AvaloniaUI diagnostics are conditionally included (DEBUG only)