An MVVM-based client application framework