Picking a New MVVM Framework - Moving from Caliburn Micro

IAmTimCorey · 102K views · 2020 · 1:27:32

Open on YouTube

Software architecture & designWeb developmenttutorialdated

Why Stack Overflow recommends it

Stack Overflow users link it as an MVVM framework comparison and as a step-by-step MvvmCross tutorial that many follow, often hitting version-specific errors with MvvmCross 8.

Recommended by 1 people across 1 different months, 2021 to 2023.

What it is

IAmTimCorey reviews the main .NET MVVM framework options (ReactiveUI, Stylet, Catel, Prism, MVVM Light, MvvmCross) after Caliburn Micro stopped being actively developed. He then picks MvvmCross and builds a WPF GuestBook demo application with it.

What people said

Recommends Sheriff · 2023-07 · Stack Overflow · on “Is This the Correct Way to Open Windows in a WPF Project with MVVM Architecture?”

What about third party framework? I like using Caliburn.Micro , which support .NET 6, but you can use other frameworks (Picking a New MVVM Framework - Moving from Caliburn Micro) [this video] . But if you stick with Caliburn.Micro, you can install it via nuget package, and can simple use it in ViewModel like this: public class MainViewModel : Screen { #region Constructors public MainViewModel(IWindowManager windowManager) { _windowManager = windowManager; } #endregion Constructor #region Properties private IWindowManager _windowManager; #endregion Properties #region Methods public async void AddMovie() { var viewModel = IoC.Get<AddMovieViewModel>(); await _windowManager.ShowDialogAsync(viewModel)

Cites cinderofsouls · 2021-06 · Stack Overflow · on “'MvxWpfSetup<App>' must be a non-abstract type with a public parameterless constructor”

I'm trying to follow the code at the end of this video here [this video] , but I'm getting this error around the 1:11:10 mark: error CS0310: 'MvxWpfSetup<App>' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'TMvxSetup' in the generic type or method 'MvxSetupExtensions.RegisterSetupType<TMvxSetup>(object, params Assembly[])' I really have no idea what code is relevant, but this is the file thats giving the error: using MvvmCross.Core; using MvvmCross.Platforms.Wpf.Core; using MvvmCross.Platforms.Wpf.Views; namespace MvxStarter.Wpf { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : MvxApplication { protec

Cites ProfK · 2021-06 · Stack Overflow · on “Mvvm Cross Logging Setup Class”

I've been following a tutorial [this video] that uses MvvmCross v7, and I'm using v8, so I was led by a stackoverflow post [LINK] to the official help topic on Upgrade from 7 to 8 . Here I am told to create my own Setup class: public class Setup : MvxWpfSetup<App> { protected override ILoggerProvider CreateLogProvider() { return new SerilogLoggerProvider(); } protected override ILoggerFactory CreateLogFactory() { Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().CreateLogger(); return new SerilogLoggerFactory(); } } In the help the generic base class is MvxAndroidSetup<App> , but when I change it to MvxWpfSetup the compiler tells me: The non-generic type 'MvxWpfSetup' cannot be used wit

Cites TomGeo · 2021-07 · Stack Overflow · on “Why do I get an error CS0310 when using MvxWpfSetup<Core.App> as RegisterSetupType”

I try to build my first app with MvvmCross, found pretty good explanations in this video [this video] put I get error CS0310 when I setup the App.xaml.cs file the way it is shown in the video, as well as it is on the example page of the MvvmCross project page. using MvvmCross.Core; using MvvmCross.Platforms.Wpf.Core; using MvvmCross.Platforms.Wpf.Views; namespace MvxStarter.Wpf { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : MvxApplication { protected override void RegisterSetup() { this.RegisterSetupType<MvxWpfSetup<Core.App>>(); } } } I am using MvvmCross.Platforms.Wpf in version 8.0.1 and the error message is: Error CS0310 'MvxWpfSetup<App>' must be