WPF e MVVM in .NET per desktop che restano veloci da usare e da modificare
Domande frequenti
Si, in contesti enterprise con applicazioni Windows legacy e nuovi progetti desktop interni. WPF e la scelta standard per applicazioni LOB (Line of Business) su Windows quando l'interfaccia e ricca, i requisiti di performance sono elevati e la distribuzione e controllata. Non e la scelta giusta per applicazioni consumer multi-piattaforma, dove .NET MAUI o Blazor sono piu adatti.
MVVM, Model-View-ViewModel, separa la logica UI (ViewModel) dalla rappresentazione visuale (View) tramite data binding. In WPF e fondamentale perche rende il codice testabile (il ViewModel non dipende dalla View), permette il lavoro parallelo tra designer e sviluppatori, e riduce il codice nel code-behind. INotifyPropertyChanged e ICommand sono i mattoni base dell'implementazione.
WPF e un framework Windows-only con un modello di programmazione maturo, stabile e ben documentato. .NET MAUI e cross-platform (iOS, Android, Windows, macOS) ma con maggiore complessita di configurazione e meno maturita ecosistemica. Per applicazioni enterprise Windows esistenti o nuove, WPF resta la scelta piu solida. MAUI e preferibile quando il target include mobile.
In WPF moderno si usa Microsoft.Extensions.DependencyInjection, lo stesso container di ASP.NET Core. Si registrano i servizi nel contenitore all'avvio dell'applicazione e si iniettano nel costruttore dei ViewModel tramite un host generico (IHost). Questo approccio rende il codice WPF coerente con il resto dell'ecosistema .NET e facilita la condivisione di codice con altri layer.