So what's .NET? It's another product from Microsoft. The .NET framework is a programming model. Programmers can build applications within this model -- particularly Web applications that rely on eXtensible Markup Language (XML).
The .NET Framework's two major components are a common language runtime and a class library. The common language runtime acts like an administrator -- it monitors applications and allocates the resources those applications need (like memory or processing power) to run properly. The class library contains several reusable software objects programmers can rely on while creating applications. A software object has two characteristics: state and behavior. An object's state refers to the different conditions the object can have. For example, a program could have the states of "running," "paused" and "stopped" (though not all at the same time). Behaviors refer to what an object can do. In our example, that would include "start," "pause" and "end."
And that's just the framework that surrounds Silverlight! Within Silverlight, Microsoft includes Windows Presentation Foundation (WPF) technology and support for eXtensible Application Markup Language (XAML). Application developers can use both WPF and XAML to create Web applications. Both WPF and XAML work seamlessly within the .NET framework. Microsoft developed WPF because Hypertext Markup Language (HTML) has limitations -- Web browsers are capable of executing functions that are too complex for HTML to support.
WPF uses a vector-based rendering engine to generate graphics for applications. It can support 2-D and 3-D graphics and provides developers with the means to power their applications by working within .NET. The main purpose of XAML is to give developers the means to tweak the appearance of their applications. Together, WPF and XAML define the look and behavior of a Silverlight application.
Let's take a look at the architecture for the Silverlight platform to see how these elements all work together to give programmers the platform they need to build RIAs.