Versions
1.0.0 is the SemVer lock. Public 1.x APIs stay source-compatible; 1.1.0+ may add surfaces; breaking changes wait for 2.0.0. Current public packages are 1.3.0. Phases 8–10 shipped together in 1.3.0 (1.1.0 and 1.2.0 were not published as separate nupkgs). Shipped 0.6.1 APIs plus UseAuth<TChallenge>() are the contract. From 0.6.1-preview, install without --prerelease and replace GuardedNavigator reconstruction with UseAuth.
| Version | Meaning |
|---|---|
| 0.1.0-design | Documents + solution skeleton |
| 0.1.0-preview | Phase 1 — Core + host + Shell navigator + dialogs + validation + pagination |
| 0.3.0-preview | Phase 2 — page host, URI stack, toast, multi-window |
| 0.4.0-preview | Phase 3 — forms, Reactive, cache policies, pipeline, scopes |
| 0.5.0-preview | Phases 4–5 — generators, persist/auth, productization |
| 0.6.0-preview | Device-safe marshal, weak CanExecuteChanged, overlay toasts, host/auth/forms UX |
| 0.6.1-preview | Host-safe navigator, UseNavigationPage + replace-root, SectionHost, SnapshotCollection |
| 1.0.0 | Phases 6–7 — 15-minute path, Playground, UseAuth, SemVer lock |
| 1.0.1 | dotnet new mvvmexpress / mvvmexpress-page, plus VS Code and Visual Studio Marketplace wrappers |
| 1.0.2 | Library, templates, and IDE extensions aligned |
| 1.1.0 | Phase 8 — one path, [NotifyDependsOn], CT interop, MVVME001–003 (shipped inside 1.3.0) |
| 1.2.0 | Phase 9 — Shell parity, modules, modal stack, sibling adapters (shipped inside 1.3.0) |
| 1.3.0 | Phase 10 — analyzers, ILLink, contract tests — current |
Shipped (1.3.0)
- Phase 1: ObservableModel, commands, ViewModel lifecycle, AsyncState, Outcome, MessageHub, AddMvvmExpress / UseMvvmExpress, leak and scale tests.
- Phase 2: INavigator, MauiShellNavigator, MauiPageNavigator, URI stack, dictionary/URI args, IWindowContext, GuardedNavigator, IDialogs, MauiNotifier toast, IValidator, PagedCollection, SearchQuery.
- Phase 3: FormViewModel, IPropertyObservable / CombineLatest, ICachedFetcher, IOperationExecutor, command debounce / throttle / queue, child composition, IViewModelScopeFactory, IFeatureSwitch / IPermissionGate / IFileStore / IMediaPicker.
- Phase 4: [Notify], command / register / route / persist / auth attributes, AddGeneratedViewModels, DeepLinkRouteMap sample, CommunityToolkitMessageHub, IStateStore, IMvvmExpressDiagnostics.
- Phase 5: migration guides, AOT/trim notes, BenchmarkDotNet, Testing fakes, ScopedNavigator pop-GC, NuGet SourceLink / snupkg / tags.
- 0.6.0: UI-thread marshal, no-throw ICommand.Execute, weak CanExecuteChanged, Window.AddOverlay toasts, UseShell / UseDialogs, dirty confirm, GuardedNavigatorOptions, IAccountService, ModuleInitializer routes, AuthApp, Validation trim roots.
- 0.6.1: Navigators hop before new Page(), UseNavigationPage + ResetAsync replace-root, SectionHostViewModel, SnapshotCollection, SearchQuery.CommittedText, FormViewModel.Bind, CoalescingDispatcher, ChatHost sample.
- 1.0.0: UseAuth<TChallenge>() / AddAuth<TChallenge>(), 15-minute getting started, cheat sheet, cookbook, Playground, design-review sign-off, SemVer lock.
- 1.0.1: Plugin.Maui.MVVMExpress.Templates — dotnet new mvvmexpress (MainPage + MainPageViewModel, login, list, form, tests) and mvvmexpress-page. CI flake and SourceGenerators snupkg pack fixes.
- 1.0.2: Library, templates, and IDE extensions aligned. No API change.
- Phase 8 (in 1.3.0): one registration path, generated [RegisterView] page maps, [NotifyDependsOn], CommunityToolkit ObservableObject interop, MVVME001–003, 1.0 Contract.Tests, ManualCounterViewModel escape hatch. FormViewModel.Bind is public.
- Phase 9 (in 1.3.0): IModule / AddModule<T>(), PushModalAsync / PopModalAsync, UseDeepLinks / UseSecureSessionAuth (fail closed), SectionHostView, MvvmSearch, CollectionBind.AsyncFetch. Shell flyout / tabs / // routes match NavigationPage coverage.
- Phase 10 (in 1.3.0): MVVME010–013, ILLink descriptors for Core forms, Navigation, Dialogs, and Pagination. Hardware RSS and a production post-mortem stay documented as manual reports.
- IDE wrappers: Visual Studio Code and Visual Studio Marketplace extensions pin Plugin.Maui.MVVMExpress.Templates 1.3.0 and run dotnet new. They do not copy the scaffold.
SemVer contract
Design-review sign-off is recorded (2026-09-02). Accepted 1.0 scope: host-process BenchmarkDotNet and ScaleProfile rather than device RSS; in-memory pop-GC rather than a device-window detach run; Mac Catalyst and Windows are single-window host targets on Host / Navigation / Dialogs. Sibling capability plugins remain Android + iOS. Phases 8–10 added surfaces and may deprecate, not break, 1.0 types.
After 1.3.0
Phases 8–10 are shipped. Remaining work is outside the 1.3 catalog gate: hardware RSS / on-device scroll, a device-window detach run, a production post-mortem you control, multi-window desktop as a default path, and a Windows nupkg RID when packing on macOS. Breaking API changes wait for 2.0.0.
Explicitly deferred past 1.3
- Prism-style regions.
- ReactiveUI IScreen routing as a first-class host.
- A built-in remote feature-flag or auth provider (use FeatureFlags / SecureSession).
- Multi-window desktop, desktop toast QA, and a Windows nupkg RID when packing on macOS.
- A bottom-sheet control library (Dialogs stays an abstraction).
- A Visual Studio binding debugger visualizer.