- App is divided and modularized into folders by feature, not by "technological" anemic names like "Models", "ViewModels", "Services" on the root.
- Controls & resources modularized, not contained in one global place.
- Objects are not dumb bags of data.
- Logging is done using AOP techniques like DynamicProxy and Weaving.
- API details are abstracted from ViewModels.
- ViewModels communicating using mediator pattern.
- Caliburn.Micro MVVM framework is used.