In this chapter, you learned about the Model-View-ViewModel pattern and how it may benefit you when building Silverlight LOB applications. You learned that the model represents the application in general and should follow best practices around decoupled code. You learned about the D.R.Y., Y.A.G.N.I., and S.O.L.I.D. principles as cornerstones for quality software development. You learned about the role of the view and how the view model is designed to coordinate and synchronize state between the view and the underlying application model. The view model essentially encapsulates what is referred to as presentation logic.
In the next chapter, you will learn about a framework that works hand in hand with MVVM to help you create modular and extendable applications. The Managed Extensibility Framework (MEF) provides services that help you manage decoupled code and create extension points in your application so it is easy and straightforward to extend at both compile-time and runtime. You will learn about lifetime management and metadata as tools to create a framework for building large LOB applications.