<?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>Mehran Nikoo&#039;s Notes</title>
	<atom:link href="http://mnikoo.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://mnikoo.net</link>
	<description>on ALM, Architecture and .NET Framework</description>
	<lastBuildDate>Sat, 02 Jul 2011 23:43:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mnikoo.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/fd71feef04bc1aad57980903153983d8?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Mehran Nikoo&#039;s Notes</title>
		<link>http://mnikoo.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mnikoo.net/osd.xml" title="Mehran Nikoo&#039;s Notes" />
	<atom:link rel='hub' href='http://mnikoo.net/?pushpress=hub'/>
		<item>
		<title>Rx is now an official and supported product</title>
		<link>http://mnikoo.net/2011/06/29/rx-is-now-an-official-and-supported-product/</link>
		<comments>http://mnikoo.net/2011/06/29/rx-is-now-an-official-and-supported-product/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 23:11:00 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[rx]]></category>
		<category><![CDATA[reactive extensions]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/2011/06/29/rx-is-now-an-official-and-supported-product/</guid>
		<description><![CDATA[Head over to Channel9 to read more about the official release. The setup package (available here) contains the components for .NET 3.5 SP1, .NET 4, Silverlight 4 and Windows Phone 7.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1140&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Head over to <a href="http://channel9.msdn.com/Blogs/Charles/Announcing-the-Official-Release-of-Rx">Channel9</a> to read more about the official release. The setup package (available <a href="http://www.microsoft.com/download/en/details.aspx?id=26224">here</a>) contains the components for .NET 3.5 SP1, .NET 4, Silverlight 4 and Windows Phone 7.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/1140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/1140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/1140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1140&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2011/06/29/rx-is-now-an-official-and-supported-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Ix Operators</title>
		<link>http://mnikoo.net/2011/06/12/ix-operators/</link>
		<comments>http://mnikoo.net/2011/06/12/ix-operators/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 22:27:00 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[interactive extensions]]></category>
		<category><![CDATA[ix]]></category>
		<category><![CDATA[linq]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=1055</guid>
		<description><![CDATA[[Updated on 02 Jul 11 after the Rx official release: Renamed Run to ForEach] [If you don’t know what Ix (Interactive Extensions for .NET) is, then I recommend reading my earlier post.] There are very good resources (like this video) on Ix operators so I am not going to spend too much time on this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1055&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>[Updated on 02 Jul 11 after the Rx official release: </strong>Renamed Run to ForEach<strong>]</strong></p>
<p>[If you don’t know what Ix (Interactive Extensions for .NET) is, then I recommend reading my <a href="http://mnikoo.net/2011/06/06/interactive-extensions-for-net-or-ix/">earlier post</a>.]</p>
<p>There are very good resources (like <a href="http://channel9.msdn.com/Shows/Going+Deep/Jeffrey-Van-Gogh-and-Bart-De-Smet-Inside-SystemInteractive">this video</a>) on Ix operators so I am not going to spend too much time on this but I am going to talk about a few of these operators (my top three) to show how the interactive extensions can make your code easier to write and read.</p>
<p>I will use unit tests to express the functionality I am expecting and will then provide potential solutions without using Ix, and finally showing how Ix would simplify the implementation.</p>
<p>For the code snippets, assume that all methods (excluding the test methods) live in a static class named <font face="Consolas">MyEnumerableScrathPad</font>.</p>
<h4>EnumerableEx.Return</h4>
<p>You have an object of type T and want an enumerable sequence of T, which includes that object only.</p>
<h6>Test</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">[</font><span><font color="#2b91af">TestMethod</font></span><font color="#000000">]</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span></font><font face="Consolas"><font color="#000000"> ReturnTest()</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span></font><font face="Consolas"><font color="#000000"> item = new </font></font><span><font face="Consolas"><font color="#2b91af">object</font></font></span><font face="Consolas"><font color="#000000">();</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> returnedItem = </font><span><font color="#2b91af">MyEnumerableScratchPad</font></span></font><font face="Consolas"><font color="#000000">.Return(item).Single();</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">Assert</font></span><font color="#000000">.AreSame(item, returnedItem);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;">&nbsp;</pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"></pre>
<h6>Legacy implementation</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">IEnumerable</font></span></font><font face="Consolas"><font color="#000000">&lt;T&gt; Return&lt;T&gt;(T item)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">return</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">new</font></span><font color="#000000"> T[] { item };</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font color="#000000" face="Consolas"></font>&nbsp;</pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"></pre>
<h6>Using Ix</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">IEnumerable</font></span></font><font face="Consolas"><font color="#000000">&lt;T&gt; Return&lt;T&gt;(T item)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">return</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">EnumerableEx</font></span><font color="#000000">.Return(item);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<p><span style="font-family:consolas;"><span style="color:#000000;"></span></span>&nbsp;</p>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"></pre>
<h4>EnumerableEx.StartWith</h4>
<p>You have an enumerable sequence of T and you want to add an instance of type T to the beginning of that sequence.</p>
<h6>Test</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">[</font><span><font color="#2b91af">TestMethod</font></span><font color="#000000">]</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span></font><font face="Consolas"><font color="#000000"> StartWithTest()</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> count = 10</font></font><font face="Consolas"><font color="#000000">;</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span></font><font face="Consolas"><font color="#000000"> zero = 0;</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> originalRange = </font><span><font color="#2b91af">Enumerable</font></span></font><font face="Consolas"><font color="#000000">.Range(1, count);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> newRange =&nbsp; </font><span><font color="#2b91af">MyEnumerableScratchPad</font></span></font><font face="Consolas"><font color="#000000">.StartWith(originalRange, zero);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">Assert</font></span></font><font face="Consolas"><font color="#000000">.AreEqual(zero, newRange.First());</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">Assert</font></span><font color="#000000">.AreEqual(</font><font color="#000000">count + 1, newRange.Count());</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font color="#000000" face="Consolas"></font>&nbsp;</pre>
<h6></h6>
<h6>Legacy implementation #1</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T&gt; StartWith&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span></font><font face="Consolas"><font color="#000000">&lt;T&gt; originalSequence, </font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">  T first)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span></font><font face="Consolas"><font color="#000000"> list = originalSequence.ToList();</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; list.Insert(0, first);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">return</font></span><font color="#000000"> list.AsEnumerable();</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<p><span style="font-size:x-small;"><font size="2">This will make the test pass but this implementation may force you to iterate through the items unnecessarily because of the call to <font face="Consolas">ToList</font>. We were also lucky that this implementation passed the test. If you change the value of count from 10 to <font face="Consolas">int.MaxValue</font> &#8211; 1, the test will horribly fail with an <font face="Consolas">OutOfMemoryException</font>. So the idea of converting the enumerable to a list is not a good one.</font></span></p>
<h6><span style="font-size:x-small;"><font size="2"></font></span></h6>
<h6>&nbsp;</h6>
<h6>Legacy implementation #2</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T&gt; StartWith&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span></font><font face="Consolas"><font color="#000000">&lt;T&gt; originalSequence, </font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">  T first)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">yield</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">return</font></span></font><font face="Consolas"><font color="#000000"> first;</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">foreach</font></span><font color="#000000"> (</font><span><font color="#0000ff">var</font></span><font color="#000000"> item </font><span><font color="#0000ff">in</font></span></font><font face="Consolas"><font color="#000000"> originalSequence)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">yield</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">return</font></span><font color="#000000"> item;</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<p>This implementation does not suffer from the problem shown above and passes the test after a fairly long delay (around 10 seconds on my laptop), which is expected as a result of the call to <font face="Consolas">Count</font>, which will iterate through the sequence and one can argue that this is not a good test but it fits the purpose here.</p>
<h5></h5>
<h6>&nbsp;</h6>
<h6>Using Ix</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T&gt; StartWith&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span></font><font face="Consolas"><font color="#000000">&lt;T&gt; originalSequence, </font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">T first)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">return</font></span><font color="#000000"> originalSequence.<strong>StartWith</strong>(first);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<p>Ix also has another overload for <font face="Consolas">StartWith</font>, which takes a param array of items to be inserted at the beginning of the sequence, which can be handy.</p>
<p>&nbsp;</p>
<h4>EnumerableEx.ForEach</h4>
<p>You have an enumerable sequence and you want to perform an action for each item of the sequence.</p>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">[</font><span><font color="#2b91af">TestMethod</font></span><font color="#000000">]</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span></font><font face="Consolas"><font color="#000000"> ForEachTest()</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> list = </font><span><font color="#0000ff">new</font></span><font color="#000000">&nbsp;</font><span><font color="#2b91af">List</font></span><font color="#000000">&lt;</font><span><font color="#0000ff">int</font></span></font><font face="Consolas"><font color="#000000">&gt;();</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">var</font></span><font color="#000000"> range = </font><span><font color="#2b91af">Enumerable</font></span></font><font face="Consolas"><font color="#000000">.Range(1, 10);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">MyEnumerableScratchPad</font></span></font><font face="Consolas"><font color="#000000">.ForEach(range, list.Add);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">CollectionAssert</font></span><font color="#000000">.AreEqual(range.ToList(), list);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<h6>&nbsp;</h6>
<h6>Legacy implementation #1</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span><font color="#000000"> ForEach&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T</font><font color="#000000">&gt; sequence, </font><span><font color="#2b91af">Action</font></span><font color="#000000">&lt;T</font></font><font face="Consolas"><font color="#000000">&gt; action)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{&nbsp;&nbsp;&nbsp; </font><span><font color="#0000ff">foreach</font></span><font color="#000000"> (</font><span><font color="#0000ff">var</font></span><font color="#000000"> item </font><span><font color="#0000ff">in</font></span><font color="#000000"> sequence)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; {</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; action(item);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; }</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Segoe UI">Clearly this is a valid solution but we are looking for a more compact solution.</font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Segoe UI"></font>&nbsp;</pre>
<h6>Legacy implementation #2</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span><font color="#000000"> ForEach&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T</font><font color="#000000">&gt; sequence, </font><span><font color="#2b91af">Action</font></span><font color="#000000">&lt;T</font></font><font face="Consolas"><font color="#000000">&gt; action)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; </font><span><font color="#2b91af">Array</font></span><font color="#000000">.ForEach(sequence.ToArray(), action);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font color="#000000" face="Consolas"></font>&nbsp;</pre>
<h6>Legacy implementation #3</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span><font color="#000000"> ForEach&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T</font><font color="#000000">&gt; sequence, </font><span><font color="#2b91af">Action</font></span><font color="#000000">&lt;T</font><font color="#000000">&gt; action)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; sequence.ToList().ForEach(action);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<p>&nbsp;</p>
<p>Implementations #2 and #3 are not ideal as they both force the enumeration of the sequence before the iterating through the items begins. This is not necessarily a problem but there are some cases where you want to perform the action as soon as the sequence yields a new value.</p>
<h6>&nbsp;</h6>
<h6>Using Ix</h6>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><span><font color="#0000ff">public</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">static</font></span><font color="#000000">&nbsp;</font><span><font color="#0000ff">void</font></span><font color="#000000"> ForEach&lt;T&gt;(</font><span><font color="#2b91af">IEnumerable</font></span><font color="#000000">&lt;T&gt; sequence, </font><span><font color="#2b91af">Action</font></span><font color="#000000">&lt;T&gt; action)</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">{</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">&nbsp;&nbsp;&nbsp; sequence.<strong>ForEach</strong>(action);</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font face="Consolas"><font color="#000000">}</font></font></pre>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font color="#000000" face="Consolas"></font>&nbsp;</pre>
<p>Because most of the Ix operators including <font face="Consolas">ForEach </font>are ported back from the Rx world, there are some interesting additional overloads for <font face="Consolas">ForEach</font>. For example, there is one that takes action of T (the action that needs to be performed on each item) and then another action that will be performed when the iteration over the sequence is completed.</p>
<pre style="line-height:normal;background:white;border-style:none;padding:0;"><font color="#000000" face="Consolas"></font>&nbsp;</pre>
<p>These three operators (<font face="Consolas">Return</font>, <font face="Consolas">StartWith</font> and <font face="Consolas">ForEach</font>) are among the simplest of the long list of Ix operators but nonetheless they are the ones I use most as they make code more concise and easier to read.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/1055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/1055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/1055/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1055&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2011/06/12/ix-operators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Interactive Extensions for .NET or &quot;Ix&quot;</title>
		<link>http://mnikoo.net/2011/06/06/interactive-extensions-for-net-or-ix/</link>
		<comments>http://mnikoo.net/2011/06/06/interactive-extensions-for-net-or-ix/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 21:04:48 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[rx]]></category>
		<category><![CDATA[ix]]></category>
		<category><![CDATA[reactive extensions]]></category>
		<category><![CDATA[interactive extensions]]></category>
		<category><![CDATA[system.reactive]]></category>
		<category><![CDATA[system.interactive]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=1000</guid>
		<description><![CDATA[[Updated on 02 Jul 11 after the Rx official release] I have to start this post with a clarification: “Ix” is not the name of an official product. I am just calling it so to highlight the benefits of this less known part of the Reactive Extensions or “Rx” (which is a real product by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1000&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>[Updated on 02 Jul 11 after the Rx official release]</strong></p>
<p><strike>I have to start this post with a clarification: “<strong>Ix</strong>” is not the name of an official product. I am just calling it so to highlight the benefits of this less known part of the Reactive Extensions or “<strong>Rx</strong>” (which is a </strike><a href="http://msdn.microsoft.com/en-us/data/gg577610"><strike>real product</strike></a><strike> by the way). </strike></p>
<p><font color="#0e38c9">Interactive Extensions used to be part of the Rx library but they can now be downloaded separately. Rx is now officially released and the stable version can be downloaded from </font><a href="http://www.microsoft.com/download/en/details.aspx?id=26649"><font color="#0e38c9">here</font></a><font color="#0e38c9">. Ix is now packaged separately and its experimental release can be downloaded from </font><a href="http://www.microsoft.com/download/en/details.aspx?id=26651"><font color="#0e38c9">here</font></a><font color="#0e38c9">. Both of these components are also available on the main Nuget feed.</font></p>
<p>Even many developers who are using Rx are unaware of this interactive part of the library and I believe it deserves more attention. But let’s start with Rx, just in case you don’t know what it is.</p>
<h5>What is Rx?</h5>
<p>Rx is a library developed by Microsoft, which allows you to write applications that react to events using a nice and clean implementation of the observable pattern. Rx started off as a Microsoft DevLabs incubation project but it proved to be very popular so its incubation period was ended in April 2011 and since then, it has been moved to the MSDN Data Developer Center.</p>
<h5>What is Ix?</h5>
<p>I refer to the interactive part of the Rx product family as “Ix”, which deals with enumerable sequences (<span style="font-family:consolas;">IEnumerable&lt;T&gt;</span>) whereas Rx focuses on the observable sequences (<span style="font-family:consolas;">Observable&lt;T&gt;</span>).</p>
<h5>Enumerable and Observable sequences are duals</h5>
<p>If you have watched <a href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/">Inside the Rx video on Channel9</a> or read <a href="http://bartdesmet.net/blogs/bart/archive/2009/12/25/more-linq-with-system-interactive-getting-started.aspx">Bart De Smet’s blog post</a> on this topic, you already know that enumerable sequences are the duals of the observable sequences. When the Rx team created the operators for the observable sequences, they also back ported some of those operators to the enumerable world and that is how Ix was born.</p>
<h5>Rx and Ix</h5>
<p><strike>The following diagram shows the dependencies between major Rx and Ix components. Note that the reactive extensions come with a few more assemblies (related to async support, client profile and more) which are not displayed here.</strike></p>
<p><strike></strike></p>
<p><a href="http://mnikoo.files.wordpress.com/2011/07/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://mnikoo.files.wordpress.com/2011/07/image_thumb.png?w=240&#038;h=218" width="240" height="218" /></a></p>
<p><strike>So like Rx, Ix takes a dependency on:</strike></p>
<p><strike>- CoreEx: Providing the core functionality such as a selection of helpers for disposable objects, schedulers and concurrent data structures.</strike></p>
<p><strike>- System.Observable: Containing <span style="font-family:consolas;">IObservable&lt;T&gt;</span> and <span style="font-family:consolas;">IObserver&lt;T&gt;</span> interfaces. [Not applicable to .NET 4.0 as it is included in mscorlib 4.0]</strike></p>
<p><font color="#0e38c9">The pre-release versions of the Rx product family consisted of various components such as <font face="Consolas">System.Reactive</font>, <font face="Consolas">System.Interactive</font>, <font face="Consolas">CoreEx</font> and <font face="Consolas">System.Observable</font> (for all runtimes except .NET 4.0). In the official release, the component structure is simplified and there are only two assemblies involved: <font face="Consolas">System.Reactive</font> and <font face="Consolas">System.Interactive</font>. All of the types required by those assemblies are now embedded in so for example, the <font face="Consolas">IObservable</font> and <font face="Consolas">IObserver</font> interfaces for runtimes other than .NET 4 now live inside System.Reactive. Same applies to the disposable and scheduler types.</font></p>
<p>If you are not using Rx family for whatever reason, it is now a good time to do so. I will go as far as saying:</p>
<blockquote><h6>If you are a .NET developer, then you should be using Rx and/or Ix in your projects or you are doing something wrong!</h6>
</blockquote>
<p>You might say I am taking it too far but I insist! If you are using Rx already, then you know what I am talking about. If you aren’t, you will know it when you start using it. Rx targets various platforms and frameworks including .NET (3.5, 4.0 for both client and full profiles), Silverlight (3, 4, 5), Windows Phone, Xbox and Javascript so you can use it in any .NET project.</p>
<h5>How to Get Rx and Ix?</h5>
<p>These extensions can be downloaded by following the links on the <a href="http://msdn.microsoft.com/en-us/data/gg577609">product landing page on MSDN</a>. You can also find a variety of Rx and Ix components <a href="http://www.nuget.org/List/Search?packageType=Packages&amp;searchCategory=All+Categories&amp;searchTerm=rx&amp;sortOrder=package-download-count&amp;pageSize=10">on the official Nuget feed</a>.</p>
<h5>What is in System.Interactive?</h5>
<p>The primary type in Ix is the <span style="font-family:consolas;">EnumerableEx</span> type, which adds a long list of operators (in the form of extension methods) to <span style="font-family:consolas;">IEnumerable&lt;T&gt;</span>, plus a few operators for enumerable sequence of numbers (to support average, min, max, etc).When developers look at the list of operators provided by these extensions, most people ask “Why aren’t these included in .NET Framework anyway?”. I think (and hope) that this is just a matter of time before they make their way into the framework. Once you start using these extensions, you will soon find out that you cannot live without them, especially if you use LINQ frequently.</p>
<p>In the next post, I will briefly go through some of the Ix operators to show how it can help you in writing code that is easier to write and read.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/1000/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/1000/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/1000/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=1000&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2011/06/06/interactive-extensions-for-net-or-ix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>

		<media:content url="http://mnikoo.files.wordpress.com/2011/07/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Future of Silverlight</title>
		<link>http://mnikoo.net/2010/11/12/future-of-silverlight/</link>
		<comments>http://mnikoo.net/2010/11/12/future-of-silverlight/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 08:55:53 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://mnikoo.net/?p=988</guid>
		<description><![CDATA[If you want to know more about the future of Silverlight, then the Silverlight Firestarter event on 2nd December 2010 is the event you want to attend. The event will be held at Microsoft Campus in Redmond but if you can&#8217;t be there, you can watch the live webcast. The registration for the event is now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=988&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you want to know more about the future of Silverlight, then the <a href="http://www.silverlight.net/news/events/firestarter/">Silverlight Firestarter</a> event on 2nd December 2010 is the event you want to attend. The event will be held at Microsoft Campus in Redmond but if you can&#8217;t be there, you can watch the live webcast. The registration for the event is now open (follow the links on the<a href="http://www.silverlight.net/news/events/firestarter/"> landing page</a>).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/988/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/988/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/988/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=988&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/11/12/future-of-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>XMind: Great Mind Mapping Tool</title>
		<link>http://mnikoo.net/2010/07/30/xmind-great-mind-mapping-tool/</link>
		<comments>http://mnikoo.net/2010/07/30/xmind-great-mind-mapping-tool/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 09:49:30 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xmind]]></category>
		<category><![CDATA[mind mapping]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=939</guid>
		<description><![CDATA[I have been looking for a usable and affordable mind mapping tool for a while. I looked at some popular tools in this area but their price tag and licensing policy put me off. For example, Mind Manager costs £233.83 per machine and I use three machines I use regularly. Then I came across XMind, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=939&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been looking for a usable and affordable mind mapping tool for a while. I looked at some popular tools in this area but their price tag and licensing policy put me off. For example, Mind Manager costs £233.83 per machine and I use three machines I use regularly.</p>
<p>Then I came across <a href="http://www.xmind.net/">XMind</a>, which is an open source mind mapping and brainstroming tool. I have been using it for a couple of weeks now and I am very impressed with this product. I am not a mind mapping professional and I am sure more advanced users will find limitations but it does the job for me and many others. You can also upgrade to XMind Pro, which has an annual subscription model and provides <a href="http://www.xmind.net/pro/features/">some additional features</a> like brainstorming support and export to PDF/Word/PowerPoint.</p>
<p>If you are looking for an affordable (or even a free!) mind mapping tool, make sure you <a href="http://www.xmind.net/downloads/">give it a try</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/939/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/939/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/939/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=939&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/07/30/xmind-great-mind-mapping-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessing System.Windows.Application Properties From Other UI Threads</title>
		<link>http://mnikoo.net/2010/07/15/accessing-system-windows-application-properties-from-other-ui-threads/</link>
		<comments>http://mnikoo.net/2010/07/15/accessing-system-windows-application-properties-from-other-ui-threads/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 21:25:50 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=936</guid>
		<description><![CDATA[WPF applications have one dispatcher associated with their main UI thread. The main UI thread is the thread the Application class is instantiated on. When you create a new thread in the application, WPF allows you to create a new dispatcher for that new thread. This enables the windows created on the new thread to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=936&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>WPF applications have one dispatcher associated with their main UI thread. The main UI thread is the thread the <a href="http://msdn.microsoft.com/en-us/library/system.windows.application.aspx">Application</a> class is instantiated on. When you create a new thread in the application, WPF allows you to create a new dispatcher for that new thread. This enables the windows created on the new thread to process the user input and because this is happening on a different thread, the processing of messages doesn’t&#160; impact other windows in the application. This can be very useful if you are developing a responsive application with multiple views. However, you need to understand the impact of having multiple dispatchers on the WPF application model. </p>
<p>Like many UI elements, some of the properties of the Application object can be accessed from the main UI thread only. For example if you try to access the <a href="http://msdn.microsoft.com/en-us/library/system.windows.application.mainwindow.aspx">MainWindow</a> or <a href="http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspx">ShutdownMode</a> properties from any UI thread other than the main one, an InvalidOperationException is raised saying you can only access it from the thread that created it.</p>
<p>The Application object also has a property called <a href="http://msdn.microsoft.com/en-us/library/system.windows.application.windows.aspx">Windows</a>, which is an enumerated list of windows created in the application. As you can expect, if you try to access this property from another thread, you will receive an error. Now what happens if you marshal the call back into the main UI thread by calling <a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.invoke.aspx">Dispatcher.Invoke</a> (or BeginInvoke) or access the property from the main UI thread? It will only include the windows that were created on the main UI thread and it won’t enumerate the windows created on the other threads. If you need a list of all windows in the application, you need to manage this yourself. If your application creates windows on multiple threads, I don’t think creating a plain list of all windows created in the application would be a good idea anyway as you may need to handle interactions with those windows differently.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/936/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/936/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/936/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=936&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/07/15/accessing-system-windows-application-properties-from-other-ui-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft Development Platform Training Resources</title>
		<link>http://mnikoo.net/2010/07/14/microsoft-development-platform-training-resources/</link>
		<comments>http://mnikoo.net/2010/07/14/microsoft-development-platform-training-resources/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 13:56:32 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://mnikoo.net/?p=924</guid>
		<description><![CDATA[This is a link post with links to tutorials, samples and training courses covering the recent releases of Microsoft&#8217;s development platform tools and technologies. Visual Studio 2010 and .NET Framework 4 Training Kit (June 2010) Covers: C# 4 Visual Basic 10 F# Parallel Extensions Windows Communication Foundation Windows Workflow Windows Presentation Foundation ASP.NET 4 Windows [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=924&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a link post with links to tutorials, samples and training courses covering the recent releases of Microsoft&#8217;s development platform tools and technologies.</p>
<p><strong></strong></p>
</p>
<hr />
<p><strong>Visual Studio 2010 and .NET Framework 4 Training Kit (June 2010)</strong></p>
<p>Covers:</p>
<ul>
<li>C# 4 </li>
<li>Visual Basic 10 </li>
<li>F# </li>
<li>Parallel Extensions </li>
<li>Windows Communication Foundation </li>
<li>Windows Workflow </li>
<li>Windows Presentation Foundation </li>
<li>ASP.NET 4 </li>
<li>Windows 7 </li>
<li>Entity Framework </li>
<li>ADO.NET Data Services </li>
<li>Managed Extensibility Framework </li>
<li>Visual Studio Team System </li>
</ul>
<p><a href="http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&amp;displaylang=en">Download Page</a></p>
</p>
<hr />
<p><strong>Identity Developer Training Kit (June 2010)</strong></p>
<p>Covers:</p>
<ul>
<li>Windows Identity Foundation </li>
</ul>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=c3e315fa-94e2-4028-99cb-904369f177c0">Download Page</a></p>
</p>
<hr />
<p><strong>Windows Azure Training Kit (June 2010)</strong></p>
<p>Covers:</p>
<ul>
<li>Windows Azure </li>
<li>SQL Azure </li>
<li>Windows Azure AppFabric Service Bus </li>
<li>Windows Azure AppFabric Access Control Service </li>
<li>Dallas </li>
<li>Access and Identity in the Cloud </li>
<li>Windows Azure Storage </li>
<li>Windows Azure Deployment </li>
</ul>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en">Download Page</a></p>
</p>
<hr />
<p><strong>Windows Server AppFabric Samples (June 2010)</strong></p>
<p>Covers:</p>
<ul>
<li>Windows Server AppFabric Cache </li>
<li>Windows Server AppFabric Hosting </li>
</ul>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=db665003-44c5-4e25-9ce1-c53512f24492">Download Page</a></p>
</p>
<hr />
<p><strong>Silverlight 4 Training (April 2010)</strong></p>
<p>Covers:</p>
<ul>
<li>Silverlight 4 </li>
<li>WCF RIA Services </li>
</ul>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=24cea29e-042e-41c9-aa16-684a0ca5f5db&amp;DisplayLang=en">Download Page</a></p>
</p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/924/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/924/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/924/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=924&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/07/14/microsoft-development-platform-training-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010 RTM Virtual Machine Now Available</title>
		<link>http://mnikoo.net/2010/06/28/visual-studio-2010-rtm-virtual-machine-now-available/</link>
		<comments>http://mnikoo.net/2010/06/28/visual-studio-2010-rtm-virtual-machine-now-available/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 23:17:00 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=889</guid>
		<description><![CDATA[The RTM version of Visual Studio 2010 and Team Foundation Server 2010 is now available for download as a virtual machine. The VM image also include a sample application and sample data to support the accompanying hands on labs. This image does not include the Visual Studio Lab Management 2010 but the team are working [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=889&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The RTM version of Visual Studio 2010 and Team Foundation Server 2010 is now available for download as a virtual machine. The VM image also include a sample application and sample data to support the accompanying hands on labs. This image does not include the Visual Studio Lab Management 2010 but the team are working on it.</p>
<p><a href="http://mnikoo.files.wordpress.com/2010/06/vs2010logo.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border:0;" title="VS2010Logo" src="http://mnikoo.files.wordpress.com/2010/06/vs2010logo_thumb.png?w=240&#038;h=129" border="0" alt="VS2010Logo" width="240" height="129" /></a><br />
The virtual machine image comes in multiple flavours to support these virtualization technologies: Hyper-V, Windows Virtual PC (for Windows 7) and Virtual PC 2007 SP1. All of these images will expire on 15 Dec 2010.</p>
<p>Refer to <a href="http://blogs.msdn.com/b/briankel/archive/2010/06/25/now-available-visual-studio-2010-rtm-virtual-machine-with-sample-data-and-hands-on-labs.aspx">Brian Keller’s post</a> for additional details.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/889/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/889/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/889/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=889&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/06/28/visual-studio-2010-rtm-virtual-machine-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>

		<media:content url="http://mnikoo.files.wordpress.com/2010/06/vs2010logo_thumb.png" medium="image">
			<media:title type="html">VS2010Logo</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS 2010 Exam is Released</title>
		<link>http://mnikoo.net/2010/06/17/tfs-2010-exam-is-released/</link>
		<comments>http://mnikoo.net/2010/06/17/tfs-2010-exam-is-released/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 21:56:00 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=886</guid>
		<description><![CDATA[The 70-512 exam entitled “TS: Visual Studio Team Foundation Server 2010, Administration” exam was released late last week and can now be taken at Prometric test centres (registration link). According to the Born to Learn blog post and the exam prep guide, the following four major areas are measured in this exam: Installing and configuring [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=886&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The 70-512 exam entitled “<strong>TS: Visual Studio Team Foundation Server 2010, Administration</strong>” exam was released late last week and can now be taken at Prometric test centres (<a href="http://www.prometric.com/Microsoft/default.htm">registration link</a>).</p>
<p>According to the <a href="http://borntolearn.mslearn.net/btl/b/weblog/archive/2010/06/11/now-available-70-512-ts-visual-studio-team-foundation-server-2010-administration.aspx">Born to Learn blog post</a> and the <a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-512&amp;Locale=en-us#tab2">exam prep guide</a>, the following four major areas are measured in this exam:</p>
<li>Installing and configuring TFS </li>
<li>Managing TFS </li>
<li>Customizing TFS for team use </li>
<li>Administering version control
<p>&#160;</p>
<p>Since I have been working with our customers and partners on their development projects and ALM engagements and we use TFS most of the time, I decided to take the exam while it was hot so I did it earlier this week. I liked the exam contents and as always, enjoyed the experience of taking an MCP exam. There was only one question I found a bit ambiguous but I answered a customer query on the very same topic a couple of weeks ago so I knew the answer very well!</p>
</p>
</li>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/886/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/886/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/886/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=886&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/06/17/tfs-2010-exam-is-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>
	</item>
		<item>
		<title>Providing a Reason for Stopping Project Collections in TFS 2010</title>
		<link>http://mnikoo.net/2010/06/15/providing-a-reason-for-stopping-project-collections-in-tfs-2010/</link>
		<comments>http://mnikoo.net/2010/06/15/providing-a-reason-for-stopping-project-collections-in-tfs-2010/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 17:16:00 +0000</pubDate>
		<dc:creator>mnikoo</dc:creator>
				<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">https://mnikoo.wordpress.com/?p=875</guid>
		<description><![CDATA[When you stop a project collection in TFS 2010, it asks you to enter a reason why you are stopping that collection: This text will be displayed to the users when they try to use an artifact in any of the projects in that project collection: Note that this only affects those artifacts that are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=875&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When you stop a project collection in TFS 2010, it asks you to enter a reason why you are stopping that collection:</p>
<p><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://mnikoo.files.wordpress.com/2010/06/image12.png?w=480&#038;h=240" width="480" height="240" /> </p>
<p>This text will be displayed to the users when they try to use an artifact in any of the projects in that project collection:</p>
<p><img style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="http://mnikoo.files.wordpress.com/2010/06/image14.png?w=642&#038;h=479" width="642" height="479" /> </p>
</p>
<p>Note that this only affects those artifacts that are managed by TFS (work items, builds and source control items). Users can continue accessing the reports (handled by SSRS and SSAS) and documents (handled by SharePoint).</p>
<p>This is a minor feature but can be very useful when you need to service the project collection. It is still a good idea to make the users aware of the servicing plans in advance though!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mnikoo.wordpress.com/875/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mnikoo.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mnikoo.wordpress.com/875/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mnikoo.net&amp;blog=13147304&amp;post=875&amp;subd=mnikoo&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mnikoo.net/2010/06/15/providing-a-reason-for-stopping-project-collections-in-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/07a0a4efb40ad1ee134770e3bf0acf7b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mnikoo</media:title>
		</media:content>

		<media:content url="http://mnikoo.files.wordpress.com/2010/06/image12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mnikoo.files.wordpress.com/2010/06/image14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
	</channel>
</rss>
