While UI screen is still the focus of the final delivery, Code behind part (Controllers of MVC, or ViewModels of MVVM) are now more advanced. They not only separate behavioral concerns from presentation concerns, but they also provide many values, such as encapsulation of business logic away from UI screens, unit-testable code blocks (Controller or ViewModel is unit-testable), maintainability, and so on.
This section is not claiming that there is something wrong with the above typical application architectures. Instead, I want to suggest more advanced approach for consideration, only for complex projects that would not feel so comfortable with the above architectures and would look for something even more mature.
This architecture provides all the benefits of the full-fledged applications, such as:
As you can see, nothing extraordinary. Maybe you have even seen such architecture implemented in other platforms, that's why you would call it Deja Vu.
Author of the above content is Tengiz Tutisani - owner and technical leader at tutisani.com.
If you agree with the provided thoughts and want to make it part of your team's culture, we can help.
We provide in-person, immersive technical training courses around Software Architecture, Domain-Driven Design, and Extreme Programming topics. We also develop software solutions.