StarterKit è un template WPF moderno basato su MVVM, pensato per essere una base solida, pulita e riutilizzabile per applicazioni desktop professionali in .NET.
Non è un semplice esempio didattico: è uno starter template pronto per progetti reali.
- ✅ Architettura MVVM pulita
- 🧭 Navigazione centralizzata con history e comando Back
- 🎨 Tema Light / Dark persistente
- 🧩 Dependency Injection (Microsoft.Extensions.DependencyInjection)
- 🪟 Shell principale (MainWindow) separata dalle View
- 💾 Database pronto (SQLite)
- 🧠 Services con interfacce (Navigation, Theme, Database)
- ⏱️ Footer informativo (data/ora + stato DB)
- 📦 Struttura scalabile e ordinata
- C#
- WPF
- MVVM
- Dependency Injection (DI)
- Navigation Service
- SQLite
StarterKit
│
├── App.xaml
├── App.xaml.cs
│
├── Views
│ ├── MainWindow.xaml ← Shell
│ ├── HomeView.xaml
│ ├── SettingsView.xaml
│ └── AboutView.xaml
│
├── ViewModels
│ ├── BaseViewModel.cs
│ ├── MainViewModel.cs
│ ├── HomeViewModel.cs
│ ├── SettingsViewModel.cs
│ └── AboutViewModel.cs
│
├── Services
│ ├── INavigationService.cs
│ ├── NavigationService.cs
│ ├── IThemeService.cs
│ ├── ThemeService.cs
│ ├── ThemeManager.cs
│ ├── IDatabaseService.cs
│ └── DatabaseService.cs
│
├── Data
│ ├── AppDbContext.cs
│ ├── DatabaseInitializer.cs
│ └── Entities
│ └── AppSetting.cs
│
├── Commands
│ └── RelayCommand.cs
│
├── Themes
│ ├── Colors.Light.xaml
│ ├── Colors.Dark.xaml
│ └── Styles.xaml
La navigazione è:
- Centralizzata
- Basata su ViewModel
- Con History e Back
Funzionalità:
Navigate<TViewModel>()GoBack()CanGoBack
Il MainViewModel funge da orchestratore della UI (Shell).
- Toggle centralizzato
- Persistenza automatica
- Tema condiviso tra TopBar e Settings
- Basato su ResourceDictionary separati
- SQLite pronto all’uso
- Inizializzazione automatica
- Stato DB visibile in UI
- Struttura facilmente estendibile
Il progetto utilizza Microsoft.Extensions.DependencyInjection:
- Tutti i Services sono registrati
- ViewModel risolti dal container
- Codice testabile e manutenibile
- Clona il repository
- Cambia il nome della soluzione e del namespace
- Inizia a sviluppare
👉 Regola d’oro:
Clona → Rinomina → Parti
Nessun copia/incolla selvaggio.
v1.0.0 – Template completo e stabile
Libero utilizzo per progetti personali e professionali.
Personalizza, estendi, migliora.
Questo template nasce per:
- Tool desktop
- Applicazioni aziendali
- Prototipi rapidi
- Progetti scalabili nel tempo
Minimalismo + architettura corretta = velocità di sviluppo.
Buon codice! 💻🔥