Interaction of ViewModels

An application's architecture depends on the degree of connection between its modules. For instance, in small applications, View Models may know about other View Models (View Models can create other View Models, set their properties or handle events). This architecture type is tightly-coupled. This is a good and clear one, if you develop an application alone or in a small team.

However, if you develop a large application, then the tightly-coupled architecture is not suitable, because any change may break the whole system. The loosely-coupled architecture solves this issue. It implies many scattered modules, operating without awareness of each other. Ideally, modules are the building blocks of an adaptive design. In turn, modules can be built with the tightly-coupled architecture. This allows you to easily support and improve your application, because adding or removing functionality means registering or unregistering a specific module, without concern about any other module.

When developing applications using the loosely-coupled View Models architecture, it is necessary to organize interaction between modules. DevExpress MVVM Framework provides several capabilities for this purpose (see the below list).