Chapter 12. Application Architecture

WHAT'S IN THIS CHAPTER?

  • Understanding design patterns and principles

  • Working with the Model View ViewModel pattern

  • Exploring Silverlight frameworks (MEF and PRISM)

  • Defining a data access strategy

  • Designing with performance in mind

When architecting your Silverlight application you need to keep in mind the functional and non-functional requirements.

  • Functional requirements include navigation, workflow, and security.

  • Non-functional requirements include number of concurrent users, performance, scalability, maintainability, and reliability.

Whether your application is configured to run as a web browser plug-in or installed on an end-user machine (out-of-browser application), you need to understand the tradeoffs involved in and best practices for designing an n-tier application. Addressing these functional and non-functional requirements is no small task. A solution that increases performance may impact scalability or the maintainability of your application. Fortunately, n-tier application design is not new and several well-documented approaches exist to address functional and non-functional requirements.

The most proven approach for architecting n-tier application is to focus on building loosely coupled components. Each component is focused on a single or small set of responsibilities (features). This approach increases the maintainability of your application and allows you to easily address performance/scalability issues that might come up. For example, if ...

Get Professional Silverlight® 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.