XAML being XML-based, it needs to be parsed and processed when the code is loaded in the application. WPF allows multiple scenarios, for example pre-compiling the XAML to BAML (binary application markup language), which is usually embedded into an assembly. This speeds up loading time, of course. Another option is to leave the unprocessed, uncompiled XAML file on the server (or in the "bin" folder of the application), and to load that file on demand when it is needed. This step involves the conversion from XAML (a text-format) to a stream, then converting the stream to a collection of XML nodes, and then using these XML nodes to build the actual WPF objects . This all takes time.
Read the rest of this entry »