Using the database first workflow, you can begin with a legacy database to create a model. Model-View-Controller is a fundamental design pattern for the separation of user interface logic from business logic. Figure 3: Using Observer to decouple the model from the view in the active model Figure 4 illustrates how the Observer notifies the views when the model changes. Please see the patterns & practices guidance for the most current information. Fortunately, the Observer pattern [Gamma95] provides a mechanism to alert other objects of state changes without introducing dependencies on them.