-
Notifications
You must be signed in to change notification settings - Fork 459
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Microsoft.Toolkit.Mvvm to replace MVVMBasic& MVVMLight templates #3753
Comments
Looks like we may also need to consider CaliburnMicro in relation to this also.... Caliburn-Micro/Caliburn.Micro#708 |
Thanks @mrlacey for filing this issue. We've definitely been talking to @sibille about this path forward as well. We didn't want to ship a new MVVM framework in the Toolkit and not have the WTS on board as well. Especially now that Caliburn.Micro has announced development stopping as well, this new MVVM package would probably replace all three of those in WTS, so the options would be 'None', 'WCT MVVM', and 'Prism'? Happy to sync more as we finalize the PR, move to create documentation/samples, and get a more official/stable preview out in the coming weeks. I have a couple of final loose ends to tie-up next week before we official green-light and move forward, but the positive responses from the community have been very encouraging towards this path. |
Also, it's good to note that the new WCT MVVM package is .NET Standard based, so using it and supporting it with other directions for WTS in the future like WPF, Uno, Xamarin, and WinUI 3 should be relatively straight-forward and simplified. 🙂 |
Hey @mrlacey - thank you for following up on this and creating this issue! 😄 I'm super excited for the response so far and the feedback from the early testers, so really looking forward to seeing how this moves forwards! I've already prepared a draft of the docs, and I'll be happy to get a docs PR started in the near future as well so that it might also be useful to clear things up for people interested in the PR and coming from other frameworks (eg. |
Great questions and discussion @mrlacey, @michael-hawker and @Sergio0694 Yes, our idea is to replace MVVMBasic and MVVMLight with the new WCT MVVM framework. Regarding the best way to update existing apps, I think we should evaluate how big the change is (considering also the changes WinUI3 will bring) and decide based on that, what's the best way to move support an update. Would also love to hear from devs currently using MVVMLight + MVVMBasic what their plans and needs are. If CaliburnMicro is no longer maintained we should also remove it as an option, I believe an update path is more complicated in this case, as the frameworks are quite different. |
I like the direction this going. MVVM Light and Caliburn have seemed to be on life support lately. I agree that's its best to remove them. I try to teach using Template Studio and students that wander down those paths often get frustrated. I always steer them to Code Behind or MVVM Basic. Now that Studio has added WPF support, anything that can reduce the maintenance effort is a good step. |
I thought Prism had effectively dropped support of UWP in the past. Is it even a viable option moving forward? |
Uno are aiming to support Prism on WinUI so it might not be dead https://platform.uno/blog/uwp-winui-and-uno-platform-get-prism-support-thanks-to-uno-team-oss-contribution/ |
@scottkuhl thanks for the input, that's really encouraging to hear and part of our reasoning on having a new light-weight MVVM package in the Windows Community Toolkit. The great part too is since it'll be .NET Standard base with Windows Template Studio also supporting WPF now; they can just as easily have the same option there as well! 🙂 We'll hopefully be releasing a preview package on NuGet in a few weeks and have better samples and docs ready at that time. Hoping to get the PR merged in within the next week and then it'll be available on our MyGet for easier pre-preview consumption. 😋 |
Early work in preparation for microsoft#3753 Requires configured NuGet source for toolkit MyGet endpoint Still a WIP - C# tested manually, VB needs more testing
I'm working on adding these as an extra framework option for review/testing. How existing frameworks will be retired is yet to be determined. |
When any existing frameworks are eventually removed it will be worth creating a follow-up task to tidy-up and simplify the templates and remove some of the current complexity. |
To document current thinking:
|
I have to say, I just recently started using WTS, and this is one of the things that would make it perfect for me. (The other big thing being Uno support, but I know how much effort that would take.) Is this template going to be released as soon as WCT 7.0 does? Will it take some time after the release for it to be useable in WTS? |
The exact timeline for releasing this is still to be determined. |
Docs for migrating existing apps built with MVVM Basic to use MVVM Toolkit can be found at https://github.com/windows-toolkit/MVVM-Samples/blob/master/docs/mvvm/MigratingFromMvvmBasic.md. |
This will go into nightly builds shortly. |
WinUI3 Templates updated to MVVM Toolkit to Preview 4 in PR #3960 |
Wanted to give folks a heads up, we had some people reach out to us after our .NET Conf talk. Seems like some community members are trying to work to keeping Caliburn.Micro alive as called out on the previously linked thread: Caliburn-Micro/Caliburn.Micro#708. Not sure how that effects plans or if you want to spin that part out as a separate issue. I think the original discussion around the MVVM Toolkit replacing both MVVM Basic and MVVM Light at least is still solid. |
I believe the only thing preventing this from being ready for release is updating the documentation accordingly. |
With the Windows Community Toolkit looking to take over from MVVM Light (which has ceased active development) and release a replacement, adopting support for this should be considered.
It would depend on the toolkit version getting to a full release version (AFAIK this will be in v7.0, but there's no timeline for this yet) but it might be worth starting to think about this now.
This is a tracking issue as much as anything and opened to keep track of any discussion on the subject.
Some questions that will (eventually) need answering
Note. Replacing MB & ML with MTM would greatly ease the development and testing effort required in template development.
I would expect this to necessitate a major version change. As such, it may be worth doing this at the same time as other big changes. (.NET 5/WinUI3--perhaps?)
X-Ref: CommunityToolkit/WindowsCommunityToolkit#3230
The text was updated successfully, but these errors were encountered: