Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why should I use MVVM in Silverlight app?

I want to know why we should use MVVM to implement Silverlight app. What're it's advantages?

We don't do Unit Test for ViewModel, so I want other reasons.

Below are my questions about some advantages people usually say:

1.Loosely Coupled : When we use MVVM , a view rely on ViewModel but not a view, why it's loosely coupled?

2.If I provide public methods in a code-behind, they can also provide reusability.

like image 492
Jason Li Avatar asked Feb 02 '23 23:02

Jason Li


1 Answers

Well, the unit-testability of the view-model is a significant advantage, so you'll miss out on that benefit. Regarding the other two:

Loosely coupled

Yes, the view does rely on the view-model. They have to be connected in some way to accomplish the function of the application. As a result, they cannot be uncoupled. The only choices are tightly-coupled or loosely-coupled or somewhere in between. With MVVM your view-model interacts with your view in a very limited way: basically just objects, properties and commands. Compare this to doing everything in the code-behind where the view and its control are essentially inseparable.

Re-use

If any code in your code-behind is re-usable enough to merit being public, it can be taken out of the code-behind and put into a general-purpose class. The problem is that what's left after that is not reusable.

If you don't want to go into the MVVM deep dive, then you can get some of the benefits of MVVM by focusing on databinding. After you learn the benefits of databinding, you can reconsider the other benefits of MVVM.

like image 101
Rick Sladkey Avatar answered Feb 20 '23 04:02

Rick Sladkey