Asynchronous View Model construction
We can improve the productivity of our designers using MVVM, by making design-time data available either directly in our View Models or by using an IoC (Inversion of Control) to swap in stubbed View Models in the designer. Doing this allows designers to have working sample data at design-time to help them create sophisticated views for our users. This is a productive working style, as designers don't have to access anything (such as the database or web services) and it provides a separation between designers and developers that allows them to work in parallel without blocking each other. However, when the real application is run outside of the designer, all of the dependencies will be live, and loading this data can slow things down when it comes to loading our views. We need to improve the application responsiveness as much as we can, so that the application doesn't become idle when data is being read.
We can illustrate the previous scenario by introducing...