Picking a New MVVM Framework - Moving from Caliburn Micro

Поділитися
Вставка
  • Опубліковано 17 жов 2024

КОМЕНТАРІ • 401

  • @hqcart1
    @hqcart1 4 роки тому +99

    Hello Tim, i have been developing and never used a framework, I am not even sure how is it useful, I would just give you my opinion on how you could approach this topic:
    I would rather that you make 2 same projects the do the same thing, one without using the framework, and one with, so that some of us who never used a framework can have a better idea on if we should use one or not.
    Thanks and a great video!

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +32

      Thanks for sharing! I have added that to my list.

    • @ilove2learn783
      @ilove2learn783 4 роки тому +3

      ​@@IAmTimCorey I think this is quite an important topic to explain. Not obvious. Not easy. Things that come to my mind to talk about are:
      - Communication between ViewModels (also multiple of the same one), like this changed here, so I have to update something else there. And it's kind of like a parallel computing that interchanges data through communication but everyone does its own thing.
      - RelayCommand ;)
      - ViewModel creation and Design time data (that's a hard one ;) with x:Bind and Binding "problems" - the way VS designer works and "compiles" stuff while we're writing XAML).
      - Swapping ViewModels (IoC)
      - How it helps when many people are working on different parts of the app
      - How it's basically useless for small/not complex apps
      And probably many more I can't even think of :)

    • @nikolaya7039
      @nikolaya7039 3 роки тому

      Good ideas!
      1) When having vanilla and framework versions side-by-side, it is simpler to appreciate the work covered by the framework.
      2) It would be more reasonable to slightly more sophisticated examples that closer to "the real world", but yet small enough to use in the demo. Here is my attempt -- github.com/anick107/BookShelfMvvmExample
      Any improvement suggestion is appreciated.

    • @dreamdancer8212
      @dreamdancer8212 3 роки тому +3

      @@nikolaya7039 Broken link it seems . . .

    • @HollandHiking
      @HollandHiking 3 роки тому

      Might be a private archive, it is not visible on github.

  • @chrishildebran
    @chrishildebran 3 роки тому +5

    @IAmTimCorey , considering a year has passed since this video was published, would you still implement MVVM Cross in new projects or would you steer towards another?

  • @tjzIsMe
    @tjzIsMe 4 роки тому +12

    0:36:30 This simple explanation of MVVM vs. User Interface/Business Logic/Data Access layers clarifies the topic more that a lot of videos entirely devoted to the subject.

  • @mrsajjad30
    @mrsajjad30 4 роки тому +22

    Thank you Sir for this wonderful tutorial. Please Sir, We need more of MvvmCross like "View Navigation" and "Dependency Injection".

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +11

      I will add it to the list. Thanks for the suggestion.

    • @christianfigul8265
      @christianfigul8265 3 роки тому +4

      @@IAmTimCorey The docs for basic things like navigation are so bad for MVVMCross. Mostly they talk about android, but not WPF. I love your tutorials. Please make some new about more basic mechanics of MVVMCross. Thank you

    • @brianhoskins1979
      @brianhoskins1979 3 роки тому +4

      @@christianfigul8265 I 100% agree with you. After watching this video I spent quite some time exploring MVVMCross and I came to exactly the same opinion. The framework itself is very interesting, but it seems like WPF is at the back of the queue in terms of documentation and source code examples. I like the cross platform support in MVVMCross but unfortunately for me WPF is my main platform and for this reason I can't justify moving to a framework where - at least for now - WPF appears to be an after thought.
      Currently I am exploring PRISM instead.
      I would be interested to know if you have stuck with MVVMCross, if yes has your opinion of it changed and if no, what have you gone with?

    • @kenroxbury7259
      @kenroxbury7259 3 роки тому +2

      @@IAmTimCorey This was an excellent video on using MvvmCross with WPF. Clear and concise. But I too, like S Afzal, would likreto see an example of navigation using MvvmCross in WPF. It's astounding to me that there are no good examples anywhere. I do hope you publish a video on that topic. Thanks for this video though, it was very helpful

    • @florianmaier5829
      @florianmaier5829 3 роки тому +2

      I collected some experience using mvvm cross over the last weeks. Yes the documentation is quite poor and outdated. Pm if you‘re stuck, may be I can help.

  • @andreaaldrich4046
    @andreaaldrich4046 4 роки тому +10

    I created my first application at work as a new junior developer and although it "works", I realized it should be changed to MVVM today. You just happened to have this video up. Awesome coincidence. 😁

  • @eugeneball8434
    @eugeneball8434 3 роки тому +1

    Tim you speak so clearly that I can watch your videos with the automatic subtiltes without bothering my colleagues (can't have earphones) 😁

  • @janne_kekalainen
    @janne_kekalainen 4 роки тому +7

    Things I noticed:
    1. "Ctrl+." Can add missing XML namespaces for you.
    2. It's a shame that there is no IntelliSense when setting up bindings (slow, tedious and prone to errors)
    3. 1:24:00 - CanAddGuest doesn't check against entering just spaces.
    Dependency injection (including ILogger and appsettings) is definitely something I'd like to see in the future video.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +4

      Nice! I didn't know about #1. I'll try that out. Agreed on #2 (STRONGLY agreed - maybe we can create an extension to help out with that). For #3, I know and I was ok with that. It wasn't full validation, just a quick check.

  • @montanomariano
    @montanomariano 2 роки тому +7

    Hi Tim! It’s been a while since you published this video. Have you checked the community toolkit? What do you think about using it for wpf?

    • @andreirosu3450
      @andreirosu3450 Рік тому

      I’m also curios when Tim will release a video about the community toolkit mvvm.
      Hey Tim, if you see this I hope you will do a video about it. 😊

  • @rosshazelwood4850
    @rosshazelwood4850 3 роки тому +1

    Hi Tim, I really appreciated this entire MVVM series , clearly, explained and I particularly appreciated the little productivity hints you used like cntrl-dot or control-t and the use of code snippets like "prodfull" even when they have been covered before. It is a really good way of upgrading skills because we forget over time, and your comments do not lengthen the videos either. So many videos concentrate on common areas so it was a pleasure to see a full example.

  • @williambell4591
    @williambell4591 4 роки тому +2

    Thanks so much Tim, I was the one that recommended Stylet MVVM. I had also briefly looked at ReactiveUI, in the past - and recently as well, after being reminded of it though a YT video recommendation last week.
    Having 4+ projects under my belt with Stylet MVVM, I'm extremely satisfied with it; especially considering WPF is my main love for application development.
    I can appreciate the ability to also work with other platforms. I would love to be able to use my C# skills to write Android apps for my devices one day; I tried Xamarin briefly and ultimately fell off (this was $before$ Microsoft made it more accessible.)
    I've never heard of MVVMCross - I really like their website; looks like tons of documentation, which for me, is ALWAYS A PLUS! One of my major reasons for using Stylet; their documentation Wiki - it's succinct, but you get enough to grok how go get going with the platform, which fortunately is likewise minimalist.
    I appreciate you so much, Tim - thanks for spending an amazing amount of your time helping others - PROPS!
    PS - Following along with you, as a tip, the one thing I do now for every ViewModel (started w/Stylet), is I add a link to the MVVM documentation page! LOL, comes in handy!
    using MvvmCross.ViewModels; // www.mvvmcross.com/documentation/
    Edit - For now, I think I prefer Stylet's Actions, vs using their Commands, (though admittedly, I have yet to see what else this platform offers!), but thanks for walking us up to this point - at least now I have an option if I want to use a platform other than Windows/WPF!

    • @jonnyjazzz
      @jonnyjazzz 4 роки тому

      I will also look to transition from Caliburn to Stylet, as I only need a WPF MVVM Framework, and my project is fairly young. Thanks for the comments.

    • @williambell4591
      @williambell4591 4 роки тому

      @@jonnyjazzz PROPS! Let us know how you make out. Add a web link comment to the Stylet Wiki at the top of your view models - very handy! 👍

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I am glad you are enjoying it.

  • @brianhoskins1979
    @brianhoskins1979 4 роки тому +3

    Thanks for this. Seeing this video actually served as notification to me that Caliburn.Micro has been abandoned. I didn't know! I have literally just started a new application development so now I am faced with the prospect of learning a new framework as an unexpected task on top of the project. I think I should probably do this now since I expect to maintain said application for the foreseeable future and it'll suck more to change it later than now.
    Caliburn.Micro was actually my first ever MVVM framework - it's what I learned on. Right away, from this basic example. I see a few things 'missing' in MvvmCross that I know I'm going to miss from Caliburn.Micro. The process of adding a View is much easier in Caliburn - no stuff to do in the view itself or the code behind. And also some nice binding helpers in Caliburn.Micro such as x:Name.
    Anyway, I'll stick with you on this for a while and give it a proper try before I decide if I like it or not.
    Cheers!

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +2

      There are some things to make better, but I think we can do a lot just by adding a few templates to the mix.

  • @ВалераБереснев-т6й
    @ВалераБереснев-т6й 4 роки тому +13

    Hello from Russia, Tim! What do you think about classic MVVM style of programming without any frameworks? Will be any videos for this article?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +14

      I'm not a fan, simply because you spend so much time setting things up. I try to only work on the code that is unique to my application rather than setting up boilerplate code.

  • @ronakevolution9567
    @ronakevolution9567 3 роки тому +1

    Hello Tim,
    Thank you so much for this great this great introduction to MVVM Cross, It helped me alot.
    Hopefully you will make more video on MVVMCross, esspecially on Navigation, Dependency Injection.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому

      I add the suggestion to Tim's list for consideration. Be sure to check out Tim's multiple videos on DI and MVVM. You can find them using the Search link under the Subscribe button on Tim’s home page - ua-cam.com/channels/-ptWR16ITQyYOglXyQmpzw.html

  • @Rizzan8
    @Rizzan8 4 роки тому +9

    Could you tell me why do you need MVVM framework in the first place? What is there to "framework" apart from implementing INotifyPropertyChanged and ICommand?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      The framework helps to wire up the two parts (VM and V), plus it aids in value translations and more.

    • @jfpinero
      @jfpinero 3 роки тому +1

      @@IAmTimCorey Don't forget separation of concerns and testability.

  • @321zipzapzoom
    @321zipzapzoom 3 роки тому

    Hi Tim great Stuff as usual , having been able to demo that quick Validation on Guest button enabled based on property coming from other module of project is awesome.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      Thanks for trusting Tim with your time.

  • @torrvic1156
    @torrvic1156 Рік тому +2

    Well…what I’ve got from the comment section is that we probably should return back to Caliburn.Micro or Stylet for pure WPF. Tim, can you tell me if it is correct to put ViewModels and Views in the UI project itself? In your video you put your ViewModels into a separate library. One guy asked you about it and you wrote that in theory UI can be different and that is why you put your ViewModels into a separate library. But what if I want to do Clean Architecture? Should I put ViewModels into UI project? Honestly I have some doubts that you can reuse this ViewModels with the other type of UI. Am I wrong?

  • @dawidbiell
    @dawidbiell 3 роки тому

    Great background to select proper framework for new MVVM apps. Thanks Tim ;)

  • @davidwhite2011
    @davidwhite2011 4 роки тому +5

    Prism is probably worth it as V8 has async await now integrated into the package. I have been using it and the only real problem for prerelease V8 is for Xamarin forms. For WPF you are good to go. The plural sight course is 4 hours is great and you get a 7 day trial.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Thanks for sharing. MvvmCross also has async support. I can't wait to try out Prism, though.

    • @aaronlowery7339
      @aaronlowery7339 4 роки тому

      Which course are you referencing?
      I've got pluralsight and have been having a hard time picking a framework and sticking with it.

    • @davidwhite2011
      @davidwhite2011 4 роки тому

      @@aaronlowery7339
      Introduction to Prism for WPF

  • @karabasbarabas2000
    @karabasbarabas2000 3 роки тому

    Thanks a lot! Hope to see bigger project, using MvvmCross!

  • @hivezphone
    @hivezphone 4 роки тому +2

    Thank you for the video, Tim. I'd like to hear about navigation in MvvmCross in the next video. Caliburn.Micro had great solution for navigation with screen life-cycle management via conductors, and from eyeballing MvvmCross documentation I see that it also offer something to deal with that problem.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I will add it to the list. Thanks for the suggestion.

  • @WuigiBearX
    @WuigiBearX 4 роки тому

    I'm one of the backers listed on the main Github page for MvvmCross. I've been using the framework for years and it's a fantastic framework. It's had its issues over the years, but it's a very solid framework. It's very extensible, and we've definitely customized/extended areas like navigation and app startup to do what we need. The only con is documentation is sparse and mostly outdated. I've learned the framework mostly from looking through the code on Github.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Great to hear! Documentation always lacks, sadly

  • @ergazia7826
    @ergazia7826 3 роки тому +1

    Hey Tim, on the docs of MVVMCross, they're using Services, but, what's the best way ? Yours or theirs ?

    • @WillEhrendreich
      @WillEhrendreich 3 роки тому

      yeah, I don't understand the "services" paradigm or concept either..

  • @georgesmith6827
    @georgesmith6827 2 роки тому +5

    I am a latecomer to this video, but thanks. All goes well until the initial build at 1:14:00 where I get the error message: CS0310 'MvxWpfSetup' 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(object, params Assembly[])' originating from App.xaml.cs line 22.
    It appears that the constructor is in App.cs , but I have the same code that you show, and the constructor is parameterless..
    Perhaps it is because I am using VS 2022 and .Net 6 but I am at a loss.

    • @roshanraj403
      @roshanraj403 2 роки тому +6

      If you want to follow same as in video then you need to downgrade the mvvmcross nuget packages to 7.x
      If you want to use the latest nuget packages then you need to perform few changes to your code:
      1. Replace "this.RegisterSetupType()" with "this.RegisterSetupType()"
      2. Create Setup class which inherits MvxWpfSetup
      3. Implement the inherited abstract member in the setup class
      4. Add following attributes to your view i.e., GuestBookView:
      [MvxContentPresentation]
      [MvxViewFor(typeof(GuestBookViewModel))]
      You can refer the repository: github.com/MvvmCross/MvvmCross-Samples/tree/master/TipCalc/TipCalc.WPF

    • @chris7263
      @chris7263 10 місяців тому

      @@roshanraj403sigh. And the Setup.cs file has a bunch of stuff in it not at all discussed in this tutorial, so in order any get any use out of this I’d have to go find ANOTHER tutorial about all that Serilog stuff. Wish I’d know that before I spent two hours on this dead end. Thanks for pointing me in the right direction so I could figure that out, at least. I should know better by now than to try to mess around with tutorials over two years old, it’s always a waste of time.

  • @nirajdahal5019
    @nirajdahal5019 4 роки тому +4

    Tim we all love your content very much.They are really really valuable. We wanted to know how you learn all those things. What approaches do you take to solve a particular problem and how you find the right information that you need ? It would be really helpful for us if you answer that in the form of a blog or video :D. Thank you for helping us with your valuable experience one again..

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      I read a lot of code. That helps a lot. I also talk to people, read blog posts, and try out everything I think I've learned.

  • @Campon
    @Campon 3 роки тому

    Hey Tim, I've started messing around a bit with MVVM Cross. I want to read and display data from a file but I'm having a hard time finding the "correct" way to do this design wise. The TipCalc example has the folder "Services" which seems to be for "non-UI logic", but this doesn't feel like the correct place to create a file IO class, am i wrong in this? Would a better way be to have a separate "DataManager" project besides .Core and . and a class in "Services" which just gets the data from "DataManager" and puts it in a list for the ViewModel?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      Yes, I would move non-UI-specific things out of the MVVM project (the UI).

    • @Campon
      @Campon 3 роки тому

      @@IAmTimCorey Thanks for the reply, it felt like it made more sense as i was typing it out. I think the design part has been the hardest part for me when trying to wrap my head around MVVM!

  • @jphvnet
    @jphvnet 3 роки тому

    Hello Tim. Why do you name the classes as "GuestBookViewModel" when you know that the class is in the "ViewModel" namespace? Is it for a syntax preference "ViewModel.GuestBook" vs "GuestBookViewModel"? Did you experienced issues? Thanks!

  • @florianmaier5829
    @florianmaier5829 3 роки тому +1

    Great video Tim. I used Mvvm cross for the last months within a wpf project. Overall a good mvvm framework but It seems to me that it is more optimised for mobile app development. For that reason I’m going to have a look in some other mvvm frameworks.

  • @tubetimeline
    @tubetimeline 3 роки тому +1

    Thanks for the video Tim! Given the "moving on", is it worth watching your previous video on Caliburn or best just to start here?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +2

      Learning Caliburn Micro will be of value to understanding how an MVVM framework can work, what the relationship is, etc. but if you don't plan on using CM going forward (it will probably stop with .NET 5 support) then you probably don't need to concentrate on it.

  • @ENCRYPTaBIT
    @ENCRYPTaBIT 4 роки тому +2

    Hello! Big fan here! Since I've discovered your videos, I've gained more confidence to create a tool to assist with development within my company. Being a front end developer, I've taken to initiative to focus in my specialization for what the company needs (and what my interest calls for). All that aside,
    I'm really struggling with using MvvmCross navigation as the examples for Wpf are lost on me. I've been trying for several days and forgot I can come and ask questions here! Instead of berating you with psuedo code and logic questions here though I'll start with the most important question: Are you going to be covering routing on MvvmCross any time soon ?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      Yes, it is high on my priority list. It won't be in the next two weeks, but hopefully soon after that.

  • @KindDutchGuy
    @KindDutchGuy 3 роки тому +1

    Dear Tim,
    Great video! Which MVVM Framework are you working with nowadays?
    Thanks in advance!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      I'm back to using Caliburn Micro since they got a team together to support it going forward.

    • @Zyzal
      @Zyzal 3 роки тому +1

      @@IAmTimCorey May i ask wat your (if any) opinion is on microsofts Mvvm Toolkit?

  • @ladoleskovec281
    @ladoleskovec281 4 роки тому +5

    Hello Tim, thanks for the introduction. While I'm still behind on your amazing TRM course, I tried using some of the lessions learned there so far for my other projects. Since it was based on CM, did you have any intention in migrating TRM to MVX?

    • @jonnyjazzz
      @jonnyjazzz 2 роки тому +2

      I think a "Converting TRM from CM to MVX" would be awesome!

  • @luckyJYK
    @luckyJYK 4 роки тому

    Hi Tim. Thanks for another great video!
    I'll definitely wait for further videos on MVVM Cross.
    So that I can change my project (which follows most of TimCo Retail Manager) to use this framework and make it future proof.
    Thank again Tim.

  • @upcsatx
    @upcsatx 4 роки тому

    I have an app that uses Caliburn's BindableCollection in a lot of places. Specifically the AddRange method. If I migrate to MvvmCross, does it provide a substitute for BindableCollection, or should I just just Microsoft's ObservableCollection and implement an AddRange extension method?
    (I've read conflicting comments whether BindableCollection has thread safety that ObservableCollection lacks, do you know?)

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I haven't looked that deeply into it yet, sorry.

  • @florent9555
    @florent9555 3 роки тому

    Question: I get how the data gets loaded you describe it at 1:11:51. But how does it know that it should take the GuestBookView as the start view? inside the App.xaml we specify the StartupUri as Mainwindow.xaml. So then MainWindow gets loaded but how does it load the GuestBookView Window?

  • @belmiris1371
    @belmiris1371 4 роки тому +1

    Thanks Tim! This video got my attention because I am doing my first Xamarin application and decided to go the MVVM route. This seemed like a lot of extra work and kind of scary 'magic black box' stuff that might leave me holding the bag if it breaks in the field. I am curious to see what the advantages will be.

  • @mastercompuk
    @mastercompuk 4 роки тому

    Hi Tim as always superb video. Great job !!!

  • @user-kq2tc5hy5g
    @user-kq2tc5hy5g 3 роки тому

    In the wpf add-on part of your c# course, do you use MvvmCross or CaliburnMicro?

  • @ilia__k
    @ilia__k 4 роки тому +3

    Hi Tim, thank you for yet another amazing video. Would you consider exploring ReactiveUI applied to Avalonia?

  • @jannickbreunis
    @jannickbreunis 3 роки тому +4

    Back for another MVVM-project, so here I am again! Are you planning to expand on MvvmCross projects?

  • @TheJessejunior
    @TheJessejunior 3 роки тому

    hey tim.... I went to caliburn.micro repo and it looks like it´s been mantained again... do you think it´s ok to keept it or is mvvmcross a better solution anyway?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      It is being maintained, but we aren't sure for how long. I still use it, but it is something to weigh when considering a new project.

  • @johnschut5776
    @johnschut5776 4 роки тому +2

    Hi Tm, I look forward to a future video demonstrating some of the ViewModel navigation to something like the ShellViewModel that was used in one of your prior videos using Caliburn Micro. I've tried following the examples of the Playground examples in MvmmCross but I'm missing some detail that is used to inform the "magic" that we want a child window while retaining our parent menu as well as performing the functions of the child, some of the fact that the cross is so multi-platform and much of their emphasis seems to be aligned to phone/table & small screen I think. I really enjoy how you explain some of the why things that you do even when they do lead down rabbit trails.

  • @facundopugliese9632
    @facundopugliese9632 4 роки тому

    Wow, really nice video. Thanks, Tim! I'll give MVVMCROSS a try, for sure.

  • @robertmrobo8954
    @robertmrobo8954 4 роки тому +1

    Is MvvmCross usable with Xamarin Forms + Shell? I'm looking for an alternative to Prism since it doesn't support Shell yet.
    If MvvmCross doesn't support the Shell as well in Xamarin Forms, which Mvvm framework do you know which does that.
    Thanks for the tutorials... I always learn from your videos.

  • @HernanIannella
    @HernanIannella 4 роки тому +2

    Hi Tim, love your videos and your way of explaining things. Would you consider explaining WPF to access SQL Server (through dapper), but WITHOUT using the MVVM pattern and its associated frameworks? For most of us who won't be unit testing and who will be the designers of our own forms, it really feels like it adds a lot of complexity with no perceivable benefit. I'm sure it is "the right way" to do it, as you already said, but honestly, I'm finding it in the way of getting a desktop app up and running, when the initial goal was just to move from winforms to a more modern UI. I hope it makes sense. Thank you.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      Understood. As far as data access, that isn't affected by the UI. You can watch any of my videos on Dapper or on data access with X user interface (Razor pages, MVC, API in TimCo Retail Manager, etc.) and the Dapper code will work the same way and be exactly the same.

  • @DC-se8ib
    @DC-se8ib 2 роки тому

    Hey Tim, i really liked your videos about caliburn micro. It was allways professional and watched it last time to start a new project. Im want to start again a new project and thought to watch your video, if you say you should swap to MVVM-Cross. But you didnt have detailed Videos as to caliburn micro. Thats a mess. And big minus - that your video ist with MVVM-Cross outdated. Do you still recommend MVVM-Cross?
    I got this error:

  • @TornTech1
    @TornTech1 4 роки тому

    Im new to MVVM... But Coming from the wonderful world of web apps, its really disappointing how the Intelisense in XAML doesn't help with any of the bind commands.. They all feel like magic strings, and if i decide to refactor my method/command name its going to break the binding... is there a way around this?

    • @ignaciodelaparra
      @ignaciodelaparra 4 роки тому

      Hi TornTech, vanilla Wpf (no MVVM) supports that, but you bind the view with the model. To avoid that MVVM jumps in. From what I could see from ReactiveUI, it is possible with it.

  • @OldCumbria
    @OldCumbria 4 роки тому

    Is it possible to use MVVMCross with the Microsoft Ribbon? I do this with Caliburn Micro, but that doesn't require a token like

  • @jasongarner4259
    @jasongarner4259 3 роки тому +1

    You are an oasis of "why" in a desert of process oriented people! I owe the success of my fledgling mid career programming transition to you. Keep up the great work!
    Question: Most all of these MVVM frameworks hijack and take control at the app.xaml startup for obvious reasons. You cant have code in the code behind. But do these MVVM frameworks interfere with applications that process command line arguments? Can I process the command line arguments and then run expression that registers my viewmodel?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      You should be able to process command line arguments and still use MVVM.

  • @1Wade9
    @1Wade9 Рік тому +5

    I hope everyone realizes that Caliburn.Micro is under active development again! :)

  • @bassamsami7319
    @bassamsami7319 3 роки тому +1

    Thank you sir , but wpf.net core is not available in new projects list in newer versions of visual studio i think it is not supported any more! What we do ? Is there a way of personal training with you ? I will pay for your time and will not be much just to give push when i stuck , thank you again.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      It is still available. It is just called .NET now since it is .NET 5.

  • @tea_otomo
    @tea_otomo 4 роки тому

    Just halfway through the video but it's really good so far. Didn't expect a little tutorial for this. I'll for sure take a closer look at Mvx

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I'm glad you are getting value out of it.

  • @AllanLange
    @AllanLange 4 роки тому +1

    Hi Tim, I love your videos and have been following you for quite some time, and even shared a bunch of your videos with my colleagues. I don't know if you would be interested in or already know about Aurelia, but we use it for developing our platforms, but I would love to see you make a video on it. Version 2 is coming soon and should be a very good update. If you don't already know about Aurelia - Rob Eisenberg is basically the "father" of Aurelia.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Yep, I'm aware. Rob is a really smart guy and comes up with some great frameworks. I probably won't cover it, though, just because I haven't covered JavaScript yet.

  • @ludovicwagner2656
    @ludovicwagner2656 4 роки тому

    Hello Tim, thanks for this video. I have to admit that all the different (MVVM) frameworks really make me confused.
    Just a quick question: It seems that the keyword "this" is mandatory with the the following declaration "this.RegisterSetupType();". Do you have any explanation?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I'm not sure why it is in this case, but it is typically because that way it clears up the confusion as to which version of this method we are calling.

    • @ludovicwagner2656
      @ludovicwagner2656 4 роки тому

      @@IAmTimCorey OK, it makes sense. Nevertheless, I have to admit that I couldn't be more confused right now. Do you confirm that MvvmCross is not compatible with WPF Framework apps? I don't think that I can use Standard (or Core) one, can I use some some COM objects (so, it has to be purely Windows).

  • @moisesreyes8955
    @moisesreyes8955 4 роки тому +1

    Hello Tim, great video as always.. i would like to see an example on how to work with windows not user controls, i mean, if i have to show another window and return back a value like a customer id or a product id, that would really nice.
    Thanks for the video, really helpful... you really make coding easier.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      I will add it to the list. Thanks for the suggestion.

  • @doonuut2
    @doonuut2 4 роки тому

    Thank you so much for your videos, I finally managed to understand the MVVM.

  • @orlandoreyes884
    @orlandoreyes884 2 роки тому

    Hi Tim. What do you think about Microsoft.Toolkit.Mvvm?

  • @olaafr
    @olaafr 3 роки тому

    Hi TIm, all.. What is the proper way to implement animations when switching out view models?

  • @Baraka-yl2dp
    @Baraka-yl2dp 4 роки тому +1

    What MVVVM Cross does as shown in your example is almost exactly how you would do it using Prism except for the Bi.nd binding syntax. It's as if one was copying from the other and changing names. I think Prism has much more though and is probably easier.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      They are similar in a lot of ways.

  • @andywalter7426
    @andywalter7426 4 роки тому +3

    The one thing I find really disappointing about mvvmcross is you have to use a special command. I really liked how Caliburn Micro is smart enough to work without using commands. That way is actually much cleaner. If a view model has over 10 methods for example, then the extra commands make for lots of unnecessary code and harder to read because you have the commands and the methods instead of just the methods. Was there something related to Caliburn Micro? I would have thought that would have been a better option and have less breaking changes as well.

    • @typhoonf6
      @typhoonf6 4 роки тому

      Yeah, this seems insane amounts of background work. With fody weaver, you NuGet the package, create a base viewmodel that implements it and then just code normally. No extra code on the views or anything required. AngelSix has a really good video on it.

    • @DerekWelton
      @DerekWelton 4 роки тому +1

      Exactly, I think I was the one to mention it to Tim about Stylet MVVM. Look into it as it was inspired by caliburn.micro. The only downside which is one of the reasons I feel Tim didn't choose it was it only supports WPF. Everything else about the framework is very clean and easy IMO.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Caliburn Micro did make things easier. There are ways to make MvvmCross easier when it comes to commands. I'm going to be working to cover these soon.

  • @Ivolution091
    @Ivolution091 3 роки тому

    Hello! It is not necessary to specify code-behind partial class inheritance, you can simply delete the definition of the parent class, all information will be obtained from the markup of the view (1:05:38 in video)

  • @I-PixALbI4-I
    @I-PixALbI4-I 3 роки тому

    I did awerything as you BUT my button doesn't work... i click and nothing happens. Programm even doesn't go to my method... Omg... i use this MVVMCross just for easy button binding.
    Test from company - failed.

  • @pylvr8021
    @pylvr8021 3 роки тому

    He tim . What mvvm framework are using these days ?

  • @dhruvkumarcontractor7716
    @dhruvkumarcontractor7716 2 роки тому

    Hello Tim, Can you please suggest a tutorial or sample code to do View within View (WPF View Presenter) with MVVMCross? I tried to follow the MVVMCross document and I am completely at loss. I appreciated your help and guidance.

  • @Otonium
    @Otonium 4 роки тому

    Excellent, now exploring and helping them. Great explanation Tim. - Q: Does its dependency injection capabilities affect my projects if I also use Dapper?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      Nope. You can use Dapper with any DI system.

  • @meilleur102
    @meilleur102 3 роки тому

    Andddd do you plan on showing or to do dialogBox with this. I can't figure it out..It seems so complicated vs the MessageBox.Show()

  • @jaredrussell6247
    @jaredrussell6247 3 роки тому

    Hey Tim,
    Great video, it really helped reiterate some basic MVVM concepts for me. I am curious though; will you be making other videos on MvvmCross as you stated in this one? Covering IoC and Navigation would be awesome!
    Thanks!

  • @kevinfurst8163
    @kevinfurst8163 4 роки тому +1

    Hi Tim, have you already done a tutorial on the UNO Plattform? (You mentioned something in this vid, but I couldn't find it)

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +2

      Not yet. It is on my high priority list to cover.

  • @JoshyHJoshy
    @JoshyHJoshy 4 роки тому

    When I click on the SourceCode link, I get an "HTTP Error 500.30 - ANCM In-Process Start Failure" error... Any other link for downloading it?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I fixed it. It should work now.

    • @JoshyHJoshy
      @JoshyHJoshy 4 роки тому

      @@IAmTimCorey Thank you Tim :-)

  • @jamiesharpe1457
    @jamiesharpe1457 3 роки тому +1

    Hi Tim, Thank you so much for producing and providing these videos.
    Though I am struggling to see the connection between the MainWindow XAML and the GuestBookView XAML. How does the Window know to show this view? At 1:12:06 you describe the control flow, but not this part.
    Again, many thanks for all the work of your channel.

  • @AlainMiltenburg
    @AlainMiltenburg 4 роки тому

    Hi Tim,
    Thank you for your in depth analysis of alternative MVVM frameworks. Around a year ago I started using Caliburn.Micro after watching one of your earlier videos and I making the leap to MvvmCross now. But I am running into some problems, I also ran into with Caliburn.Micro...
    I am mainly building third party WPF extensions for Autodesk software. I am looking for a way to kick of the MvvmCross framework from code. I could not find an example for this, all examples I found are stand alone applications.
    Do you have any pointers?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I don't. Sorry. I would imagine there is a way to do it. It probably has to do with converting the MVVM startup code into code that you can trigger from the entrypoint for the application.

    • @AlainMiltenburg
      @AlainMiltenburg 4 роки тому

      @@IAmTimCorey Thank you for your reaction. In the meantime I examined the source code of MvvmCross and I came to the conclusion this is not the right tool for my situation. MvvmCross depends a lot on Application objects, which seemingly cannot be used for plugins of the main application I am developing against.

  • @DhairyaJoshi21
    @DhairyaJoshi21 4 роки тому +3

    Hello Tim,
    Can you please continue with this series and release new video with advance concepts of MvvmX, as i am also used CM with WPF and now want move to another framework.
    As i started developing on Xamarin this framework is good enough for both platforms so i would love to learn advance concepts with this.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +5

      Thank you. I have added this to the list of possible future topics.

    • @Otonium
      @Otonium 3 роки тому

      I'm really enjoying this Mvvm framework. And it would be great to learn more indeed. O_O Thank you!

  • @ricardocasillas5054
    @ricardocasillas5054 4 роки тому

    Hi Tim, I am just starting with WPF from WinForms, should I just create a plain WPF app, or should I jump in with a MVVM app. I dont have any particular project in mind, just want to get going with WPF apps for Windows Desktop for now. Any guidance you can provide will be appreciated. Thanks Tim. Maybe you can do a video on the subject, transitioning form WinForms to WPF and MVVM. Thanks,

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I recommend starting with just WPF before adding in MVVM. That way you understand the fundamentals before you add in data binding.

  • @steevemike2723
    @steevemike2723 3 роки тому

    Hi Tim, Please I don't know why my mvx:Bi.nd="Command AddGuestCommand" said that the Property nd was not found in type Bi. any idea please

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      Not sure. Sorry.

    • @fredrikfischer6098
      @fredrikfischer6098 3 роки тому

      @@IAmTimCorey I have the same problem, idk what to do. Tried to import a namespace i found in their website but i still get "invalid Markup". Nontheless, thank you for taking the time to make this tutorial!

  • @jonnyjazzz
    @jonnyjazzz 2 роки тому

    Hi Tim, any plans to return to the idea of checking out Prism for MVVM?

  • @chrisjohnson7255
    @chrisjohnson7255 2 роки тому +1

    Very late, but Prism is still a strong option and has new features that make it excellent to setup and use! The new bootstrapper is excellent compared to the older one.

  • @Gruggo
    @Gruggo 3 роки тому

    I'm running on .net 5.0, and using MvvmCross v7.1.2.
    Not sure how the app knows to launch the MainWindow, and place the GuestBookView usercontrol inside of it.
    Also, mine doesn't' do this, the app runs, but no window shows up?
    Did I miss something?

    • @Gruggo
      @Gruggo 3 роки тому

      Well, I did the TipsCalc tutorial in the MVVMCross docs, and it works, other than it registering the ICalculationService with the IoC Container, i see no significant difference between the 2 apps.
      *shrug*

    • @BlitzkriegNH
      @BlitzkriegNH Рік тому

      I had the same "no window" problem and it was caused by a spelling difference between the name of the ViewModel class and the View class. If you have, for example, FoobarViewModel and FooobarView your application will not display.

  • @SunnyCurwenator
    @SunnyCurwenator 3 роки тому

    Morning all, I have recently installed VS 2019 Professional - full licence, however - I can't find the WPF App (.NET Core); the WPF App (.NET Framework) is there. I selected the .NET Core components when installing...any thoughts why I can't see this as a list of new projects to create? Thanks. Sunny

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      Under Tools -> Get Tools and Features, check to see that you have both the .NET Core workload and the Desktop workload installed.

    • @SunnyCurwenator
      @SunnyCurwenator 3 роки тому

      @@IAmTimCorey ... thank you...must say...it's been an eye-opener coming back to programming after many years...I always knew about MVVM - so it's great to see it flourishing. I've opted to put together a WinForm to get our GUI up and running and in the background migrate to MVVM. I didn't want to go all-in with MVVM because as you quite rightly point out in another video, there's alot to learn... navigation and hooking up business logic - I can do that in WinForms in my sleep... MVVM...there's a bit more going on...but - I've started the journey...um...loving your content...I could see myself signing up to your paid content too 👍

    • @SunnyCurwenator
      @SunnyCurwenator 3 роки тому

      ...I've got the .NET desktop development workload selected...within that workload .NET CORE individual components are selected (3.1 and 2.1 Runtime (LTS))...any ideas?

  • @AnweshGangula
    @AnweshGangula 2 роки тому

    Hey Tim, Great content - I appreciate you sharing it.
    I'm trying embed this video in a Note Taking platform I use so that I can view the video and add notes side-by-side. But looks like embedding is disabled for this video. Would you be willing to turn it on? I'm not sure if that impacts any of your UA-cam statistics.

  • @luckeyzlion
    @luckeyzlion 3 роки тому

    Hello Tim,
    What i like most in Caliburn Micro is the conductor. How do we replace Screens, Conductors and Composition found in Caliburn micro in MVVM cross?

  • @Marko-the-Beast-Master
    @Marko-the-Beast-Master 4 роки тому +2

    Hi Tim, could you please make a new series of videos on the theme of MvvmCross implementation in some "real" application with WPF, Dapper, using Design Patterns, something bigger? I'll pay extra for that version on your e-shop.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I will add it to the list. Thanks for the suggestion.

  • @itznot.george
    @itznot.george 4 роки тому +1

    Tim I would really like your course to be continued.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      You mean continuing to work with MvvmCross? I will be continuing to do so. Not every week, but I will be preparing more content for it.

  • @adotinthecosmos
    @adotinthecosmos 2 роки тому

    Hey, A little late to the party. But now that Caliburn is continuing development. Do you still recommend other options?

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому

      Caliburn Micro is again a viable option and one I recommend. You can use another, though.

  • @hamidrezaashkiyan
    @hamidrezaashkiyan 4 роки тому +2

    Would you change timco retail manager MVVM framework?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      Probably not. I am not a fan of ripping out an MVVM framework like that. It just means we will have to carefully plan out our .NET 5 upgrade.

  • @MrJonusAngelus
    @MrJonusAngelus 3 роки тому

    Hi Tim, thanks a lot for this video that is very helpful.
    Will you cover navigation, eventhandling, and more with mvvmcross in the future ?

  • @manuelketisch3752
    @manuelketisch3752 3 роки тому

    Hello TIm, have you yet decided which framework it is going to be for you? Do you intend to take a closer look on prism, now that prism 8 is out?

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      I did a video on MvvmCross. I may do one on Prism still.

  • @codify2123
    @codify2123 4 роки тому

    I started with caliburn micro years ago. Now I switched to prism, and I am happy with that. Write large business apps.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Thanks for sharing your experience.

  • @jetro888
    @jetro888 3 роки тому

    Hi Tim,
    I am a silent fan of your channel. I am recently looking for an MVVM framework then I came across this video. First observation is that since making this video 11 months ago, there hasn't been any follow up. Many have been requesting for discussion on Navigation. Many have asked this and let me join them, has your support for MVVMCross wavered in any way? :-)
    From my early days of explorations, I noticed little support (from MVVMCross) for WPF. I couldn't even find any documentation to edit Window Title and Size of a Window Modal.. among other things.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому

      I noted your recommendation by adding it to Tim's list of possible future topics, thanks. At least I am making him aware of the interest level in MVVM

  • @MarciaSmall
    @MarciaSmall 4 роки тому

    Hi Tim, why did you choose to feature MvvmCross over all the other Mvvm frameworks? Why did you prefer this framework?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I covered that in this video.

    • @MarciaSmall
      @MarciaSmall 4 роки тому

      @@IAmTimCorey Thanks, you are correct, I watched it on two different days and it looks like a skipped over a whole section.

  • @jasincolegrove4798
    @jasincolegrove4798 3 роки тому

    @IAmTimCorey please continue this MVVMCross series.

  • @thomasspeicher8796
    @thomasspeicher8796 3 роки тому

    I just watched / learned the "WPF in C# with MVVM using Caliburn Micro". But here you say, Caliburn Micro is no longer being actively developed. The current Caliburn.Micro Version is 4.0.173 from May 9, 2021. Now, i'm confused, whether it is active again or not?

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +1

      For a period they will keep putting out fixes and security patches, but don't confuse that with 'actively developed' which means adding new features and capabilities.

  • @meilleur102
    @meilleur102 3 роки тому

    Hi Tim. Really love your video. I'm currently on a project and I use the MVX frameword that you use in this video. I have a DataGrid like you with autoGeneratedColums. The problem I have I want one of the colum to be hidden and I can't find a way to do it.
    Can you help me on this?
    Thanks.
    Jc

  • @XAMLLlama
    @XAMLLlama 2 роки тому +3

    🦙 FYI MVVM Light is no longer maintained, we have a document about using its spiritual successor (the MVVM Toolkit) here: aka.ms/toolkit/dotnet/docs/mvvmlight-migration

  • @oussamasethoum2755
    @oussamasethoum2755 3 роки тому

    is MVVMCROSS documentation updated , or not yet ?

  • @richardschofield2201
    @richardschofield2201 3 роки тому

    Thanks for the video.
    The bit I can't grasp, or find an explanation to (possibly just need the right words to search) is how do I modify/access a single instance of a model (say a list of objects) with two or more viewmodels.
    If you have a video that explains this I'd love to understand this concept.
    Thanks.

    • @richardschofield2201
      @richardschofield2201 3 роки тому

      A little more research suggests that dependency injection as a singleton seems to be the answer, which mvvmCross supports.
      Are you still planning on doing a more in depth overview of mvvmCross?

  • @RobertCastilloC
    @RobertCastilloC 3 роки тому

    Awesome Tim please make another video with navigation

  • @mcorplab2719
    @mcorplab2719 4 роки тому

    Great video as always.
    I've started a demo project with mvvmcross, but I can't find how to use Microsoft di inside it.
    I am aware that I can use their iocprovider, but I was looking for a way to add iservicecollection instead.
    Is there a way to do this?
    Thank you in advance. :)

    • @user-yp6fz7ox7l
      @user-yp6fz7ox7l 4 роки тому

      Not yet possible!
      There is an github issue with it. You can vote it :)

  • @Offroadliker
    @Offroadliker 2 роки тому

    Hello, Tim. I try to learn mvvmcross by making a test project. I find it difficult to find help with google. Is it prossible to make a more indepth video? Thx a lot!

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @frankvandiepenbos9905
    @frankvandiepenbos9905 4 роки тому +1

    Great video Tim,
    In a next mvx video can you add the topic of multiselect in a datagrid?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I have added it to the list of possible future topics. Thanks

  • @joeerickson587
    @joeerickson587 4 роки тому +1

    Hey Tim, great video again as always. Any idea on how to use Application.Resources or a Resource.Dictionary since the setup alters the App.xaml file?

    • @joeerickson587
      @joeerickson587 4 роки тому

      Never mind, I think I figured it out after playing around for a little bit... Rather than Application.Resources its . Thanks for all the great content

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I am glad you were able to get it working.

  • @pawebielecki887
    @pawebielecki887 4 роки тому +1

    Very usefull but things like:
    RaisePropertyChanged(() => FullName);
    RaisePropertyChanged(() => CanAddGuest);
    inside other properties can become a huge headache to maintain in bigger projects. MMVM frameworks should really take better care of making it more user (developer) friendly IMHO. What I really like is how they approach this problem in PropertyChanged.Fody by allowing decorating dependent properties instead. For example:
    [DependsOn("FirstName","LastName")]
    public string FullName { get; set; }
    Very clean and easy to read plus you can stick with auto-properties!

    • @ya4eburashka
      @ya4eburashka 4 роки тому +1

      And if your property looks like
      public string FullName => $"{FirstName} {LastName}";
      which it most probably should, DependsOn attribute is not needed - PropertyChanged.Fody will figure it out.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Yep, I didn't want to mix Fody into this, but that is a good option.

    • @GeertvanHorrik
      @GeertvanHorrik 4 роки тому

      It's actually one of the things Catel does for you automatically. In Catel (combined with Catel.Fody), you can just use regular properties with dependent properties being automatically detected for you).