<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Luddite Developer</title>
	<atom:link href="http://theludditedeveloper.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://theludditedeveloper.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 24 Oct 2011 17:25:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='theludditedeveloper.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/edc68fff5cf5fb7b39baefc91b43c641?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>The Luddite Developer</title>
		<link>http://theludditedeveloper.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://theludditedeveloper.wordpress.com/osd.xml" title="The Luddite Developer" />
	<atom:link rel='hub' href='http://theludditedeveloper.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Innovative Approach to Overcome Unit Test Failures</title>
		<link>http://theludditedeveloper.wordpress.com/2011/01/25/innovative-approach-to-overcome-unit-test-failures/</link>
		<comments>http://theludditedeveloper.wordpress.com/2011/01/25/innovative-approach-to-overcome-unit-test-failures/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 16:01:30 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=255</guid>
		<description><![CDATA[Nowadays, software productivity seems to take an important place in the software development process. More and more software development groups starting to understand the importance of delivering the product to the market as fast as they can. Many of them are using methodologies and productivity tools to speed up the process.  One of the major [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=255&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="text-align:left;">Nowadays, software productivity seems to take an important place in the software development process. More and more software development groups starting to understand the importance of delivering the product to the market as fast as they can. Many of them are using methodologies and productivity tools to speed up the process.</div>
<p style="text-align:left;"> One of the major obstacles in getting to the delivery date ready, is the time you waste when automatic tests start to fail. You usually can&#8217;t predict when it will happen, and how long would it take for your team to fix it. This makes it hard to estimate how much time you need in order to complete developing a certain feature.</p>
<p>Much more frustrating is the exhausting process a developer needs to go through in order to fix something which used to work just several days ago. If you have no clue of the latest changes which caused your unit test to fail, you would normally start a debug session in order to find the problem. Some developers might check the source control system and review the latest changes, trying to guess the latest change set that caused the failure, then run the unit test with and without the change, in order to conclude whether it is the one to blame. In both cases, the developer usually spends several hours until finding the source of the problem.</p>
<p>Developers that suffer from the problem mentioned above may be interested in the following <a href="http://www.wisetester.com/">Unit Testing Tool</a> which helps developers to overcome unit test failures, and thus save valuable development time.</p>
<div id="attachment_256" class="wp-caption aligncenter" style="width: 515px"><a href="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester1.jpg"><img class="size-full wp-image-256" title="wisetester1" src="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester1.jpg?w=505&#038;h=114" alt="WiseTester" width="505" height="114" /></a><p class="wp-caption-text">WiseTester</p></div>
<p>WiseTester helps .NET teams to overcome unit test failures by providing <strong>IDE-Based Unit Test Analysis</strong> and <strong>Source Control Based Unit Test Analysis</strong>. When a certain unit test fails, either on the developer&#8217;s machine or on the build server, WiseTester can find the exact code changes that caused the failure, saving the time of debugging the code in order to find the problem.</p>
<p>The ideology of the WiseTester is that when a developer gets a notification that one of his unit tests failed, the notification should come together with the exact code changes which caused the failure, before he even starts any debugging.</p>
<p>The IDE-Based Unit Test Analysis is based on information collected from the Visual Studio during the development sessions, and can point the problematic code changes which caused a certain failure up to the code line resolution. In the following screenshot we can see a problematic code change which caused a certain unit test to fail, and was detected by the WiseTester among all the other code changes made in the same development session.</p>
<div class="mceTemp mceIEcenter">
<div id="attachment_257" class="wp-caption aligncenter" style="width: 610px"><img class="size-large wp-image-257" title="wisetester2" src="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester2.jpg?w=600&#038;h=353" alt="WiseTester detected the exact code line which caused the failure" width="600" height="353" /><p class="wp-caption-text">WiseTester detected the exact code line which caused the failure</p></div>
</div>
<p> The Source Control Based Unit Test Analysis is based on information coming from the Source Control system, and can point the change set which caused a certain failure, even if it had been committed by another  team member. The following screenshot displays a Unit Test Analysis result which found the developer responsible for breaking the unit test.</p>
<div id="attachment_258" class="wp-caption aligncenter" style="width: 413px"><a href="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester3.jpg"><img class="size-full wp-image-258" title="wisetester3" src="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester3.jpg?w=403&#038;h=219" alt="WiseTester detected the change set which broke the unit test" width="403" height="219" /></a><p class="wp-caption-text">WiseTester detected the change set which broke the unit test</p></div>
<p>Developers usually think about whether the added value of a certain solution is worth the time needed to integrate this solution into the development environment. WiseTester takes that into account, providing a quick setup and a one step integration. No code changes nor migrations are required in order to integrate the solution.</p>
<div id="attachment_259" class="wp-caption aligncenter" style="width: 610px"><img class="size-large wp-image-259" title="wisetester4" src="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester4.jpg?w=600&#038;h=383" alt="One Step to Add a Solution to the Watchlist" width="600" height="383" /><p class="wp-caption-text">One Step to Add a Solution to the Watchlist</p></div>
<p>Thanks go to Lior Peleg for writing this article for the TheLudditeDeveloper blog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/255/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=255&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2011/01/25/innovative-approach-to-overcome-unit-test-failures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester1.jpg" medium="image">
			<media:title type="html">wisetester1</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester2.jpg?w=600" medium="image">
			<media:title type="html">wisetester2</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester3.jpg" medium="image">
			<media:title type="html">wisetester3</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2011/01/wisetester4.jpg?w=600" medium="image">
			<media:title type="html">wisetester4</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight Navigation Project (VS2008) &#8211; Question</title>
		<link>http://theludditedeveloper.wordpress.com/2010/07/30/silverlight-navigation-project-vs2008-question/</link>
		<comments>http://theludditedeveloper.wordpress.com/2010/07/30/silverlight-navigation-project-vs2008-question/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 15:29:13 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=245</guid>
		<description><![CDATA[I have created a minimal project to illustrate the problem. I am using VS2008 SP1 and Silverlight 3. I created a Silverlight Navigation Project, Added a Product Model, A SingleProductView, and a ProductViewModel. I added 2 new Pages Review.xaml and Cart.xaml. Review.xaml uses the SingleProductView to display the product details and an [add to cart] [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=245&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_246" class="wp-caption aligncenter" style="width: 711px"><a href="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0157.jpg"><img class="size-full wp-image-246" title="Silverlight-Navigation-Project" src="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0157.jpg?w=701&#038;h=282" alt="Silverlight-Navigation-Project" width="701" height="282" /></a><br />
<p class="wp-caption-text">Silverlight-Navigation-Project</p></div>
<p><a href="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0158.jpg"><img class="alignleft size-full wp-image-251" title="SNAG-0158" src="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0158.jpg?w=239&#038;h=390" alt="" width="239" height="390" /></a><br />
I have created a minimal project to illustrate the problem. I am using VS2008 SP1 and Silverlight 3.</p>
<p>I created a Silverlight Navigation Project, Added a Product Model, A SingleProductView, and a ProductViewModel.</p>
<p>I added 2 new Pages Review.xaml and Cart.xaml.</p>
<p>Review.xaml uses the SingleProductView to display the product details and an [add to cart] button which when clicked should add the product to the Shopping Cart and then navigate to the Cart.xaml page.</p>
<p>The problem I have is in the SingleViewModel.</p>
<p>The SingleViewModel contains a button (btnAddToCart), which should add the product details to the cart (will be a database populated using a web service call) and then it should navigate to the Cart Page (Cart.xaml)</p>
<div style="width:100%;height:400px;overflow:auto;">
<pre><code>
&lt;UserControl x:Class="SL3NavTest01.SingleProductView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    xmlns:local="clr-namespace:SL3NavTest01"
    xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
    d:DesignWidth="950" d:DesignHeight="800"&gt;
    &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
        &lt;StackPanel Orientation="Horizontal" VerticalAlignment="Top"&gt;
            &lt;Image   Source="/SL3NavTest01;Component/Assets/Images/VS2010Ultimate.jpg" Stretch="None" Height="200" Width="200"
											HorizontalAlignment="Center" VerticalAlignment="Center"/&gt;
            &lt;StackPanel Margin="20,0,0,0"&gt;
                &lt;TextBlock Text="{Binding Name, Mode=TwoWay}" TextWrapping="Wrap" Margin="0,30,40,0"
									FontFamily="Verdana" FontSize="18" Foreground="Black" FontWeight="Bold" /&gt;
                &lt;StackPanel Orientation="Horizontal" Margin="0,30,0,0"&gt;
                    &lt;TextBlock Text="Price: " FontFamily="Verdana" FontSize="16"
										Foreground="Black" FontWeight="Normal" /&gt;
                    &lt;TextBlock Text="{Binding Price, Mode=TwoWay}"
										FontFamily="Verdana" FontSize="16" Foreground="Black" FontWeight="Normal" /&gt;
                &lt;/StackPanel&gt;
                    &lt;Button x:Name="btnAddToCart" Width="75" Margin="0,30,0,0" Content="Add To Cart"
                     Click="btnAddToCart_Click"/&gt;
            &lt;/StackPanel&gt;
        &lt;/StackPanel&gt;
    &lt;/Grid&gt;
&lt;/UserControl&gt;

</code></pre>
</div>
<div style="width:100%;height:400px;overflow:auto;">
<pre><code>
Imports System.Windows.Browser
Partial Public Class SingleProductView
    Inherits UserControl

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub btnAddToCart_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        '
        '   The project has been simplified so as to only include the structure and context of where the
        '   problem exists.
        '
        '
        '   On clicking this button the code should:
        '
        '   1.  Add Product to Shopping Cart (via Web Service)
        '   2.  Then navigate to the Shopping Cart Page (\views\Cart.xaml)
        '
        '
        '   Code to add product to shopping cart (I can do this part!)
        '   ----------------------------------------------------------
        '
        '
        '
        '   Code to navigate to Cart.xaml (This is the problem!!!)
        '   ------------------------------------------------------
        '
        '
        '
        '   I can't find a syntax that would do the equivalent of the following:
        '   ContentFrame.Navigate(New Uri("/Cart", UriKind.Relative))
        '
        '   This is my solution:
        '   I know the view is used on the "Review" page and I want to navigate to the "Cart" page.
        '   Also required Imports System.Windows.Browser
        '
        Dim strNav As String = HtmlPage.Document.DocumentUri.ToString
        strNav = Replace(strNav, "Review", "Cart")
        HtmlPage.Window.Navigate(New Uri(strNav, UriKind.Absolute))
        '
        '   It may be that I should use a Hyperlink button, but I am uncertain as to how I would be able
        '   to Add the Product to the Shopping Cart first then Navigate to the Cart.xaml Page.
        '
        '   I realize that this is not stricly MVVM, but I am looking to get the simple solution working
        '   first.
        '
        '   Feel free to provide references to the "correct/best practice" way to do this.
        ''
    End Sub
End Class

</code></pre>
</div>
<p>Found this thread<br />
<a href="http://forums.silverlight.net/forums/t/2684.aspx">http://forums.silverlight.net/forums/t/2684.aspx</a><br />
which has been read 99,870+ times (may suggest the tiniest of gaps in silverlight functionality or documentation).</p>
<p>My solution is as follows:</p>
<p>        Dim strNav As String = HtmlPage.Document.DocumentUri.ToString<br />
        strNav = Replace(strNav, &#8220;Review&#8221;, &#8220;Cart&#8221;)<br />
        HtmlPage.Window.Navigate(New Uri(strNav, UriKind.Absolute))</p>
<p>requires</p>
<p>Imports System.Windows.Browser</p>
<p>I have attached the original simplified project solution zip file so that you can try out various solutions</p>
<p> <a href="http://theludditedeveloper.files.wordpress.com/2010/07/sl3navtest01-zip.doc">SL3NavTest01.zip</a></p>
<p>Download SL3NavTest01.zip.doc and rename to SL3NavTest01.zip and see what you can come up with.</p>
<p>SL3NavTest01TestPage.html should be used as the start page.</p>
<p>The Luddite Developer.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=245&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2010/07/30/silverlight-navigation-project-vs2008-question/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0157.jpg" medium="image">
			<media:title type="html">Silverlight-Navigation-Project</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/snag-0158.jpg" medium="image">
			<media:title type="html">SNAG-0158</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight Security &#8211; Code Obfuscation &#8211; Part Two</title>
		<link>http://theludditedeveloper.wordpress.com/2010/07/22/silverlight-security-code-obfuscation-part-two/</link>
		<comments>http://theludditedeveloper.wordpress.com/2010/07/22/silverlight-security-code-obfuscation-part-two/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 18:59:38 +0000</pubDate>
		<dc:creator>eran</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=218</guid>
		<description><![CDATA[Seems like many .NET developers nowadays are concerned with deploying their apps without applying any form of protection on them beforehand. As mentioned in a previous post silverlight code must be downloaded to the client machine, this makes it possible to recover the original source code using tools such as ILDasm &#38; .NET Reflector. Most of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=218&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Seems like many .NET developers nowadays are concerned with deploying their apps without applying any form of protection on them beforehand.<br />
As mentioned in a previous post silverlight code must be downloaded to the client machine, this makes it possible to recover the original source code using tools such as ILDasm &amp; .NET Reflector.</p>
<p>Most of us, when we think of obfuscating silverlight apps, refer to a form of obfuscation called &#8216;symbol renaming&#8217; which means changing the names of classes, methods &amp; variables to meaningless names. The result is a much harder code to read, that makes it more difficult for someone to follow the semantic meaning of the internal structures included in the obfuscated assembly.</p>
<p>This doesn&#8217;t come without a price, often due to usage of reflection API either directly by the programmer who wrote the assembly or indirectly by the .NET class library relying on reflection API (e.g. xml serialization, web services) the code would break.<br />
In addition symbol renaming makes it more difficult to understand exception stack trace information collected from production environments as original method names are no longer available. The image below demonstrates how an exception stack trace may look like:</p>
<p><img class="alignnone size-full wp-image-235" title="callstack" src="http://theludditedeveloper.files.wordpress.com/2010/07/callstack1.jpg?w=530&#038;h=92" alt="Obfuscated call stack" width="530" height="92" /></p>
<p>Developers searching for non-invasive solutions, one that doesn&#8217;t suffer from the flaws mentioned above may be interested to look at <a title="CliSecure .NET Obfuscator" href="http://www.secureteam.net" target="_blank">CliSecure .NET Obfuscator</a>, this is a code protection solution that offers new forms of obfuscation that are effective, easy to configure and integrate with your existing silverlight apps or others still under development  (support for windows phone 7 included).</p>
<p><a href="http://www.secureteam.net"><img title="secureteam_logo2" src="http://theludditedeveloper.files.wordpress.com/2010/07/secureteam_logo2.gif?w=268&#038;h=109" alt="CliSecure .NET Obfuscator site" width="268" height="109" /></a></p>
<p>On top of symbol renaming CliSecure .NET obfuscator introduces advanced forms of control flow obfuscation and a new obfuscation technique called &#8216;method call obfuscation&#8217;.</p>
<p>Control flow obfuscation aims to destroy existing code patterns and transforms them to different ones that are much harder to follow, the image below shows how a simple for loop would look like after using this method.</p>
<p><img title="ControlFlowObfuscationImage" src="http://theludditedeveloper.files.wordpress.com/2010/07/controlflowobfuscationimage.jpg?w=545&#038;h=167" alt="Control flow obfuscation demonstrated" width="545" height="167" /></p>
<p>Even more interesting is to see the IL representation of the method as shown in .NET reflector, it appears that .NET reflector fails translating the byte code to C# or any other .NET language:</p>
<p><img class="alignnone size-full wp-image-228" title="ControlFlowObfuscationImageIL" src="http://theludditedeveloper.files.wordpress.com/2010/07/controlflowobfuscationimageil.jpg?w=513&#038;h=884" alt="" width="513" height="884" /></p>
<p>Method call obfuscation hides calls to external library calls, either ones that reference the .NET class library or ones that reference other assemblies developed internally. External calls normally survive symbol renaming as method binding occurs during run time using the method name, however using this method binding is attempted using the method token, an internal token stored within the metadata section that can be used to resolve methods calls.</p>
<p><img class="alignnone size-full wp-image-229" title="MethodCallObfuscationImage" src="http://theludditedeveloper.files.wordpress.com/2010/07/methodcallobfuscationimage.jpg?w=407&#038;h=203" alt="Method call obfuscation code snippet" width="407" height="203" /></p>
<p>As seen in the image below the call to Console.WriteLine is replaced with a call to a delegate method that hides the original call. This method effectively breaks the application code flow, making it harder to browse through the code flow using standard reflection tools.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=218&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2010/07/22/silverlight-security-code-obfuscation-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d1d6561c48134da94aa2d3c0718467b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">erandr</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/callstack1.jpg" medium="image">
			<media:title type="html">callstack</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/secureteam_logo2.gif" medium="image">
			<media:title type="html">secureteam_logo2</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/controlflowobfuscationimage.jpg" medium="image">
			<media:title type="html">ControlFlowObfuscationImage</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/controlflowobfuscationimageil.jpg" medium="image">
			<media:title type="html">ControlFlowObfuscationImageIL</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/07/methodcallobfuscationimage.jpg" medium="image">
			<media:title type="html">MethodCallObfuscationImage</media:title>
		</media:content>
	</item>
		<item>
		<title>Which versions of Silverlight 3 components do I need for VS2008 SP1 and VS2010?</title>
		<link>http://theludditedeveloper.wordpress.com/2010/04/28/which-versions-of-silverlight-3-components-do-i-need-for-vs2008-sp1-and-vs2010/</link>
		<comments>http://theludditedeveloper.wordpress.com/2010/04/28/which-versions-of-silverlight-3-components-do-i-need-for-vs2008-sp1-and-vs2010/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 20:34:33 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=205</guid>
		<description><![CDATA[Running on a XP SP3 system. I want to keep developing applications using VS2008 SP1, Expression Studio 3 and Silverlight 3.  I don’t want to break anything. I would like to download and start using VS2010 again without breaking anything. I noticed the following installation issue regarding VS2010 and Silverlight 3 SDK. http://blogs.msdn.com/amyd/archive/2009/10/21/visual-studio-2010-and-silverlight-3-sdk.aspx Visual Web [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=205&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_206" class="wp-caption aligncenter" style="width: 460px"><a href="http://theludditedeveloper.files.wordpress.com/2010/04/snag-0139.jpg"><img class="size-full wp-image-206" title="Which Versions of Silverlight 3 Components are required for VS2010" src="http://theludditedeveloper.files.wordpress.com/2010/04/snag-0139.jpg?w=450&#038;h=100" alt="Which Versions of Silverlight 3 Components are required for VS2010" width="450" height="100" /></a><p class="wp-caption-text">Which Versions of Silverlight 3 Components are required for VS2010</p></div>
<p>Running on a XP SP3 system.</p>
<p>I want to keep developing applications using VS2008 SP1, Expression Studio 3 and Silverlight 3.  I don’t want to break anything.</p>
<p>I would like to download and start using VS2010 again without breaking anything.</p>
<p>I noticed the following installation issue regarding VS2010 and Silverlight 3 SDK.</p>
<p><a href="http://blogs.msdn.com/amyd/archive/2009/10/21/visual-studio-2010-and-silverlight-3-sdk.aspx">http://blogs.msdn.com/amyd/archive/2009/10/21/visual-studio-2010-and-silverlight-3-sdk.aspx</a></p>
<p>Visual Web Developer in Visual Studio 2010 has support in box for Silverlight 3 development and includes the Silverlight 3 developer runtime and <a href="http://go2.microsoft.com/fwlink/?LinkID=157102">Silverlight 3 SDK</a> build 3.0.40818.</p>
<p>Silverlight 3 Tools for Visual Studio 2008 and Expression Blend 3 included SDK build 3.0.40624.</p>
<p>Silverlight 3 SDK build 3.0.40818 cannot be installed on machine where build 3.0.40624 is already installed. If you install Visual Studio 2010 on a machine that already has build 3.0.40624 installed, Visual Studio 2010 will indicate that the Silverlight 3 SDK failed to install, however you will still be able to do Silverlight development on Visual Studio 2010 with build 3.0.40624.</p>
<p>Silverlight 3 SDK build 3.0.40818 contains the following updates:</p>
<ul>
<li>Remove dependency on .NET 3.5 and allow build when only .NET 4 is installed</li>
<li>Support for use of non-unicode characters in xap name</li>
<li>Improvements to refactoring and intellisense</li>
</ul>
<p>To get build 3.0.40818of the Silverlight 3 SDK, uninstall Silverlight 3 SDK build 3.0.40624 from Add/Remove Programs and then install Silverlight 3 SDK build 3.0.40818 from: <a href="http://go2.microsoft.com/fwlink/?LinkID=157102">http://go2.microsoft.com/fwlink/?LinkID=157102</a>.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>I checked my own system using the Add/Remove Programs utility and found the following:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="483" valign="top">Currently Installed Program</td>
<td width="133" valign="top">Version</td>
</tr>
<tr>
<td width="483" valign="top">Microsoft Silverlight</td>
<td width="133" valign="top">3.0.50106.0</td>
</tr>
<tr>
<td width="483" valign="top">Microsoft Silverlight 2 SDK</td>
<td width="133" valign="top">2.0.31005.0</td>
</tr>
<tr>
<td width="483" valign="top">Microsoft Silverlight 3 SDK</td>
<td width="133" valign="top">3.0.40624.0</td>
</tr>
<tr>
<td width="483" valign="top">Microsoft Silverlight 3 Toolkit – July 2009</td>
<td width="133" valign="top">3.0.30702.0037</td>
</tr>
<tr>
<td width="483" valign="top">Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1 –ENU</td>
<td width="133" valign="top">9.0.30730.126</td>
</tr>
</tbody>
</table>
<p>I found that I can get the following Downloads:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="234" valign="top">Download</td>
<td width="382" valign="top">URL</td>
</tr>
<tr>
<td width="234" valign="top">Microsoft Silverlight 3 Toolkit – Nov 2009</td>
<td width="382" valign="top">http://silverlight.codeplex.com/releases/view/36060</td>
</tr>
<tr>
<td width="234" valign="top">Microsoft Silverlight 3 SDK version 3.0.40818</td>
<td width="382" valign="top">http://www.microsoft.com/downloads/details.aspx?FamilyID=1ea49236-0de7-41b1-81c8-a126ff39975b&amp;displaylang=en</td>
</tr>
<tr>
<td width="234" valign="top">Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1 –ENU</td>
<td width="382" valign="top">http://www.microsoft.com/downloads/details.aspx?familyid=9442B0F2-7465-417A-88F3-5E7B5409E9DD&amp;displaylang=en</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Questions</p>
<ol>
<li>I do not develop for Silverlight 2, can this be safely uninstalled?</li>
<li>In what order do I need to remove installed programs/versions and in what order do I need to install new versions?</li>
<li>If I uninstall the Silverlight 3 Toolkit – July 2009, will this break existing applications using this toolkit?</li>
<li>Can the Silverlight 3 Toolkit – July 2009 and Silverlight 3 Toolkit – Nov 2009 be safely installed side by side?</li>
<li>Is there a general rule for what can and cannot be installed side by side with the various Silverlight components?</li>
<li>I already have the current version for Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1 –ENU installed.  Will it need to be re-installed?</li>
</ol>
<p>Thanks in advance for any replies.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=205&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2010/04/28/which-versions-of-silverlight-3-components-do-i-need-for-vs2008-sp1-and-vs2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2010/04/snag-0139.jpg" medium="image">
			<media:title type="html">Which Versions of Silverlight 3 Components are required for VS2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Scott Hanselman and Daniel Crenna (aka Dimebrain) advise NBC that all they need for Monday Night Football is a Vado or a Flip Mino</title>
		<link>http://theludditedeveloper.wordpress.com/2009/10/15/scott-hanselman-and-dimebrain-advise-nbc-that-all-they-need-for-monday-night-football-is-a-vado-or-a-flip-mino/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/10/15/scott-hanselman-and-dimebrain-advise-nbc-that-all-they-need-for-monday-night-football-is-a-vado-or-a-flip-mino/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 14:37:27 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[Daniel Crenna]]></category>
		<category><![CDATA[Dimebrain]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Flip Mino HD]]></category>
		<category><![CDATA[iPlayer]]></category>
		<category><![CDATA[Monday Night Football]]></category>
		<category><![CDATA[NBC]]></category>
		<category><![CDATA[Scott Hanselman]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Sony Vegas Movie Studio]]></category>
		<category><![CDATA[Vado HD]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=193</guid>
		<description><![CDATA[OK this is just a bit of fun as I respect the work that these guys do and the information they put out there for we poor mortals. I have been traveling around the country over the summer taking videos of my son at his various track meets.  I created a website and decided to add a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=193&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><em>OK this is just a bit of fun as I respect the work that these guys do and the information they put out there for we poor mortals.</em></p>
<p style="text-align:center;"><a rel="attachment wp-att-194" href="http://theludditedeveloper.wordpress.com/2009/10/15/scott-hanselman-and-dimebrain-advise-nbc-that-all-they-need-for-monday-night-football-is-a-vado-or-a-flip-mino/snag-0095/"><img class="aligncenter size-full wp-image-194" title="Scott Hanselman Vado" src="http://theludditedeveloper.files.wordpress.com/2009/10/snag-0095.jpg?w=282&#038;h=85" alt="Scott Hanselman Vado" width="282" height="85" /></a></p>
<p style="text-align:center;"><a rel="attachment wp-att-195" href="http://theludditedeveloper.wordpress.com/2009/10/15/scott-hanselman-and-dimebrain-advise-nbc-that-all-they-need-for-monday-night-football-is-a-vado-or-a-flip-mino/snag-0096/"><img class="aligncenter size-full wp-image-195" title="Dimebrain-Flip" src="http://theludditedeveloper.files.wordpress.com/2009/10/snag-0096.jpg?w=294&#038;h=92" alt="Dimebrain-Flip" width="294" height="92" /></a></p>
<p>I have been traveling around the country over the summer taking videos of my son at his various track meets.  I created a website and decided to add a <a href="http://www.gmantaylor.com/VideoGallerySL3.aspx" target="_blank">video gallery</a> using silverlight.  The intention was to provide a similer experience as provided by the BBC iPlayer.  In particular, I wanted viewers to be able to view the videos in Full Screen mode with one click.  I use a Panasonic SDR-S15 Camcorder, <a href="http://www.amazon.com/gp/product/B001CPHTAQ?ie=UTF8&amp;tag=ratingsworld-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001CPHTAQ" target="_blank">Sony Vegas Movie Studio</a> to edit and <a href="http://www.amazon.com/gp/product/B002H3GES0?ie=UTF8&amp;tag=ratingsworld-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002H3GES0" target="_self">Expression 3</a> to Encode at 1Mb/s.</p>
<p>Iam sure that the <a href="http://www.amazon.com/gp/product/B001LK8P14?ie=UTF8&amp;tag=ratingsworld-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001LK8P14" target="_blank">Vado HD</a> and the <a href="http://www.amazon.com/gp/product/B001HSOFI2?ie=UTF8&amp;tag=ratingsworld-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001HSOFI2" target="_blank">Flip Mino HD</a> perform really well in the environments used by both Scott and Daniel, but it really is a matter of horses for courses.</p>
<p>The Panasonic is a great little camera, lightweight, SDHC memory, and most importantly for me 10 x optical zoom.  When editing these videos and encoding them for the web one very quickly realises that if you do not have the desired quality on the original then you are not going to get the desired results on the end product.  If you check the <a href="http://www.gmantaylor.com/VideoGallerySL3.aspx" target="_blank">Video Gallery</a> then you will notice that the movies get better over time as I learn more.  Most importantly, use a tripod for these high zoom shots.</p>
<p>My next camera will definitely be HD and I will look to get better than 10 x zoom.  I am afraid that I can envisage an $1100 camera (UK prices really suck by the way) and I am absolutely certain that NBC will be paying a lot more than $1100 for the cameras that they use for Monday Night Football.</p>
<p>My point is, do not let Scott and Daniel talk you out of getting the camera you need.  If you need a Smith &amp; Wesson 45, the most powerful hand camcorder ever made then make your day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=193&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/10/15/scott-hanselman-and-dimebrain-advise-nbc-that-all-they-need-for-monday-night-football-is-a-vado-or-a-flip-mino/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/10/snag-0095.jpg" medium="image">
			<media:title type="html">Scott Hanselman Vado</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/10/snag-0096.jpg" medium="image">
			<media:title type="html">Dimebrain-Flip</media:title>
		</media:content>
	</item>
		<item>
		<title>Silverlight, WCF, Security And Things You Might Not Know</title>
		<link>http://theludditedeveloper.wordpress.com/2009/10/09/silverlight-wcf-security-and-things-you-might-not-know/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/10/09/silverlight-wcf-security-and-things-you-might-not-know/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 11:33:16 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[obfuscation]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=189</guid>
		<description><![CDATA[On 24-Jul-2009, I wrote an article entitled Where are the guides to Security Best Practices in Silverlight? , and followed this up with an article entitled Silverlight Security – Part One – Code Obfuscation.  Since then of I have been keeping an eye open for any new articles that tackled this very important subject. Today, I found an article [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=189&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-190" href="http://theludditedeveloper.wordpress.com/2009/10/09/silverlight-wcf-security-and-things-you-might-not-know/silverlight-security-wcf/"><img class="aligncenter size-full wp-image-190" title="Silverlight-Security-WCF" src="http://theludditedeveloper.files.wordpress.com/2009/10/silverlight-security-wcf.jpg?w=400&#038;h=297" alt="Silverlight-Security-WCF" width="400" height="297" /></a></p>
<p>On 24-Jul-2009, I wrote an article entitled <a title="Permanent Link: Where are the guides to Security Best Practices in Silverlight?" rel="bookmark" href="http://theludditedeveloper.wordpress.com/2009/07/24/where-are-the-guides-to-security-best-practices-in-silverlight/">Where are the guides to Security Best Practices in Silverlight?</a> , and followed this up with an article entitled <a title="Permanent Link: Silverlight Security – Part One – Code Obfuscation" rel="bookmark" href="http://theludditedeveloper.wordpress.com/2009/07/26/silverlight-security-part-one-code-obfuscation/">Silverlight Security – Part One – Code Obfuscation</a>.  Since then of I have been keeping an eye open for any new articles that tackled this very important subject.</p>
<p>Today, I found an article by Robbe Morris over at eggheadcafe.com entitled <a href="http://www.eggheadcafe.com/tutorials/aspnet/eb009559-8467-4d49-a882-f6ac833492d5/silverlight-wcf-securit.aspx" target="_blank">Silverlight, WCF, Security And Things You Might Not Know</a>.</p>
<p>This article covers many of the security steps that you will want to implement in any Silverlight / WCF application.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=189&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/10/09/silverlight-wcf-security-and-things-you-might-not-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/10/silverlight-security-wcf.jpg" medium="image">
			<media:title type="html">Silverlight-Security-WCF</media:title>
		</media:content>
	</item>
		<item>
		<title>Have you got lost in the maze of tutorials available for Silverlight and WPF?</title>
		<link>http://theludditedeveloper.wordpress.com/2009/09/28/have-you-got-lost-in-the-maze-of-tutorials-available-for-siverlight-and-wpf/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/09/28/have-you-got-lost-in-the-maze-of-tutorials-available-for-siverlight-and-wpf/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:24:23 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Evernote]]></category>
		<category><![CDATA[Jesse Liberty]]></category>
		<category><![CDATA[Scott Guthrie]]></category>
		<category><![CDATA[Scott Hanselman]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tim Heuer]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=181</guid>
		<description><![CDATA[  I was looking for a tool that would allow me to organize links to all the articles that I have read. I would like to add notes about each of the articles to tell me what important feature or technique is being explained. The notes would also tell me where to find the projects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=181&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_182" class="wp-caption aligncenter" style="width: 410px"><a rel="attachment wp-att-182" href="http://theludditedeveloper.wordpress.com/2009/09/28/have-you-got-lost-in-the-maze-of-tutorials-available-for-siverlight-and-wpf/silverlight-confusion/"><img class="size-full wp-image-182" title="Silverlight-Confusion" src="http://theludditedeveloper.files.wordpress.com/2009/09/silverlight-confusion.jpg?w=400&#038;h=266" alt="Silverlight Confusion" width="400" height="266" /></a><p class="wp-caption-text">Silverlight Confusion</p></div>
<p> </p>
<p>I was looking for a tool that would allow me to organize links to all the articles that I have read.</p>
<p>I would like to add notes about each of the articles to tell me what important feature or technique is being explained. The notes would also tell me where to find the projects I installed or implemented on my own development systems.</p>
<p>I would also like to be able to index the articles by tags and categories and order the articles, videos, or tutorials in a way that will help me learn the subject in detail without missing anything out. Maybe something like a learning tree.</p>
<p>So for instance in Silverlight, you may have:</p>
<p>Silverlight Tutorial Part 1 (of 8): Creating &#8220;Hello World&#8221; with Silverlight 2 and VS 2008 by Scott Guthrie, <a href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx" target="_blank">here</a>.</p>
<p>Find on my computer here:<br />
C:\Documents and Settings\Luddite\My Documents\Visual Studio 2008\Projects\Silverlight\MSDiggSample_VB</p>
<p>Jesse Liberty has started Project Turing,<a href="http://blogs.silverlight.net/blogs/jesseliberty/archive/2009/09/06/project-turing-beginning-ria-services.aspx" target="_blank"> here</a>.</p>
<p>This project uses RIA Services which is currently in beta, I will want to come back to this when RIA Services has been officially released.</p>
<p>Brad Abrams has a series on BusinessApps for Silverlight 3 RTM and .NET RIA Services (and now Azure), <a href="http://blogs.msdn.com/brada/archive/2009/08/02/business-apps-example-for-silverlight-3-rtm-and-net-ria-services-july-update-summary.aspx" target="_blank">here</a>.</p>
<p>The articles are numerous and varied and some way of keeping things up to date, allowing you to replace articles that have become obsolete, or replace articles which you have found to do a better job.</p>
<p>Can anyone recommend a good product that would help with this.</p>
<p>Scot Hanselman recommends Evernote, not for this, but I was wondering if something like Evernote would fit the bill&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=181&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/09/28/have-you-got-lost-in-the-maze-of-tutorials-available-for-siverlight-and-wpf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/09/silverlight-confusion.jpg" medium="image">
			<media:title type="html">Silverlight-Confusion</media:title>
		</media:content>
	</item>
		<item>
		<title>UK Developers are being overcharged by 67% for Microsoft Expression Studio 3</title>
		<link>http://theludditedeveloper.wordpress.com/2009/08/14/uk-developers-are-being-overcharged-by-67-for-microsoft-expression-studio-3/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/08/14/uk-developers-are-being-overcharged-by-67-for-microsoft-expression-studio-3/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 15:22:44 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Expression 3]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Overcharging]]></category>
		<category><![CDATA[UK Developers]]></category>
		<category><![CDATA[Upgrade Offer]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=176</guid>
		<description><![CDATA[In a previous post, I mentioned that  the Microsoft Upgrade offer for Expression Studio 3 was available to those who held a license for Visual Studio 2005 or later.  In the US that means the Upgrade is available for $349 and the full product is available for $599. Both prices exclude tax. If you live [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=176&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_177" class="wp-caption aligncenter" style="width: 410px"><a rel="attachment wp-att-177" href="http://theludditedeveloper.wordpress.com/2009/08/14/uk-developers-are-being-overcharged-by-67-for-microsoft-expression-studio-3/expression3ukprice/"><img class="size-full wp-image-177" title="Expression3UKPrice" src="http://theludditedeveloper.files.wordpress.com/2009/08/expression3ukprice.jpg?w=400&#038;h=250" alt="UK Developers are being overcharged by 67% for Expression Studio 3" width="400" height="250" /></a><p class="wp-caption-text">UK Developers are being overcharged by 67% for Expression Studio 3</p></div>
<p>In a previous post, I mentioned that  the Microsoft Upgrade offer for Expression Studio 3 was available to those who held a license for Visual Studio 2005 or later.  In the US that means the Upgrade is available for $349 and the full product is available for $599. Both prices exclude tax.</p>
<p>If you live in the UK (or anywhere in the EC) you will almost certainly be overcharged to the tune of <strong>67%</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="243" valign="top">The UK Price is</td>
<td width="66" valign="top">
<p align="right">£394.61</p>
</td>
</tr>
<tr>
<td width="243" valign="top">This excludes VAT of</td>
<td width="66" valign="top">
<p align="right">£51.47</p>
</td>
</tr>
<tr>
<td width="243" valign="top">Price Excluding Tax (VAT) is</td>
<td width="66" valign="top">
<p align="right">£343.14</p>
</td>
</tr>
<tr>
<td width="243" valign="top">Exchange Rate is £1 = $1.70</td>
<td width="66" valign="top">
<p align="right"> </p>
</td>
</tr>
<tr>
<td width="243" valign="top">Dollar Price (Excl Tax) in UK is</td>
<td width="66" valign="top">
<p align="right">$583.34</p>
</td>
</tr>
<tr>
<td width="243" valign="top">Dollar Price in US is</td>
<td width="66" valign="top">
<p align="right">$349.00</p>
</td>
</tr>
<tr>
<td width="243" valign="top">UK developers are being overcharged</td>
<td width="66" valign="top">
<p align="right">67%</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<div id="attachment_160" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.microsoft.com/expression/products/Upgrade.aspx"><img class="size-full wp-image-160" title="ExpressionUpgradeOffer" src="http://theludditedeveloper.files.wordpress.com/2009/08/expressionupgradeoffer.jpg?w=400&#038;h=300" alt="Expression 3 Upgrade Offer for Visual Studio Developers" width="400" height="300" /></a><p class="wp-caption-text">Expression 3 Upgrade Offer for Visual Studio Developers</p></div>
<p> </p>
<p>Click on the image above, or click <a href="http://www.microsoft.com/expression/products/Upgrade.aspx" target="_self">here</a> to verify the situation for yourself.</p>
<p>This is the type of situation that the UK government and the EU parliament should be addressing.  Users do not need or even want IE unbundled from the Windows operating system.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=176&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/08/14/uk-developers-are-being-overcharged-by-67-for-microsoft-expression-studio-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/08/expression3ukprice.jpg" medium="image">
			<media:title type="html">Expression3UKPrice</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/08/expressionupgradeoffer.jpg" medium="image">
			<media:title type="html">ExpressionUpgradeOffer</media:title>
		</media:content>
	</item>
		<item>
		<title>Using the Background Worker Process for Long Running Processes in WPF and Silverlight</title>
		<link>http://theludditedeveloper.wordpress.com/2009/08/10/using-the-background-worker-process-for-long-running-processes-in-wpf-and-silverlight/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/08/10/using-the-background-worker-process-for-long-running-processes-in-wpf-and-silverlight/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 12:47:00 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Background Worker]]></category>
		<category><![CDATA[DoWork]]></category>
		<category><![CDATA[Long Running Processes]]></category>
		<category><![CDATA[ProgressChanged]]></category>
		<category><![CDATA[RunWorkerCompleted]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[thread]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=164</guid>
		<description><![CDATA[In a previous article WPF DataBinding using Visual Basic (VB.NET), a problem was encountered when trying to keep the User Interface active during Long Running Processes as a result of a button click.  Either the whole system would hang until the process was completed or the program would crash. This hang-up is due to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=164&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_165" class="wp-caption aligncenter" style="width: 455px"><a rel="attachment wp-att-165" href="http://theludditedeveloper.wordpress.com/2009/08/10/using-the-background-worker-process-for-long-running-processes-in-wpf-and-silverlight/snag-0074/"><img class="size-full wp-image-165" title="SNAG-0074" src="http://theludditedeveloper.files.wordpress.com/2009/08/snag-0074.jpg?w=445&#038;h=274" alt="Using the Background Worker Process for Long Running Processes in WPF and Silverlight" width="445" height="274" /></a><p class="wp-caption-text">Using the Background Worker Process for Long Running Processes in WPF and Silverlight</p></div>
<p>In a previous article <a href="http://theludditedeveloper.wordpress.com/2009/06/16/wpf-databinding-using-visual-basic-vb-net/" target="_self">WPF DataBinding using Visual Basic (VB.NET)</a>, a problem was encountered when trying to keep the User Interface active during Long Running Processes as a result of a button click.  Either the whole system would hang until the process was completed or the program would crash.</p>
<p>This hang-up is due to the fact that both the Long Running Process and the UI are using the same thread.  The solution is to run the Long Running Process in a separate thread.  The BackgroundWorker component, gives you the ability to execute Long Running Processes in the background asynchronously, on a separate thread from the application&#8217;s main UI thread.</p>
<p>I have just started a project which is going to have quite a few of these Long Running Processes and so what I need is a simple implementation of the Background Worker  process which I can expand as required.</p>
<p>The implementation consists of a WPF page with a start button, a cancel button and three labels to let the user know what is happening before, during and after the Long Running Process has been started by the start button.</p>
<div style="width:100%;height:400px;overflow:auto;">
<pre><code>
&lt;Page x:Class="BackGroundWorkerExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="BackGroundWorkerExample"
    x:Name="BackGroundWorkerExample"  WindowTitle="WPF Luddite Test Bed: Background Worker Example" Width="1024" Height="768"&gt;
    &lt;StackPanel&gt;
        &lt;Button x:Name="btnStartBackgroundProcess" Width="300" Height="30" Margin="0 20 0 0"
            Content="Start Background Process"&gt;
        &lt;/Button&gt;
        &lt;Label x:Name="lblStartedCompleted" Content="" Width="500" Height="30" Margin="0 20 0 0"&gt;
        &lt;/Label&gt;
        &lt;Label x:Name="lblCounter" Content="" Width="500" Height="30" Margin="0 20 0 0"&gt;
        &lt;/Label&gt;
        &lt;Label x:Name="lblPercentCompleted" Content="" Width="500" Height="30" Margin="0 20 0 0"&gt;
        &lt;/Label&gt;
        &lt;Button x:Name="btnCancelBackgroundProcess" Width="300" Height="30" Margin="0 20 0 0"
            Content="Cancel Background Process" IsEnabled="False"&gt;
        &lt;/Button&gt;

    &lt;/StackPanel&gt;
&lt;/Page&gt;

</code></pre>
</div>
<p>The following steps will be required in the code behind:</p>
<p>1.  Define a new BackgroundWorker, create an instance and do some setup.</p>
<p>2. Define the LongRunningProcess &#8211; must not reference the User Interface (UI).</p>
<p>3. Define a subroutine to handle the BackgroundWorker DoWork event.</p>
<p>4. Define a subroutine to handle the BackgroundWorker ProgressChanged event.</p>
<p>5. Define a subroutine to handle the BackgroundWorker RunWorkerCompleted event.</p>
<p>6. Define a subroutine to handle the event caused by the Start button being clicked.</p>
<p>7. Define a subroutine to handle the event caused by the Cancel button being clicked.</p>
<div style="width:100%;height:400px;overflow:auto;">
<pre><code>
Imports System.ComponentModel

Partial Public Class BackGroundWorkerExample

    '
    '   Define a new backgroung worker.
    '
    Private WithEvents bw As New BackgroundWorker()
    '
    ' Create new instance of BackGroundWorker and do some setup
    '
    Public Sub New()

        InitializeComponent()

        bw.WorkerSupportsCancellation = True
        bw.WorkerReportsProgress = True

    End Sub

    Private Function LongRunningProcess() As String
        '
        '   The LongRunngProcess should NOT refer to any UI objects.
        '
        Dim iteration As Integer = CInt(100000000 / 100)
        Dim cnt As Long = 0

        For i As Long = 0 To 100000000
            '
            '   Bring the LongRunningProcess to an orderly termination if the Cancel button is clicked.
            '   - see further comments in routine that handles the btnCancelBackgroundProcess_Click event.
            '
            If bw.CancellationPending Then
                Return ""
            End If

            cnt = cnt + 1

            '
            '   Report Progress:
            '   When you need the background operation to report on its progress,
            '   you can call the ReportProgress method to raise the ProgressChanged event.
            '   The ReportProgress Method permits up to 2 parameters (ProgressChangedEventArgs):
            '       Paramater 1. Is of type Integer and is defined as "percentProgress"
            '       Paremeter 2. Is of type Object and is defined as "userState"
            '       I see no reason why you can't return any information you want as long as you conform to the
            '       parameter types integer and object.
            '
            '   In a simple example like this, if the ReportProgress method was called for every iteration of i
            '   then the system would probably hang the user interface and run out of memory. Therefore, in this instance, we
            '   only report back on every 10,000 iterations.
            '
            If (i Mod 10000 = 0) _
                And (bw IsNot Nothing) _
                AndAlso bw.WorkerReportsProgress Then
                '
                '   Call ReportProgress
                '
                bw.ReportProgress(i \ iteration, cnt)
            End If

        Next

        Return cnt.ToString()

    End Function

    Private Sub backgroundWorker_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
        '
        ' call long running process and get result
        '
        e.Result = Me.LongRunningProcess()
        '
        ' Cancel if cancel button was clicked.
        '
        If bw.CancellationPending Then
            e.Cancel = True ' This sets the Cancelled property of the RunWorkerCompletedEventArgs
            Return
        End If

    End Sub

    Private Sub backgroundWorker_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bw.ProgressChanged
        '
        '   Use the ProgressChanged Sub to give user feedback via the UI.
        '
        ' Update UI with values contained in ProgressChangedEventArgs e.ProgressPercentage and e.UserState.
        '
        Me.lblPercentCompleted.Content = CStr(e.ProgressPercentage) &amp; "% Completed."
        lblCounter.Content = CStr(e.UserState)
        ''
    End Sub

    Private Sub backgroundWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles bw.RunWorkerCompleted
        '
        ' Back on primary thread, can access ui controls
        '
        If e.Cancelled Then
            Me.lblStartedCompleted.Content = "Process Cancelled."
        Else
            Me.lblStartedCompleted.Content = "Background Process Completed. "
        End If
        '
        Me.btnStartBackgroundProcess.IsEnabled = True
        Me.btnCancelBackgroundProcess.IsEnabled = False
        ''
    End Sub

    Private Sub btnStartBackgroundProcess_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnStartBackgroundProcess.Click
        '
        lblStartedCompleted.Content = "Background Process Started..."
        Me.btnStartBackgroundProcess.IsEnabled = False
        Me.btnCancelBackgroundProcess.IsEnabled = True
        '
        ' Calls DoWork on secondary thread
        '
        bw.RunWorkerAsync()
        '
        ' RunWorkerAsync returns immediately.
        ''
    End Sub

    Private Sub btnCancelBackgroundProcess_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnCancelBackgroundProcess.Click
        '
        '   There are several points to note when cancelling a process:
        '
        '   1. The WorkerSupportsCancellation property must have been initialised to true.
        '
        '   2. The CancelAsync method does not immediately cancel the process, but instead sets the
        '      CancellationPending property to True.  It is the therefore important that the LongRunningProcess
        '      periodically checks the CancellationPending property and if True the process should be
        '      terminated in an orderly manner.
        '
        '   3. The CancellationPending property of the background worker process should also be checked by the
        '      routine handling the DoWork method after the LongRunningProcess has completed.
        '      If the CancellationPending Property is true then the DoWork routine should set Cancel
        '      property of the DoWorkEventArgs to True.
        '      CancelAsync() method.  This should be checked by the routine which is handling the RunWorkerCompleted
        '      event.
        '
        '   4. It is good practice to ensure theat the Cancel button is only enabled when the LongRunningProcess
        '      is actually running.  Therefore the button should be disabled by default, only enabled when the
        '      process is started, and disable again when the process is completed or cancelled.
        '
        bw.CancelAsync()
        '
        btnCancelBackgroundProcess.IsEnabled = False
        '
    End Sub

End Class

</code></pre>
</div>
<p>Hope this helps.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=164&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/08/10/using-the-background-worker-process-for-long-running-processes-in-wpf-and-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/08/snag-0074.jpg" medium="image">
			<media:title type="html">SNAG-0074</media:title>
		</media:content>
	</item>
		<item>
		<title>Expression 3 Upgrade Offer for Visual Studio Silverlight and WPF Developers</title>
		<link>http://theludditedeveloper.wordpress.com/2009/08/07/expression-3-upgrade-offer-for-visual-studio-silverlight-and-wpf-developers/</link>
		<comments>http://theludditedeveloper.wordpress.com/2009/08/07/expression-3-upgrade-offer-for-visual-studio-silverlight-and-wpf-developers/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 15:00:11 +0000</pubDate>
		<dc:creator>theludditedeveloper</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Encoder]]></category>
		<category><![CDATA[Expression 3]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Sketchflow]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://theludditedeveloper.wordpress.com/?p=161</guid>
		<description><![CDATA[Like many small development shops and one man/woman software entrepreneurs, I have a limited budget for development tools.  Currently the best value option for me is the  Visual Studio Professional with MSDN Professional subscription. However, this does not give me access to any of the expression products, which would be very useful for Silverlight and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=161&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_160" class="wp-caption aligncenter" style="width: 410px"><a rel="attachment wp-att-160" href="http://theludditedeveloper.wordpress.com/2009/08/07/expression-3-upgrade-offer-for-visual-studio-silverlight-and-wpf-developers/expressionupgradeoffer/"><img class="size-full wp-image-160" title="ExpressionUpgradeOffer" src="http://theludditedeveloper.files.wordpress.com/2009/08/expressionupgradeoffer.jpg?w=400&#038;h=300" alt="Expression 3 Upgrade Offer for Visual Studio Developers" width="400" height="300" /></a><p class="wp-caption-text">Expression 3 Upgrade Offer for Visual Studio Developers</p></div>
<p>Like many small development shops and one man/woman software entrepreneurs, I have a limited budget for development tools.  Currently the best value option for me is the  Visual Studio Professional with MSDN Professional subscription. However, this does not give me access to any of the expression products, which would be very useful for Silverlight and WPF projects.</p>
<p>I am particularly interested in using Expression Blend for design work; Sketchflow for customer demo&#8217;s and specs; and Expression Encoder for encoding videos for my Silverlight web pages.</p>
<p>The great news is that you can take advantage of the <a href="http://www.microsoft.com/expression/products/Upgrade.aspx" target="_blank">Expression 3 Upgrade Offer</a> if you own a licensed copy of Visual Studio 2005 or later.  The upgrade price offers developers a considerable saving on the full price alternative.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/theludditedeveloper.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/theludditedeveloper.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/theludditedeveloper.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=theludditedeveloper.wordpress.com&amp;blog=5364900&amp;post=161&amp;subd=theludditedeveloper&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://theludditedeveloper.wordpress.com/2009/08/07/expression-3-upgrade-offer-for-visual-studio-silverlight-and-wpf-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3210bc50fead6100e589eca6921eb2c5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">theludditedeveloper</media:title>
		</media:content>

		<media:content url="http://theludditedeveloper.files.wordpress.com/2009/08/expressionupgradeoffer.jpg" medium="image">
			<media:title type="html">ExpressionUpgradeOffer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
