Establishing an architecture is a time-consuming task and adds complexity to our project. In exchange, we get some benefits as follows:
- We can give access of the code repository to a graphic designer so that he can create or modify a window without any knowledge about development
- It gives us a possibility for our business logic to be tested via automatic unit tests
- It is easier to make modifications since, for instance, a change in the UI does not have to affect the business logic
- It permits reuse of some functionalities in different parts of the app, or even in other apps
Talking in "ilities" terms, we get improvements in testability, productivity, maintainability, and readability.
Focusing in Silverlight, we have seen how the MVVM pattern ...