<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.infosupport.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alex van Beek</title><link>http://blogs.infosupport.com/blogs/alexb/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Flex 4: A multi threading solution</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/03/01/flex-4-a-multi-threading-solution.aspx</link><pubDate>Mon, 01 Mar 2010 07:43:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:194583</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=194583</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=194583</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/03/01/flex-4-a-multi-threading-solution.aspx#comments</comments><description>&lt;p&gt;If you develop applications in Silverlight a lot, it becomes more and more annoying that Flex doesn&amp;rsquo;t support multi threading. This is particularly annoying when you are processing a long running task and need to display some progress. The problem is that you can&amp;rsquo;t do this task on a background thread, this means that the ui thread is busy processing your task and it can&amp;rsquo;t update the ui until your task is done, at which the progress of course is 100%. In this article I&amp;rsquo;m going to show how you can somewhat work around Flex&amp;rsquo; and more precisely Flash&amp;rsquo; lack of multithreading while still being able to let the ui be responsive and show progress.&amp;nbsp;&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2010/03/01/flex-4-a-multi-threading-solution.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=194583" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex/default.aspx">Flex</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+4/default.aspx">Flex 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Responsive/default.aspx">Responsive</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Multi+threading/default.aspx">Multi threading</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Progress/default.aspx">Progress</category></item><item><title>Silverlight 4 vs Flex 4: Accessing the Clipboard</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/02/22/silverlight-4-vs-flex-4-accessing-the-clipboard.aspx</link><pubDate>Mon, 22 Feb 2010 07:50:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:182279</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=182279</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=182279</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/02/22/silverlight-4-vs-flex-4-accessing-the-clipboard.aspx#comments</comments><description>&lt;p&gt;In this post I&amp;rsquo;m comparing Flex 4 and Silverlight 4&amp;rsquo;s clipboard access abilities. Accessing the clipboard should be an interesting comparison, since both Flash 10 and Silverlight 4 take different approaches. I deliberately said &amp;quot;Flash 10&amp;quot; in the previous sentence, because accessing the clipboard in a Flex application is done by using the native Flash 10 ActionScript api and there isn&amp;rsquo;t any specific Flex code required.&amp;nbsp;&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2010/02/22/silverlight-4-vs-flex-4-accessing-the-clipboard.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=182279" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+4/default.aspx">Flex 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+4/default.aspx">Silverlight 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Clipboard/default.aspx">Clipboard</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flash+10/default.aspx">Flash 10</category></item><item><title>Silverlight 4 vs Flex 4: Data Validation</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/02/01/silverlight-4-vs-flex-4-data-validation.aspx</link><pubDate>Mon, 01 Feb 2010 08:24:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:164711</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=164711</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=164711</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/02/01/silverlight-4-vs-flex-4-data-validation.aspx#comments</comments><description>&lt;p&gt;In this post I&amp;rsquo;m again comparing two features of Silverlight and Flex, this time we&amp;rsquo;re going to take a look at how data validation is implemented on both platforms. This will be a very interesting comparison, since Flex and Silverlight take entirely different approaches. Which one is better? I can let you know in advance that one of the two is a bit broken. Read on to find out which one&amp;hellip;&amp;hellip;&amp;nbsp;&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2010/02/01/silverlight-4-vs-flex-4-data-validation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=164711" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+4/default.aspx">Flex 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+4/default.aspx">Silverlight 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Validation/default.aspx">Validation</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Data+Binding/default.aspx">Data Binding</category></item><item><title>Silverlight 4 vs Flex 4: Printing</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/22/silverlight-4-vs-flex-4-printing.aspx</link><pubDate>Fri, 22 Jan 2010 15:29:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:161957</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=161957</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=161957</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/22/silverlight-4-vs-flex-4-printing.aspx#comments</comments><description>&lt;p&gt;I&amp;rsquo;ve wanted to do a &amp;ldquo;Silverlight vs Flex&amp;rdquo; series for quite a while now. Both Silverlight and Flex will reach version 4 during the first quarter of this year, at least, that&amp;rsquo;s what the roadmaps say. With both reaching version 4, this seems like the perfect time to do a comparison about how to implement certain features. Silverlight has been catching up with Flex, but in Silverlight 4, there are features in Silverlight that are just not possible in Flex (COM interop / Drag and Drop from the desktop), while other features that previously&amp;nbsp;were only possible in Flex, are now&amp;nbsp;also available in Silverlight 4. Whether the implementation of these features in Silverlight is as mature as in Flex is what we are going to find out in this series. We&amp;rsquo;re going to start with how printing is implemented on both platforms.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Printing in Silverlight 4&lt;/h4&gt;
&lt;p&gt;Central to printing in Silverlight 4 is the PrintDocument class. Printing in Silverlight always has the same steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a PrintDocument object. &lt;/li&gt;
&lt;li&gt;Set the document name on the PrintDocument object. &lt;/li&gt;
&lt;li&gt;Attach eventhandlers for the PrintPage event and optionally for the StartPrint and EndPrint events. &lt;/li&gt;
&lt;li&gt;In the eventhandler for the PrintPage event, create the visual you want to print and assign it to the RootVisual property of the incoming PrintPageEventArgs object. &lt;/li&gt;
&lt;li&gt;Specify whether another page will be printed by assigning the HasMorePages property of the incoming PrintPageEventArgs object true or false. &lt;/li&gt;
&lt;li&gt;Repeat step 4 and 5 as long as there are pages to print. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of these steps are shown in the code behind of a Silverlight application that prints &amp;ldquo;Hello World&amp;rdquo; when a button is pressed:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Windows;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Windows.Controls;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Windows.Printing;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; HelloPrinter&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MainPage : UserControl&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MainPage()&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;             InitializeComponent();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;             PrintDocument printDoc = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; PrintDocument();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;             printDoc.DocumentName = &lt;span style="color:#006080;"&gt;&amp;quot;Hello World from Silverlight&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;             printDoc.PrintPage += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EventHandler&amp;lt;PrintPageEventArgs&amp;gt;(printDoc_PrintPage);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;             printDoc.Print();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; printDoc_PrintPage(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, PrintPageEventArgs e)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;             StackPanel panel = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StackPanel() { Orientation = Orientation.Horizontal };&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;             panel.Children.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TextBlock() { Text = &lt;span style="color:#006080;"&gt;&amp;quot;Hello &amp;quot;&lt;/span&gt;, FontFamily = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.FontFamily(&lt;span style="color:#006080;"&gt;&amp;quot;Arial&amp;quot;&lt;/span&gt;), FontSize = 12 });&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum27" style="color:#606060;"&gt;  27:&lt;/span&gt;             panel.Children.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; TextBlock() { Text = &lt;span style="color:#006080;"&gt;&amp;quot;World&amp;quot;&lt;/span&gt;, FontFamily = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Media.FontFamily(&lt;span style="color:#006080;"&gt;&amp;quot;Arial&amp;quot;&lt;/span&gt;), FontSize = 12 });&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum28" style="color:#606060;"&gt;  28:&lt;/span&gt;             e.PageVisual = panel;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum29" style="color:#606060;"&gt;  29:&lt;/span&gt;             e.HasMorePages = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum30" style="color:#606060;"&gt;  30:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum31" style="color:#606060;"&gt;  31:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum32" style="color:#606060;"&gt;  32:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Line 15 is the eventhandler that gets called when the button is pressed. What stands out is the fact that the visual you want to print, doesn&amp;rsquo;t have to be part of the visual tree that Silverlight renders to the screen. Another thing to consider is that Silverlight automatically stretches the RootVisual to the height and width of the page. You can check this size by reading the PrintableArea property of the incoming PrintPageEventArgs object. You can override this behavior by setting the height and width properties of the RootVisual explicitly. &lt;/p&gt;
&lt;h4&gt;Printing in Flex 4&lt;/h4&gt;
&lt;p&gt;Printing has been in Flex since the first version. Just like in Silverlight it has a couple of steps to follow, but the programming model is quite different. Printing in Flex is not event driven, this are the steps to take in Flex:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a FlexPrintJob object, you can compare this more or less with Silverlight&amp;rsquo;s PrintDocument class. &lt;/li&gt;
&lt;li&gt;Specify with a boolean whether you want to print in vector graphics or in bitmap graphics. Bitmap supports transparency, vector not but prints in higher quality. &lt;/li&gt;
&lt;li&gt;Call the FlexPrintJob&amp;rsquo;s start() method. This will show the print dialog and returns true if the user clicked ok. If the start() method returned true, the printer is now waiting for us to send it some pages. &lt;/li&gt;
&lt;li&gt;Create a visual object you like to print. &lt;/li&gt;
&lt;li&gt;Add the visual object to the display list. &lt;/li&gt;
&lt;li&gt;Add the object to the job using FlexPrintJob&amp;rsquo;s addObject() method. Every visual object is another page, except when a visual object is larger than one page, Flex automatically detects this and prints the object on multiple pages. &lt;/li&gt;
&lt;li&gt;When you&amp;rsquo;re done adding pages / visual objects, call the send() method of the FlexPrintJob class. &lt;/li&gt;
&lt;li&gt;Remove the visual objects you added to the display list just for printing. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of these steps are shown in the code behind of a Flex application that prints &amp;ldquo;Hello World&amp;rdquo; when a button is pressed:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; button1_clickHandler(&lt;span style="color:#0000ff;"&gt;event&lt;/span&gt;:MouseEvent):&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt;             {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; job : FlexPrintJob = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; FlexPrintJob();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;                 job.printAsBitmap = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;                 &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;(job.start()) {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;                     &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; group : HGroup = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HGroup();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;                     group.height = job.pageHeight;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;                     group.width = job.pageWidth;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;                     &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; text : SimpleText = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SimpleText();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;                     text.text = &lt;span style="color:#006080;"&gt;&amp;quot;Hello &amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;                     text.setStyle(&lt;span style="color:#006080;"&gt;&amp;quot;fontFamily&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;Arial&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;                     text.setStyle(&lt;span style="color:#006080;"&gt;&amp;quot;fontSize&amp;quot;&lt;/span&gt;,12);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;                     group.addElement(text);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;                     text = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SimpleText();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;                     text.setStyle(&lt;span style="color:#006080;"&gt;&amp;quot;fontFamily&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;Arial&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;                     text.setStyle(&lt;span style="color:#006080;"&gt;&amp;quot;fontSize&amp;quot;&lt;/span&gt;,12);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;                     text.text = &lt;span style="color:#006080;"&gt;&amp;quot;World&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;                     group.addElement(text);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;                     &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;                     addElement(group);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;                 &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;                     job.addObject(group, FlexPrintJobScaleType.NONE);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;                     &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;                     job.send();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;                     removeElement(group);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you look at the code and my explanation above it you can see that Flex printing requires more steps. This is because of the following differences:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In Flex , you can specify how to print, in bitmap mode or in vector mode. &lt;/li&gt;
&lt;li&gt;Flex doesn&amp;rsquo;t automatically scale the visual object to the page size. You can supply a constant defined in the FlexPrintJobScaleType class to specify how Flex should scale when you call the addObject() method, but &amp;ldquo;NONE&amp;rdquo; was the only option that printed anything. To scale the object to the page size I set the width and height of the HGroup to print to the &amp;ldquo;pageHeight&amp;rdquo; and &amp;ldquo;pageWidth&amp;rdquo; properties of the FlexPrintJob class. &lt;/li&gt;
&lt;li&gt;Components in Flex are only printed if they are part of the display list. Don&amp;rsquo;t worry, in the example above you don&amp;rsquo;t see the HGroup popping up and disappearing during the print. If you remove the visual object from the display list after printing, nobody will notice. &lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;I think the printing in Flex is somewhat more mature than the printing in Silverlight, I like the option of the higher quality vector printing in Flex and that Flex automatically spreads large visual objects across multiple pages, instead of just cutting them off, like Silverlight does. Also, in Flex there is more support for printing than shown above, for example a lot of components have a prepareToPrint() method, which they can override to make themselves look better when printed, for example, by removing scrollbars (they have no use on paper :)), you can also customize how components print themselves by subclassing the component and overriding this method. Finally, there are components especially designed for printing, a PrintDataGrid for example, which makes sure that only whole rows are printed on each page. What I do like in Silverlight is the whole programming model, it feels more intuitive to me. Just for comparison, below are images showing the quality of the prints when printed to a .XPS file. The Flex printing with Vector graphics clearly has the best quality.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="400" cellpadding="2" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Flex printing:&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_18F268E8.png"&gt;&lt;img height="36" width="244" src="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_thumb_5F00_764E2A6C.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;td width="200" valign="top"&gt;Silverlight printing:&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_04207068.png"&gt;&lt;img height="41" width="244" src="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_thumb_5F00_7D0133EF.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;Flex Vector printing:&lt;a href="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_23CF4A30.png"&gt;&lt;img height="39" width="244" src="http://blogs.infosupport.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/alexb/image_5F00_thumb_5F00_55C6EABA.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;td width="200" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=161957" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+4/default.aspx">Flex 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+4/default.aspx">Silverlight 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Printing/default.aspx">Printing</category></item><item><title>Configuring MEF with Linq To Xml Part 2: Making MEF recomposition on the fly when the file is edited</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/21/configuring-mef-with-linq-to-xml-part-2-making-mef-recomposition-on-the-fly-when-the-file-is-edited.aspx</link><pubDate>Thu, 21 Jan 2010 10:52:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:161884</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=161884</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=161884</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/21/configuring-mef-with-linq-to-xml-part-2-making-mef-recomposition-on-the-fly-when-the-file-is-edited.aspx#comments</comments><description>&lt;p&gt;In this post I&amp;rsquo;m going to show how you can make use of MEF&amp;rsquo;s recomposition features to recomposition on the fly when the content of the configuration XML file in which the exports are defined, is changed.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2010/01/21/configuring-mef-with-linq-to-xml-part-2-making-mef-recomposition-on-the-fly-when-the-file-is-edited.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=161884" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/.Net+4.0/default.aspx">.Net 4.0</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/LINQ+To+XML/default.aspx">LINQ To XML</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+4/default.aspx">Silverlight 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/FileSystemWatcher/default.aspx">FileSystemWatcher</category></item><item><title>.Net 4.0: Configuring MEF with Linq to Xml</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/15/net-40-configuring-mef-with-linq-to-xml.aspx</link><pubDate>Fri, 15 Jan 2010 10:08:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:161015</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=161015</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=161015</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2010/01/15/net-40-configuring-mef-with-linq-to-xml.aspx#comments</comments><description>&lt;p&gt;A much heard criticism of MEF is that the&amp;nbsp;exports are configured with attributes, so if the exports need to be changed, recompilation of the application is required. In this post I&amp;#39;ll show how to extend MEF using Linq to XML in such a way, that the exports can be configured in an external configuration file and the application no longer needs to be recompiled when the exports change.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2010/01/15/net-40-configuring-mef-with-linq-to-xml.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=161015" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/.Net+4.0/default.aspx">.Net 4.0</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/LINQ+To+XML/default.aspx">LINQ To XML</category></item><item><title>Silverlight 3: Loading Merged Resource Dictionaries runtime</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2009/11/10/Silverlight-3_3A00_-Loading-Merged-Resource-Dictionaries-runtime.aspx</link><pubDate>Tue, 10 Nov 2009 08:14:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:36393</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=36393</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=36393</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2009/11/10/Silverlight-3_3A00_-Loading-Merged-Resource-Dictionaries-runtime.aspx#comments</comments><description>&lt;p&gt;In this post&amp;nbsp;we&amp;#39;re going to see how to keep your Merged&amp;nbsp;Resource Dictionaries out of your Silverlight&amp;#39;s .XAP file and loading them runtime. This way you can customize the look of your application without recompiling your Silverlight application. Refreshing the browser is enough to see the changes to your user interface.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2009/11/10/Silverlight-3_3A00_-Loading-Merged-Resource-Dictionaries-runtime.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=36393" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Customize/default.aspx">Customize</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/ResourceDictionary/default.aspx">ResourceDictionary</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Styles/default.aspx">Styles</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Merged+Resource+Dictionary/default.aspx">Merged Resource Dictionary</category></item><item><title>Silverlight 3: Securing your WCF service with a custom username / password authentication mechanism</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2009/10/02/silverlight-3-securing-your-wcf-service-with-a-custom-username-and-password-authentication-mechanism.aspx</link><pubDate>Fri, 02 Oct 2009 09:18:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:20503</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=20503</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=20503</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2009/10/02/silverlight-3-securing-your-wcf-service-with-a-custom-username-and-password-authentication-mechanism.aspx#comments</comments><description>&lt;p&gt;In this blog post I&amp;#39;m going to take advantage of new Silverlight 3 features, to secure my WCF service with a custom username / password&amp;nbsp; authentication mechanism.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2009/10/02/silverlight-3-securing-your-wcf-service-with-a-custom-username-and-password-authentication-mechanism.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=20503" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Username/default.aspx">Username</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Password/default.aspx">Password</category></item><item><title>A complete Silverlight 3 Drag and Drop solution, inspired by Flex' DragManager</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2009/09/07/A-complete-Silverlight-3-drag-and-drop-solution.aspx</link><pubDate>Mon, 07 Sep 2009 13:20:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:19403</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=19403</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=19403</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2009/09/07/A-complete-Silverlight-3-drag-and-drop-solution.aspx#comments</comments><description>&lt;p&gt;This post shows you how you can create a complete working drag and drop solution in Silverlight 3. This solution works in every Panel and from anywhere in the application.&amp;nbsp;This solution&amp;nbsp;is inspired by Flex&amp;#39; DragManager class.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2009/09/07/A-complete-Silverlight-3-drag-and-drop-solution.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=19403" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex/default.aspx">Flex</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/.Net/default.aspx">.Net</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/WritableBitmap/default.aspx">WritableBitmap</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Adobe+Flex/default.aspx">Adobe Flex</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Drag+and+Drop/default.aspx">Drag and Drop</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Drop/default.aspx">Drop</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Drag/default.aspx">Drag</category></item><item><title>Connecting Adobe Flex with Flash Builder 4's Data Centric Development features to a .Net service based backend</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2009/08/20/integrating-adobe-flex-and-flash-builder-4-with-a-net-backend.aspx</link><pubDate>Thu, 20 Aug 2009 06:35:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16689</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=16689</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=16689</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2009/08/20/integrating-adobe-flex-and-flash-builder-4-with-a-net-backend.aspx#comments</comments><description>&lt;p&gt;In this article I will show how you can use Adobe Flex and&amp;nbsp;Flash Builder 4&amp;#39;s new Data Centric Development features to connect to a service based back-end.&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2009/08/20/integrating-adobe-flex-and-flash-builder-4-with-a-net-backend.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16689" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex/default.aspx">Flex</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/.Net/default.aspx">.Net</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Adobe/default.aspx">Adobe</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flash+Builder/default.aspx">Flash Builder</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Data+Centric+Development/default.aspx">Data Centric Development</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+Builder/default.aspx">Flex Builder</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Flex+4/default.aspx">Flex 4</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Webservices/default.aspx">Webservices</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/DCD/default.aspx">DCD</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Gumbo/default.aspx">Gumbo</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Adobe+Flex/default.aspx">Adobe Flex</category></item><item><title>Silverlight 3 new features, pitfalls and oddities</title><link>http://blogs.infosupport.com/blogs/alexb/archive/2009/08/18/silverlight-3-new-features-pitfalls-and-oddities.aspx</link><pubDate>Tue, 18 Aug 2009 06:23:00 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16675</guid><dc:creator>Alex van Beek</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/rsscomments.aspx?PostID=16675</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.infosupport.com/blogs/alexb/commentapi.aspx?PostID=16675</wfw:comment><comments>http://blogs.infosupport.com/blogs/alexb/archive/2009/08/18/silverlight-3-new-features-pitfalls-and-oddities.aspx#comments</comments><description>&lt;p&gt;Some oddities and pitfalls of Silverlight 3 features&lt;/p&gt;...(&lt;a href="http://blogs.infosupport.com/blogs/alexb/archive/2009/08/18/silverlight-3-new-features-pitfalls-and-oddities.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16675" width="1" height="1"&gt;</description><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/WritableBitmap/default.aspx">WritableBitmap</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/SaveFileDialog/default.aspx">SaveFileDialog</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Application+Library+Caching/default.aspx">Application Library Caching</category><category domain="http://blogs.infosupport.com/blogs/alexb/archive/tags/Navigation+Framework/default.aspx">Navigation Framework</category></item></channel></rss>