<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/4.0.3" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Architecture, Design &#38; Strategy - Author(s): SQLDenis</title>
		<link>http://blogs.lessthandot.com/index.php/Architect/</link>
		<atom:link rel="self" type="application/rss+xml" href="http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2" />
		<description></description>
		<language>en-GB</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=4.0.3"/>
		<ttl>60</ttl>
				<item>
			<title>MSDN giveaway winners</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-giveaway-winners</link>
			<pubDate>Fri, 09 Jul 2010 15:23:42 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Hardware &amp; Infrastructure Design</category>			<guid isPermaLink="false">896@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;The winners of the MSDN Ultimate subscriptions are &lt;a href=&quot;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=71&quot;&gt;Emtucifor&lt;/a&gt; and &lt;a href=&quot;http://www.shawson.co.uk/codeblog&quot;&gt;Shawson&lt;/a&gt;. Originally we were going to select the winner based on comments, we also only had one subscription. Then Ted Krueger donated one of his subscriptions, there was only one comment that stood out and it was Emtucifor&#039;s. The comment is below&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I have always dreamed of owning my own software company. A few years back I started doing some database development on the side, but then I got married, had a son, and began having some health challenges which together halted what I&#039;d been doing.&lt;/p&gt;

&lt;p&gt;But there is a special opportunity coming to me this Saturday to get back into the swing of things: my wife and son will be leaving the country for six weeks. I had already been planning to devote myself to developing one of many application ideas, but now:&lt;/p&gt;

&lt;p&gt;1) I would use MSDN Ultimate Subscription to build a secure server/file transfer/fetching/archiving/processing/reconciling/user worklist managing/cross-platform system (uncannily and quite coincidentally, exactly what is desperately needed at a company I know). It will help other people&#039;s lives in several ways: filling a need that many companies are bound to have and for a low price (as initially I will need to build market presence more than profit); increasing the number of small software development businesses out there, proving again that it can be done and providing inspiration for the masses; getting a family&#039;s Dad home so he can spend more time with them. If it helps, I&#039;ll blog about the development and growth of my application and business.&lt;/p&gt;

&lt;p&gt;2) The functionality I would use that is unique to VS Ultimate is Architecture and Modeling. I believe in &quot;starting the way you mean to finish.&quot; So even though I&#039;ll be a one-man shop at first, that means test-driven design, agile development, automated regression testing, version control, good backups, and all the infrastructure needed to hire employees when the time comes without having to change much. I&#039;ll be eager to add the layer diagramming abilities of VS Ultimate to this mix.&lt;/p&gt;

&lt;p&gt;3. Blogs and technical community activity:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=71&quot;&gt;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=71&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/users/57611/emtucifor&quot;&gt;http://stackoverflow.com/users/57611/emtucifor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://tek-tips.com/userinfo.cfm?member=emtucifor&quot;&gt;http://tek-tips.com/userinfo.cfm?member=emtucifor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://squaredthoughts.blogspot.com/&quot;&gt;http://squaredthoughts.blogspot.com/&lt;/a&gt; (a bit out of date but still representative of my work)&lt;br /&gt;
not to mention &lt;a href=&quot;http://forum.lessthandot.com/memberlist.php?mode=viewprofile&amp;amp;u=98&quot;&gt;http://forum.lessthandot.com/memberlist.php?mode=viewprofile&amp;amp;u=98&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Not only did we think that the comment was good but apparently someone else as well, he actually used parts of it as his own in Andy Leonard&#039;s giveaway here: &lt;a href=&quot;http://sqlblog.com/blogs/andy_leonard/archive/2010/07/03/a-visual-studio-2010-msdn-seeding-card-giveaway-contest.aspx&quot;&gt;http://sqlblog.com/blogs/andy_leonard/archive/2010/07/03/a-visual-studio-2010-msdn-seeding-card-giveaway-contest.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We decided to raffle of the other subscription by vote..so I already started to put the polls together. During that time David Taylor left a great comment&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;1) Why do you need this - Because I am a poor, seriously underpaid SQL Server 2008 DBA/Developer who can&#039;t even afford VS2010 Pro!&lt;br /&gt;
What are you going to build with this - I am going to build practice apps to learn from, as I am relatively new to development&lt;br /&gt;
will it help other people&#039;s lives? It is my hope that training myself will get me into a job in which I am helping other people.&lt;/p&gt;

&lt;p&gt;2) What specific functionality that is only part of Ultimate are you going to use? - Architecture Explorer&lt;/p&gt;

&lt;p&gt;3) You need to have a technical blog and provide the URL to that blog, if you are an active member of the technical community (stackoverflow, msdn forums etc etc) then also include those links. - &lt;a href=&quot;http://dyfhid.wordpress.com&quot;&gt;http://dyfhid.wordpress.com&lt;/a&gt;. Also, I am the Volunteer Coordinator for PASS&#039; APplication Development Virtual Chapter, located at &lt;a href=&quot;http://appdev.sqlpass.org&quot;&gt;http://appdev.sqlpass.org&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Now we had a dilemma, do we yank the poll and give the award to David or not? We proceeded with the poll. Wouldn&#039;t you know it, David won Andy&#039;s contest, because of that I emailed him and we decided that he wouldn&#039;t be eligible here.&lt;/p&gt;

&lt;p&gt;Here are the results of the final poll: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11550&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11550&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Congratulations to both winners, hopefully they will let us know in a couple of months if this has indeed made their developer life easier&lt;/p&gt;


&lt;p&gt;Congratulations again from all of us at Lessthandot.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-giveaway-winners&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>The winners of the MSDN Ultimate subscriptions are <a href="http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=71">Emtucifor</a> and <a href="http://www.shawson.co.uk/codeblog">Shawson</a>. Originally we were going to select the winner based on comments, we also only had one subscription. Then Ted Krueger donated one of his subscriptions, there was only one comment that stood out and it was Emtucifor's. The comment is below</p>

<blockquote><p>I have always dreamed of owning my own software company. A few years back I started doing some database development on the side, but then I got married, had a son, and began having some health challenges which together halted what I'd been doing.</p>

<p>But there is a special opportunity coming to me this Saturday to get back into the swing of things: my wife and son will be leaving the country for six weeks. I had already been planning to devote myself to developing one of many application ideas, but now:</p>

<p>1) I would use MSDN Ultimate Subscription to build a secure server/file transfer/fetching/archiving/processing/reconciling/user worklist managing/cross-platform system (uncannily and quite coincidentally, exactly what is desperately needed at a company I know). It will help other people's lives in several ways: filling a need that many companies are bound to have and for a low price (as initially I will need to build market presence more than profit); increasing the number of small software development businesses out there, proving again that it can be done and providing inspiration for the masses; getting a family's Dad home so he can spend more time with them. If it helps, I'll blog about the development and growth of my application and business.</p>

<p>2) The functionality I would use that is unique to VS Ultimate is Architecture and Modeling. I believe in "starting the way you mean to finish." So even though I'll be a one-man shop at first, that means test-driven design, agile development, automated regression testing, version control, good backups, and all the infrastructure needed to hire employees when the time comes without having to change much. I'll be eager to add the layer diagramming abilities of VS Ultimate to this mix.</p>

<p>3. Blogs and technical community activity:</p>

<p><a href="http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=71">http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=71</a><br />
<a href="http://stackoverflow.com/users/57611/emtucifor">http://stackoverflow.com/users/57611/emtucifor</a><br />
<a href="http://tek-tips.com/userinfo.cfm?member=emtucifor">http://tek-tips.com/userinfo.cfm?member=emtucifor</a><br />
<a href="http://squaredthoughts.blogspot.com/">http://squaredthoughts.blogspot.com/</a> (a bit out of date but still representative of my work)<br />
not to mention <a href="http://forum.lessthandot.com/memberlist.php?mode=viewprofile&amp;u=98">http://forum.lessthandot.com/memberlist.php?mode=viewprofile&amp;u=98</a></p></blockquote>

<p>Not only did we think that the comment was good but apparently someone else as well, he actually used parts of it as his own in Andy Leonard's giveaway here: <a href="http://sqlblog.com/blogs/andy_leonard/archive/2010/07/03/a-visual-studio-2010-msdn-seeding-card-giveaway-contest.aspx">http://sqlblog.com/blogs/andy_leonard/archive/2010/07/03/a-visual-studio-2010-msdn-seeding-card-giveaway-contest.aspx</a></p>

<p>We decided to raffle of the other subscription by vote..so I already started to put the polls together. During that time David Taylor left a great comment</p>

<blockquote><p>1) Why do you need this - Because I am a poor, seriously underpaid SQL Server 2008 DBA/Developer who can't even afford VS2010 Pro!<br />
What are you going to build with this - I am going to build practice apps to learn from, as I am relatively new to development<br />
will it help other people's lives? It is my hope that training myself will get me into a job in which I am helping other people.</p>

<p>2) What specific functionality that is only part of Ultimate are you going to use? - Architecture Explorer</p>

<p>3) You need to have a technical blog and provide the URL to that blog, if you are an active member of the technical community (stackoverflow, msdn forums etc etc) then also include those links. - <a href="http://dyfhid.wordpress.com">http://dyfhid.wordpress.com</a>. Also, I am the Volunteer Coordinator for PASS' APplication Development Virtual Chapter, located at <a href="http://appdev.sqlpass.org">http://appdev.sqlpass.org</a></p></blockquote>

<p>Now we had a dilemma, do we yank the poll and give the award to David or not? We proceeded with the poll. Wouldn't you know it, David won Andy's contest, because of that I emailed him and we decided that he wouldn't be eligible here.</p>

<p>Here are the results of the final poll: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11550">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11550</a></p>


<p>Congratulations to both winners, hopefully they will let us know in a couple of months if this has indeed made their developer life easier</p>


<p>Congratulations again from all of us at Lessthandot.</p><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-giveaway-winners">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-giveaway-winners#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=896</wfw:commentRss>
		</item>
				<item>
			<title>Final vote for the MSDN giveaway</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/final-vote-for-the-msdn-giveaway</link>
			<pubDate>Fri, 09 Jul 2010 10:47:59 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Hardware &amp; Infrastructure Design</category>			<guid isPermaLink="false">895@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;We are giving away 2 MSDN ultimate subscriptions, for the original announcement see here: &lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway&quot;&gt;MSDN Ultimate Subscription giveaway&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We did not include David Taylor because he won this morning at sqlblog: &lt;a href=&quot;http://sqlblog.com/blogs/andy_leonard/archive/2010/07/09/and-the-winner-is.aspx&quot;&gt;http://sqlblog.com/blogs/andy_leonard/archive/2010/07/09/and-the-winner-is.aspx&lt;/a&gt; and he was fine with us taking him off.&lt;/p&gt;

&lt;p&gt;Here are the 6 finalist, I picked the top 3 from each group that people had a chance to vote on: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11533&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11533&lt;/a&gt; and &lt;a href=&quot;http://forum.lessthandot.com/posting.php?mode=edit&amp;amp;f=121&amp;amp;p=56403&quot;&gt;http://forum.lessthandot.com/posting.php?mode=edit&amp;amp;f=121&amp;amp;p=56403&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This vote will end in 3 hours, at noon Eastern Standard Time (GMT -5)&lt;br /&gt;
Here are the candidates and their replies&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shawson&lt;/strong&gt;&lt;br /&gt;
1) I will build games with it. I am getting into indie game development with a view to moving from my current profession of web development into games development. I&#039;m just completing a browser game using just javascript and the new html5 media and canvas elements, to see whats possible in the near future without flash! So i will be using it for c# xna, as well as javascript and html. I also wish to do some work with the new odata stuff, to deal with the highscores, as well as a chance to use the latest iteration of the entity framework. &lt;/p&gt;

&lt;p&gt;2) The historical debugger would be awesome, especially when debugging realtime code which is changing all the time, as you see in game loops. I&#039;m also interested to see the designer tools letting you visually build systems with UML and have the basic structural code generated for you. &lt;/p&gt;

&lt;p&gt;3) &lt;a href=&quot;http://www.shawson.co.uk/codeblog&quot;&gt;http://www.shawson.co.uk/codeblog&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://8weekgame.shawson.co.uk&quot;&gt;http://8weekgame.shawson.co.uk&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/users/192305/shawson&quot;&gt;http://stackoverflow.com/users/192305/shawson&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Roger Pence&lt;/strong&gt;&lt;br /&gt;
1. I need this subscription to help me simplify healthcare-related software. Simpler software is easier to use correctly. Improve record keeping improves lives.&lt;br /&gt;
2. Better ALM, Architecture and Modeling, and DB support would help make me a better developer.&lt;br /&gt;
3. &lt;a href=&quot;http://rogerpence.com/blog&quot;&gt;http://rogerpence.com/blog&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Naomi&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=218&quot;&gt;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=218&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://beyondrelational.com/blogs/naomi/archive/2010/03/22/why-left-join-doesn-t-bring-all-records-from-the-left-table.aspx&quot;&gt;http://beyondrelational.com/blogs/naomi/archive/2010/03/22/why-left-join-doesn-t-bring-all-records-from-the-left-table.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Active answerer at many technical sites:&lt;/p&gt;

&lt;p&gt;MSDN &lt;br /&gt;
ASP.NET/Forums&lt;br /&gt;
universalthread.com&lt;br /&gt;
tek-ips.com&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Dave Ballantyne&lt;/strong&gt;&lt;br /&gt;
1) I am now running my a user group ( &lt;a href=&quot;http://sqlsocialkent20100818.eventbrite.com/)&quot;&gt;http://sqlsocialkent20100818.eventbrite.com/)&lt;/a&gt; , so would like to speak with more authority about DataDude and such issues.&lt;br /&gt;
2) Intellitrace looks good as do the architecture components.&lt;br /&gt;
3) &lt;a href=&quot;http://sqlblogcasts.com/blogs/sqlandthelike/&quot;&gt;http://sqlblogcasts.com/blogs/sqlandthelike/&lt;/a&gt; , active in SqlServerCentral and msdn online forums, User groups twitter, fingers cross for a session at SqlBits&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;dennydotnet&lt;/strong&gt;&lt;br /&gt;
1. I am working on a startup idea. Currently using ASP.NET MVC 1, VS 2008. Would love to move up to VS 2010 / .NET 4 and latest MVC version. Idea is around helping people find great deals on products/services.&lt;/p&gt;

&lt;p&gt;2. I could certainly use the feature packs / architecture / modeling tools and the latest Visual Studio 2010. I&#039;d also be interested in playing with Expression Studio Ultimate. Any Windows Phone 7 stuff (if available) would be nice to experiment with as well.&lt;/p&gt;

&lt;p&gt;3. &lt;a href=&quot;http://www.dennydotnet.com&quot;&gt;http://www.dennydotnet.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/users/113474/dennydotnet&quot;&gt;http://stackoverflow.com/users/113474/dennydotnet&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://forums.asp.net/members/superghost.aspx&quot;&gt;http://forums.asp.net/members/superghost.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meile Zetstra&lt;/strong&gt;&lt;br /&gt;
1) I&#039;m currently running VS2010 Premium, but it just lacks the of all the architectural stuff that&#039;s in the Ultimate version. I&#039;d use that to build some tooling or VS extension that revolves arround code inspection, code reflection and generations of diagrams from existing assemblies.&lt;/p&gt;

&lt;p&gt;2) The architecture and modeling stuff. Also the use of the just released Visualization and Modeling Feature Pack is on my wish-to-use list.&lt;/p&gt;

&lt;p&gt;3) My blog: &lt;a href=&quot;http://blogger.xs4all.nl/mzetstra&quot;&gt;http://blogger.xs4all.nl/mzetstra&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sequenceviz.codeplex.com&quot;&gt;http://sequenceviz.codeplex.com&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;You can vote here: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11550&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11550&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/final-vote-for-the-msdn-giveaway&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>We are giving away 2 MSDN ultimate subscriptions, for the original announcement see here: <a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway">MSDN Ultimate Subscription giveaway</a></p>

<p>We did not include David Taylor because he won this morning at sqlblog: <a href="http://sqlblog.com/blogs/andy_leonard/archive/2010/07/09/and-the-winner-is.aspx">http://sqlblog.com/blogs/andy_leonard/archive/2010/07/09/and-the-winner-is.aspx</a> and he was fine with us taking him off.</p>

<p>Here are the 6 finalist, I picked the top 3 from each group that people had a chance to vote on: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11533">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11533</a> and <a href="http://forum.lessthandot.com/posting.php?mode=edit&amp;f=121&amp;p=56403">http://forum.lessthandot.com/posting.php?mode=edit&amp;f=121&amp;p=56403</a></p>

<p>This vote will end in 3 hours, at noon Eastern Standard Time (GMT -5)<br />
Here are the candidates and their replies</p>

<p><strong>Shawson</strong><br />
1) I will build games with it. I am getting into indie game development with a view to moving from my current profession of web development into games development. I'm just completing a browser game using just javascript and the new html5 media and canvas elements, to see whats possible in the near future without flash! So i will be using it for c# xna, as well as javascript and html. I also wish to do some work with the new odata stuff, to deal with the highscores, as well as a chance to use the latest iteration of the entity framework. </p>

<p>2) The historical debugger would be awesome, especially when debugging realtime code which is changing all the time, as you see in game loops. I'm also interested to see the designer tools letting you visually build systems with UML and have the basic structural code generated for you. </p>

<p>3) <a href="http://www.shawson.co.uk/codeblog">http://www.shawson.co.uk/codeblog</a><br />
<a href="http://8weekgame.shawson.co.uk">http://8weekgame.shawson.co.uk</a><br />
<a href="http://stackoverflow.com/users/192305/shawson">http://stackoverflow.com/users/192305/shawson</a></p>


<p><strong>Roger Pence</strong><br />
1. I need this subscription to help me simplify healthcare-related software. Simpler software is easier to use correctly. Improve record keeping improves lives.<br />
2. Better ALM, Architecture and Modeling, and DB support would help make me a better developer.<br />
3. <a href="http://rogerpence.com/blog">http://rogerpence.com/blog</a></p>


<p><strong>Naomi</strong><br />
<a href="http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=218">http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=218</a><br />
<a href="http://beyondrelational.com/blogs/naomi/archive/2010/03/22/why-left-join-doesn-t-bring-all-records-from-the-left-table.aspx">http://beyondrelational.com/blogs/naomi/archive/2010/03/22/why-left-join-doesn-t-bring-all-records-from-the-left-table.aspx</a></p>

<p>Active answerer at many technical sites:</p>

<p>MSDN <br />
ASP.NET/Forums<br />
universalthread.com<br />
tek-ips.com</p>


<p><strong>Dave Ballantyne</strong><br />
1) I am now running my a user group ( <a href="http://sqlsocialkent20100818.eventbrite.com/)">http://sqlsocialkent20100818.eventbrite.com/)</a> , so would like to speak with more authority about DataDude and such issues.<br />
2) Intellitrace looks good as do the architecture components.<br />
3) <a href="http://sqlblogcasts.com/blogs/sqlandthelike/">http://sqlblogcasts.com/blogs/sqlandthelike/</a> , active in SqlServerCentral and msdn online forums, User groups twitter, fingers cross for a session at SqlBits</p>


<p><strong>dennydotnet</strong><br />
1. I am working on a startup idea. Currently using ASP.NET MVC 1, VS 2008. Would love to move up to VS 2010 / .NET 4 and latest MVC version. Idea is around helping people find great deals on products/services.</p>

<p>2. I could certainly use the feature packs / architecture / modeling tools and the latest Visual Studio 2010. I'd also be interested in playing with Expression Studio Ultimate. Any Windows Phone 7 stuff (if available) would be nice to experiment with as well.</p>

<p>3. <a href="http://www.dennydotnet.com">http://www.dennydotnet.com</a><br />
<a href="http://stackoverflow.com/users/113474/dennydotnet">http://stackoverflow.com/users/113474/dennydotnet</a><br />
<a href="http://forums.asp.net/members/superghost.aspx">http://forums.asp.net/members/superghost.aspx</a></p>

<p><strong>Meile Zetstra</strong><br />
1) I'm currently running VS2010 Premium, but it just lacks the of all the architectural stuff that's in the Ultimate version. I'd use that to build some tooling or VS extension that revolves arround code inspection, code reflection and generations of diagrams from existing assemblies.</p>

<p>2) The architecture and modeling stuff. Also the use of the just released Visualization and Modeling Feature Pack is on my wish-to-use list.</p>

<p>3) My blog: <a href="http://blogger.xs4all.nl/mzetstra">http://blogger.xs4all.nl/mzetstra</a><br />
<a href="http://sequenceviz.codeplex.com">http://sequenceviz.codeplex.com</a></p>


<p><strong>You can vote here: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11550">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11550</a></strong></p><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/final-vote-for-the-msdn-giveaway">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/final-vote-for-the-msdn-giveaway#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=895</wfw:commentRss>
		</item>
				<item>
			<title>Vote for the MSDN giveaway winner</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner</link>
			<pubDate>Thu, 08 Jul 2010 15:17:37 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Hardware &amp; Infrastructure Design</category>			<guid isPermaLink="false">894@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;As you might know we are giving away 2 MSDN ultimate subscriptions, for the original announcement see here: &lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway&quot;&gt;MSDN Ultimate Subscription giveaway&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We decided on one of the winners already, for the other winner I decided to pull a Pontius Pilate on you so that nobody can blame me that they didn&#039;t win....yes I know it sounds like a  cop out...that is because it is...and this is more fun.&lt;/p&gt;

&lt;p&gt;Here is what I did..I picked the 20 best answers and put them in 2 groups of 10. In each group 3 people will advance to a final vote, you can vote for two people. The results of those two polls will be looked at tomorrow morning around 9 AM EST and then a new poll will be created with the final 6 contestants.&lt;/p&gt;


&lt;p&gt;Make sure that you look at every person&#039;s answer, also check their links so that you can decide who should advance.&lt;/p&gt;


&lt;p&gt;The group A people can be found here: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11533&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11533&lt;/a&gt;&lt;br /&gt;
The group B people can be found here: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11532&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11532&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good luck everyone&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>As you might know we are giving away 2 MSDN ultimate subscriptions, for the original announcement see here: <a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway">MSDN Ultimate Subscription giveaway</a></p>

<p>We decided on one of the winners already, for the other winner I decided to pull a Pontius Pilate on you so that nobody can blame me that they didn't win....yes I know it sounds like a  cop out...that is because it is...and this is more fun.</p>

<p>Here is what I did..I picked the 20 best answers and put them in 2 groups of 10. In each group 3 people will advance to a final vote, you can vote for two people. The results of those two polls will be looked at tomorrow morning around 9 AM EST and then a new poll will be created with the final 6 contestants.</p>


<p>Make sure that you look at every person's answer, also check their links so that you can decide who should advance.</p>


<p>The group A people can be found here: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11533">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11533</a><br />
The group B people can be found here: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11532">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11532</a></p>

<p>Good luck everyone</p><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=894</wfw:commentRss>
		</item>
				<item>
			<title>MSDN Ultimate Subscription giveaway</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway</link>
			<pubDate>Sat, 03 Jul 2010 10:39:36 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Hardware &amp; Infrastructure Design</category>			<guid isPermaLink="false">888@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/denisgobo/4756881779/&quot; title=&quot;MSDN Ultimate subscriptions by Denis Gobo, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4094/4756881779_5f96a7d626.jpg&quot; width=&quot;457&quot; height=&quot;298&quot; alt=&quot;MSDN Ultimate subscriptions&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft was kind enough to give me 3 MSDN Ultimate Subscriptions. I gave two of these away already, I have one left for the readers of Lessthandot.com.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update &lt;br /&gt;
&lt;a href=&quot;http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;amp;author=68&quot;&gt;Ted Krueger&lt;/a&gt; decided to add one of his, so now there will be two that we will be giving away......that just doubled your chances  &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 2&lt;br /&gt;
This is now closed, but you can vote for the winner, see here for details: &lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner&quot;&gt;Vote for the MSDN giveaway winner&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;The list price for this is $11,899, you can see what is all included here: &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate&quot;&gt;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate&lt;/a&gt;  You get pretty much everything that Microsoft makes in terms of software. This is a one year subscription and is not restricted to the US only, so if you live outside the US then you can also enter to win.&lt;/p&gt;

&lt;p&gt;So what do you need to do to win this? Here is the deal, you will have to answer 3 question in order to win this.&lt;/p&gt;

&lt;p&gt;1) Why do you need this, what are you going to build with this, will it help other people&#039;s lives?&lt;br /&gt;
2) What specific functionality that is only part of Ultimate are you going to use?&lt;br /&gt;
3) You need to have a technical blog and provide the URL to that blog, if you are an active member of the technical community (stackoverflow, msdn forums etc etc) then also include those links.&lt;/p&gt;

&lt;p&gt;Leave a comment here, you will also have to join the forums, that way I will have your email to contact you and I will able to ask you questions about your answers if needed. I created a thread in the forums here: &lt;a href=&quot;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11456&quot;&gt;http://forum.lessthandot.com/viewtopic.php?f=121&amp;amp;t=11456&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;BTW owners/management of Lessthandot are not allowed to enter this giveaway, they will however judge who will get this.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;We will pick a winner Friday July 9th and announce it in a blog post.&lt;/p&gt;


&lt;p&gt;Good luck&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/denisgobo/4756881779/" title="MSDN Ultimate subscriptions by Denis Gobo, on Flickr"><img src="http://farm5.static.flickr.com/4094/4756881779_5f96a7d626.jpg" width="457" height="298" alt="MSDN Ultimate subscriptions" /></a></p>

<p>Microsoft was kind enough to give me 3 MSDN Ultimate Subscriptions. I gave two of these away already, I have one left for the readers of Lessthandot.com.</p>

<p><strong>Update <br />
<a href="http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=68">Ted Krueger</a> decided to add one of his, so now there will be two that we will be giving away......that just doubled your chances  </strong></p>

<p><strong>Update 2<br />
This is now closed, but you can vote for the winner, see here for details: <a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/vote-for-the-msdn-giveaway-winner">Vote for the MSDN giveaway winner</a></strong></p>



<p>The list price for this is $11,899, you can see what is all included here: <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate">http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate</a>  You get pretty much everything that Microsoft makes in terms of software. This is a one year subscription and is not restricted to the US only, so if you live outside the US then you can also enter to win.</p>

<p>So what do you need to do to win this? Here is the deal, you will have to answer 3 question in order to win this.</p>

<p>1) Why do you need this, what are you going to build with this, will it help other people's lives?<br />
2) What specific functionality that is only part of Ultimate are you going to use?<br />
3) You need to have a technical blog and provide the URL to that blog, if you are an active member of the technical community (stackoverflow, msdn forums etc etc) then also include those links.</p>

<p>Leave a comment here, you will also have to join the forums, that way I will have your email to contact you and I will able to ask you questions about your answers if needed. I created a thread in the forums here: <a href="http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11456">http://forum.lessthandot.com/viewtopic.php?f=121&amp;t=11456</a></p>

<p><em>BTW owners/management of Lessthandot are not allowed to enter this giveaway, they will however judge who will get this.</em></p>


<p>We will pick a winner Friday July 9th and announce it in a blog post.</p>


<p>Good luck</p><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/msdn-ultimate-subscription-giveaway#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=888</wfw:commentRss>
		</item>
				<item>
			<title>Visual Studio 2010 Concurrency Profiling And Parallel Programming</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/EnterpriseArchitecture/visual-studio-2010-concurrency-profiling</link>
			<pubDate>Sun, 14 Mar 2010 11:03:56 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Enterprise Architecture</category>			<guid isPermaLink="false">777@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;Visual Studio 2010 and .NET 4.0 are almost released, one of the new things that ship with this release is Parallel Programming. Since you can&#039;t buy a machine anymore with just one core it is time that we developers get intimate with concurrent programming. I decided to play around with this a little today, this is not a real technical post, I mostly show you how you can get started and what new tools are available.&lt;/p&gt;

&lt;h2&gt;Getting to know Parallel Programming with the .NET Framework 4&lt;/h2&gt;
&lt;p&gt;The best way to learn about new additions to a framework is to look at some code. There are 22 samples for Parallel Programming with the .NET Framework 4 available on the  msdn code library. You can download the .NET Framework 4 Parallel Programming samples here: &lt;a href=&quot;http://code.msdn.microsoft.com/ParExtSamples&quot;&gt;Samples for Parallel Programming with the .NET Framework 4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a screen shot of the Mandelbrot Fractals sample.&lt;br /&gt;
&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//Fractal.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;407&quot; height=&quot;405&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;If you run the sample on a 2 core machine you will see that the parallel execution is about 60% faster than the sequential one.&lt;/p&gt;


&lt;p&gt;After I was done with the Mandelbrot Fractals sample, I decided to open up the ComputePi sample, after all it is Pi day today (2010.3.14)&lt;/p&gt;

&lt;p&gt;Here is the code for the different ways of calculating Pi which is part of the ComputePi sample.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estimates the value of PI using a LINQ-based implementation&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;codeheader&quot;&gt;Code: &lt;span&gt;csharp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;codeholder&quot;&gt;&lt;div class=&quot;csharp&quot; id=&quot;cb56743&quot; style=&quot;display: block; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; SerialLinqPi&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; step = &lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;num_steps;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;from i &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; Enumerable.&lt;span style=&quot;color: #0000FF;&quot;&gt;Range&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;, num_steps&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let x = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span style=&quot;color: #FF0000;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select &lt;span style=&quot;color: #FF0000;&quot;&gt;4.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; + x * x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Sum&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;cb23841&quot; style=&quot;display: none; color: red;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Estimates the value of PI using a PLINQ-based implementation.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;codeheader&quot;&gt;Code: &lt;span&gt;csharp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;codeholder&quot;&gt;&lt;div class=&quot;csharp&quot; id=&quot;cb54959&quot; style=&quot;display: block; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; ParallelLinqPi&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; step = &lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;num_steps;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;from i &lt;span style=&quot;color: #0600FF;&quot;&gt;in&lt;/span&gt; ParallelEnumerable.&lt;span style=&quot;color: #0000FF;&quot;&gt;Range&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;, num_steps&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let x = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span style=&quot;color: #FF0000;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select &lt;span style=&quot;color: #FF0000;&quot;&gt;4.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; + x * x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Sum&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;cb20049&quot; style=&quot;display: none; color: red;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Estimates the value of PI using a for loop.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;codeheader&quot;&gt;Code: &lt;span&gt;csharp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;codeholder&quot;&gt;&lt;div class=&quot;csharp&quot; id=&quot;cb89801&quot; style=&quot;display: block; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; SerialPi&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; sum = &lt;span style=&quot;color: #FF0000;&quot;&gt;0.0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; step = &lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;num_steps;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;; i &amp;lt; num_steps; i++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; x = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span style=&quot;color: #FF0000;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sum = sum + &lt;span style=&quot;color: #FF0000;&quot;&gt;4.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; + x * x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; step * sum;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;cb90264&quot; style=&quot;display: none; color: red;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Estimates the value of PI using a Parallel.For.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;codeheader&quot;&gt;Code: &lt;span&gt;csharp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;codeholder&quot;&gt;&lt;div class=&quot;csharp&quot; id=&quot;cb42092&quot; style=&quot;display: block; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; ParallelPi&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; sum = &lt;span style=&quot;color: #FF0000;&quot;&gt;0.0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; step = &lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;num_steps;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; monitor = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Parallel.&lt;span style=&quot;color: #0600FF;&quot;&gt;For&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;, num_steps, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;0.0&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i, state, local&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; x = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span style=&quot;color: #FF0000;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; local + &lt;span style=&quot;color: #FF0000;&quot;&gt;4.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; + x * x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;, local =&amp;gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;lock&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;monitor&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; sum += local; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; step * sum;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;cb47404&quot; style=&quot;display: none; color: red;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Estimates the value of PI using a Parallel.ForEach and a range partitioner.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codebox&quot;&gt;&lt;div class=&quot;codeheader&quot;&gt;Code: &lt;span&gt;csharp&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;codeholder&quot;&gt;&lt;div class=&quot;csharp&quot; id=&quot;cb48507&quot; style=&quot;display: block; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; ParallelPartitionerPi&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; sum = &lt;span style=&quot;color: #FF0000;&quot;&gt;0.0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; step = &lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;num_steps;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; monitor = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Parallel.&lt;span style=&quot;color: #0600FF;&quot;&gt;ForEach&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Partitioner.&lt;span style=&quot;color: #0000FF;&quot;&gt;Create&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;, num_steps&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;0.0&lt;/span&gt;, &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;range, state, local&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; =&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; i = range.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item1&lt;/span&gt;; i &amp;lt; range.&lt;span style=&quot;color: #0000FF;&quot;&gt;Item2&lt;/span&gt;; i++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; x = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span style=&quot;color: #FF0000;&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; * step;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; local += &lt;span style=&quot;color: #FF0000;&quot;&gt;4.0&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;1.0&lt;/span&gt; + x * x&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; local;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;, local =&amp;gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;lock&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;monitor&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; sum += local; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; step * sum;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;cb82031&quot; style=&quot;display: none; color: red;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Here are the results when you run the sample. The first column is the time in seconds and the second column has the method name.&lt;/p&gt;

&lt;pre&gt;03.3369869: SerialLinqPi
02.1516130: ParallelLinqPi
01.0522855: SerialPi
00.6457441: ParallelPi
00.7098180: ParallelPartitionerPi&lt;/pre&gt;

&lt;p&gt;Again these were from my dual core laptop, you might get a bigger difference if you run it on a quad core box.&lt;/p&gt;


&lt;h2&gt;Profiling Performance&lt;/h2&gt;
&lt;p&gt;Visual Studio 2010 ships with a couple of tools that will make your life easier if you do parallel programming. Launch the Performance Wizard from Tools--&gt;Launch Performance Wizard&lt;br /&gt;
&lt;br /&gt;&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//LaunchWizard.PNG&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;479&quot; height=&quot;217&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After that a wizard will launch and you will see a window like the one in the sreenshot below&lt;br /&gt;
&lt;br /&gt;&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//Profile Wizard.png&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;647&quot; height=&quot;556&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pick concurrency and visualize the behaviour of a multithreaded application.&lt;/p&gt;

&lt;p&gt;After you are done, start your app and when you close the app, reports will be generated. &lt;br /&gt;
If you don&#039;t see the reports then do the following; click on View--&gt;Other Windows--&gt;Performance Explorer. &lt;/p&gt;

&lt;p&gt;FYI, You need to run as admin to generate these report and if you are on a 64bit machine then you need to set the platform target to x86 in order to be able to generate these reports. I was greeted with the following message: &lt;em&gt;To enable complete call stacks on x64 platforms, executive paging must be disabled. A reboot is then required. To make this change, click &quot;Yes&quot;, save your work, and then reboot. For more information, see &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=157265&quot;&gt;http://go.microsoft.com/fwlink/?LinkId=157265&lt;/a&gt; &lt;/em&gt;. After I rebooted everything worked.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;There are 3 types of reports that you will see. Here is what the CPU Utilization report looks like.&lt;br /&gt;
&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//CPUUtil.PNG&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;459&quot; height=&quot;293&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;There is a report for threads&lt;br /&gt;
&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//Threads.PNG&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;741&quot; height=&quot;596&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;Finally there is also a report for cores&lt;br /&gt;
&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//Cores.PNG&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;662&quot; height=&quot;522&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Instead of having 20 images embedded I decided that a video would be more useful. This video is about 1 minute and 52 seconds and it shows you what the tool looks like when I am clicking around in it.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Here is the HD Video version, I would suggest you click on the video and watch in on YouTube in 720P full screen format&lt;/p&gt;
&lt;div class=&quot;videoblock&quot;&gt;&lt;object data=&quot;http://www.youtube.com/v/Bofk3ecJOtk&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Bofk3ecJOtk&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;/object&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;Learning more about Concurrency Profiling and Parallel Programming&lt;/h2&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;To finalize this post, here are some links to technical resources that will help you with  Concurrency Profiling and Parallel Programming.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://social.msdn.microsoft.com/forums/en-us/vstsprofiler&quot;&gt;Visual Studio Performance Tools (Profiler) msdn forum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://blogs.msdn.com/visualizeparallel/&quot;&gt;Parallel Computing, Profiling and Debugging blog&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Below is a 10 part blog post series by Reed Copsey, Jr about parallelism in .net&lt;/p&gt;
&lt;p&gt;&lt;a title=Introduction href=&quot;http://reedcopsey.com/2010/01/19/parallelism-in-net-introduction/&quot;&gt;Introduction&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a title=&quot;Part 1, Decomposition&quot; href=&quot;http://reedcopsey.com/2010/01/19/parallelism-in-net-part-1-decomposition/&quot;&gt;Part 1, Decomposition&lt;/a&gt;&lt;u&gt;&lt;font color=#0066cc&gt;&amp;nbsp;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/20/parallelism-in-net-part-2-simple-imperative-data-parallelism/&quot;&gt;Part 2, Simple Imperative Data Parallelism&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/22/parallelism-in-net-part-3-imperative-data-parallelism-early-termination/&quot;&gt;Part 3, Imperative Data Parallelism: Early Termination&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/22/parallelism-in-net-part-4-imperative-data-parallelism-aggregation/&quot;&gt;Part 4, Imperative Data Parallelism: Aggregation&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/26/parallelism-in-net-part-5-partitioning-of-work/&quot;&gt;Part 5, Partitioning of Work&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/26/parallelism-in-net-part-6-declarative-data-parallelism/&quot;&gt;Part 6, Declarative Data Parallelism&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/01/28/parallelism-in-net-part-7-some-differences-between-plinq-and-linq-to-objects/&quot;&gt;Part 7, Some Differences between PLINQ and LINQ to Objects&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/&quot;&gt;Part 8, PLINQ&amp;#8217;s ForAll Method&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/02/11/parallelism-in-net-part-9-configuration-in-plinq-and-tpl/&quot;&gt;Part 9, Configuration in PLINQ and TPL&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://reedcopsey.com/2010/02/17/parallelism-in-net-part-10-cancellation-in-plinq-and-the-parallel-class/&quot;&gt;Part 10, Cancellation in PLINQ and the Parallel class&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;br /&gt;So hopefully this post will spark your interest and you will take a look at these interesting technologies and tools.&lt;/p&gt;

&lt;p&gt;Happy &amp;#960; day ,and today is also Albert Einstein&#039;s birthday.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.lessthandot.com/media/blogs/Architect//Pi_Pie.jpg&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;577&quot; height=&quot;576&quot; /&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/EnterpriseArchitecture/visual-studio-2010-concurrency-profiling&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Visual Studio 2010 and .NET 4.0 are almost released, one of the new things that ship with this release is Parallel Programming. Since you can't buy a machine anymore with just one core it is time that we developers get intimate with concurrent programming. I decided to play around with this a little today, this is not a real technical post, I mostly show you how you can get started and what new tools are available.</p>

<h2>Getting to know Parallel Programming with the .NET Framework 4</h2>
<p>The best way to learn about new additions to a framework is to look at some code. There are 22 samples for Parallel Programming with the .NET Framework 4 available on the  msdn code library. You can download the .NET Framework 4 Parallel Programming samples here: <a href="http://code.msdn.microsoft.com/ParExtSamples">Samples for Parallel Programming with the .NET Framework 4</a></p>

<p>Here is a screen shot of the Mandelbrot Fractals sample.<br />
<img src="http://blogs.lessthandot.com/media/blogs/Architect//Fractal.png" alt="" title="" width="407" height="405" /><br />
<br /><br />If you run the sample on a 2 core machine you will see that the parallel execution is about 60% faster than the sequential one.</p>


<p>After I was done with the Mandelbrot Fractals sample, I decided to open up the ComputePi sample, after all it is Pi day today (2010.3.14)</p>

<p>Here is the code for the different ways of calculating Pi which is part of the ComputePi sample.</p>

<p><strong>Estimates the value of PI using a LINQ-based implementation</strong>.</p>
<div class="codebox"><div class="codeheader"><span>csharp</span><div class="codebox_javascript_links"><a href="http://blogs.lessthandot.com" onclick="linenumberOnOff('cb9007'); return false;">Line number Off</a> | <a href="http://blogs.lessthandot.com#" onclick="expandCode('cb9007','cb32012'); return false;">Hide</a> | <a href="http://blogs.lessthandot.com#" onclick="selectCode(this); return false;">Select all</a></div></div><!-- we need this dummy div to fix a firefox bug when selecting code lines --><div class="codeholder"><div class="csharp" id="cb9007" style="display: block; color: rgb(0, 0, 0);"><ol><li style="" class="li1"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> SerialLinqPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> step = <span style="color: #FF0000;">1.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>num_steps;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span>from i <span style="color: #0600FF;">in</span> Enumerable.<span style="color: #0000FF;">Range</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, num_steps<span style="color: #000000;">&#41;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; let x = <span style="color: #000000;">&#40;</span>i + <span style="color: #FF0000;">0.5</span><span style="color: #000000;">&#41;</span> * step</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select <span style="color: #FF0000;">4.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1.0</span> + x * x<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Sum</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> * step;</li><li style="" class="li1">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li></ol></div><div id="cb32012" style="display: none; color: red;"></div></div></div>

<p><strong>Estimates the value of PI using a PLINQ-based implementation.</strong></p>
<div class="codebox"><div class="codeheader"><span>csharp</span><div class="codebox_javascript_links"><a href="http://blogs.lessthandot.com" onclick="linenumberOnOff('cb32106'); return false;">Line number Off</a> | <a href="http://blogs.lessthandot.com#" onclick="expandCode('cb32106','cb16303'); return false;">Hide</a> | <a href="http://blogs.lessthandot.com#" onclick="selectCode(this); return false;">Select all</a></div></div><!-- we need this dummy div to fix a firefox bug when selecting code lines --><div class="codeholder"><div class="csharp" id="cb32106" style="display: block; color: rgb(0, 0, 0);"><ol><li style="" class="li1"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> ParallelLinqPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> step = <span style="color: #FF0000;">1.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>num_steps;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span>from i <span style="color: #0600FF;">in</span> ParallelEnumerable.<span style="color: #0000FF;">Range</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, num_steps<span style="color: #000000;">&#41;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; let x = <span style="color: #000000;">&#40;</span>i + <span style="color: #FF0000;">0.5</span><span style="color: #000000;">&#41;</span> * step</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select <span style="color: #FF0000;">4.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1.0</span> + x * x<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Sum</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> * step;</li><li style="" class="li1">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li></ol></div><div id="cb16303" style="display: none; color: red;"></div></div></div>
<p><strong>Estimates the value of PI using a for loop.</strong></p>
<div class="codebox"><div class="codeheader"><span>csharp</span><div class="codebox_javascript_links"><a href="http://blogs.lessthandot.com" onclick="linenumberOnOff('cb12509'); return false;">Line number Off</a> | <a href="http://blogs.lessthandot.com#" onclick="expandCode('cb12509','cb88325'); return false;">Hide</a> | <a href="http://blogs.lessthandot.com#" onclick="selectCode(this); return false;">Select all</a></div></div><!-- we need this dummy div to fix a firefox bug when selecting code lines --><div class="codeholder"><div class="csharp" id="cb12509" style="display: block; color: rgb(0, 0, 0);"><ol><li style="" class="li1"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> SerialPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> sum = <span style="color: #FF0000;">0.0</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> step = <span style="color: #FF0000;">1.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>num_steps;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i = <span style="color: #FF0000;">0</span>; i &lt; num_steps; i++<span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> x = <span style="color: #000000;">&#40;</span>i + <span style="color: #FF0000;">0.5</span><span style="color: #000000;">&#41;</span> * step;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sum = sum + <span style="color: #FF0000;">4.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1.0</span> + x * x<span style="color: #000000;">&#41;</span>;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> step * sum;</li><li style="" class="li1">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li></ol></div><div id="cb88325" style="display: none; color: red;"></div></div></div>

<p><strong>Estimates the value of PI using a Parallel.For.</strong></p>
<div class="codebox"><div class="codeheader"><span>csharp</span><div class="codebox_javascript_links"><a href="http://blogs.lessthandot.com" onclick="linenumberOnOff('cb69319'); return false;">Line number Off</a> | <a href="http://blogs.lessthandot.com#" onclick="expandCode('cb69319','cb84995'); return false;">Hide</a> | <a href="http://blogs.lessthandot.com#" onclick="selectCode(this); return false;">Select all</a></div></div><!-- we need this dummy div to fix a firefox bug when selecting code lines --><div class="codeholder"><div class="csharp" id="cb69319" style="display: block; color: rgb(0, 0, 0);"><ol><li style="" class="li1"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> ParallelPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> sum = <span style="color: #FF0000;">0.0</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> step = <span style="color: #FF0000;">1.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>num_steps;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">object</span> monitor = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #FF0000;">object</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; Parallel.<span style="color: #0600FF;">For</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, num_steps, <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> =&gt; <span style="color: #FF0000;">0.0</span>, <span style="color: #000000;">&#40;</span>i, state, local<span style="color: #000000;">&#41;</span> =&gt;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> x = <span style="color: #000000;">&#40;</span>i + <span style="color: #FF0000;">0.5</span><span style="color: #000000;">&#41;</span> * step;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> local + <span style="color: #FF0000;">4.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1.0</span> + x * x<span style="color: #000000;">&#41;</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span>, local =&gt; <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">lock</span> <span style="color: #000000;">&#40;</span>monitor<span style="color: #000000;">&#41;</span> sum += local; <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> step * sum;</li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li></ol></div><div id="cb84995" style="display: none; color: red;"></div></div></div>

<p><strong>Estimates the value of PI using a Parallel.ForEach and a range partitioner.</strong></p>
<div class="codebox"><div class="codeheader"><span>csharp</span><div class="codebox_javascript_links"><a href="http://blogs.lessthandot.com" onclick="linenumberOnOff('cb68059'); return false;">Line number Off</a> | <a href="http://blogs.lessthandot.com#" onclick="expandCode('cb68059','cb14461'); return false;">Hide</a> | <a href="http://blogs.lessthandot.com#" onclick="selectCode(this); return false;">Select all</a></div></div><!-- we need this dummy div to fix a firefox bug when selecting code lines --><div class="codeholder"><div class="csharp" id="cb68059" style="display: block; color: rgb(0, 0, 0);"><ol><li style="" class="li1"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">double</span> ParallelPartitionerPi<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> sum = <span style="color: #FF0000;">0.0</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> step = <span style="color: #FF0000;">1.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>num_steps;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">object</span> monitor = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #FF0000;">object</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; Parallel.<span style="color: #0600FF;">ForEach</span><span style="color: #000000;">&#40;</span>Partitioner.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, num_steps<span style="color: #000000;">&#41;</span>, <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> =&gt; <span style="color: #FF0000;">0.0</span>, <span style="color: #000000;">&#40;</span>range, state, local<span style="color: #000000;">&#41;</span> =&gt;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i = range.<span style="color: #0000FF;">Item1</span>; i &lt; range.<span style="color: #0000FF;">Item2</span>; i++<span style="color: #000000;">&#41;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span></li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">double</span> x = <span style="color: #000000;">&#40;</span>i + <span style="color: #FF0000;">0.5</span><span style="color: #000000;">&#41;</span> * step;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; local += <span style="color: #FF0000;">4.0</span> / <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1.0</span> + x * x<span style="color: #000000;">&#41;</span>;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> local;</li><li style="" class="li2">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span>, local =&gt; <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">lock</span> <span style="color: #000000;">&#40;</span>monitor<span style="color: #000000;">&#41;</span> sum += local; <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>;</li><li style="" class="li1">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF;">return</span> step * sum;</li><li style="" class="li2">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></li><li style="" class="li1"><span style="color: #000000;">&#125;</span></li></ol></div><div id="cb14461" style="display: none; color: red;"></div></div></div>

<p><br /><br />Here are the results when you run the sample. The first column is the time in seconds and the second column has the method name.</p>

<pre>03.3369869: SerialLinqPi
02.1516130: ParallelLinqPi
01.0522855: SerialPi
00.6457441: ParallelPi
00.7098180: ParallelPartitionerPi</pre>

<p>Again these were from my dual core laptop, you might get a bigger difference if you run it on a quad core box.</p>


<h2>Profiling Performance</h2>
<p>Visual Studio 2010 ships with a couple of tools that will make your life easier if you do parallel programming. Launch the Performance Wizard from Tools-->Launch Performance Wizard<br />
<br /><img src="http://blogs.lessthandot.com/media/blogs/Architect//LaunchWizard.PNG" alt="" title="" width="479" height="217" /></p>

<p>After that a wizard will launch and you will see a window like the one in the sreenshot below<br />
<br /><img src="http://blogs.lessthandot.com/media/blogs/Architect//Profile Wizard.png" alt="" title="" width="647" height="556" /></p>

<p>Pick concurrency and visualize the behaviour of a multithreaded application.</p>

<p>After you are done, start your app and when you close the app, reports will be generated. <br />
If you don't see the reports then do the following; click on View-->Other Windows-->Performance Explorer. </p>

<p>FYI, You need to run as admin to generate these report and if you are on a 64bit machine then you need to set the platform target to x86 in order to be able to generate these reports. I was greeted with the following message: <em>To enable complete call stacks on x64 platforms, executive paging must be disabled. A reboot is then required. To make this change, click "Yes", save your work, and then reboot. For more information, see <a href="http://go.microsoft.com/fwlink/?LinkId=157265">http://go.microsoft.com/fwlink/?LinkId=157265</a> </em>. After I rebooted everything worked.</p>

<p><br />There are 3 types of reports that you will see. Here is what the CPU Utilization report looks like.<br />
<img src="http://blogs.lessthandot.com/media/blogs/Architect//CPUUtil.PNG" alt="" title="" width="459" height="293" /></p>

<p><br />There is a report for threads<br />
<img src="http://blogs.lessthandot.com/media/blogs/Architect//Threads.PNG" alt="" title="" width="741" height="596" /></p>

<p><br />Finally there is also a report for cores<br />
<img src="http://blogs.lessthandot.com/media/blogs/Architect//Cores.PNG" alt="" title="" width="662" height="522" /></p>


<p>Instead of having 20 images embedded I decided that a video would be more useful. This video is about 1 minute and 52 seconds and it shows you what the tool looks like when I am clicking around in it.<br /><br /></p>


<p>Here is the HD Video version, I would suggest you click on the video and watch in on YouTube in 720P full screen format</p>
<div class="videoblock"><object data="http://www.youtube.com/v/Bofk3ecJOtk" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"><param name="movie" value="http://www.youtube.com/v/Bofk3ecJOtk"></param><param name="wmode" value="transparent"></param></object></div>

<p><br /><br /><br /></p>
<h2>Learning more about Concurrency Profiling and Parallel Programming</h2>
<p><br /><br />To finalize this post, here are some links to technical resources that will help you with  Concurrency Profiling and Parallel Programming.</p>

<p>The <a href="http://social.msdn.microsoft.com/forums/en-us/vstsprofiler">Visual Studio Performance Tools (Profiler) msdn forum</a></p>

<p>The <a href="http://blogs.msdn.com/visualizeparallel/">Parallel Computing, Profiling and Debugging blog</a></p>


<p>Below is a 10 part blog post series by Reed Copsey, Jr about parallelism in .net</p>
<p><a title=Introduction href="http://reedcopsey.com/2010/01/19/parallelism-in-net-introduction/">Introduction</a></p> 
<p><a title="Part 1, Decomposition" href="http://reedcopsey.com/2010/01/19/parallelism-in-net-part-1-decomposition/">Part 1, Decomposition</a><u><font color=#0066cc>&nbsp;</font></u></p> 
<p><a href="http://reedcopsey.com/2010/01/20/parallelism-in-net-part-2-simple-imperative-data-parallelism/">Part 2, Simple Imperative Data Parallelism</a></p> 
<p><a href="http://reedcopsey.com/2010/01/22/parallelism-in-net-part-3-imperative-data-parallelism-early-termination/">Part 3, Imperative Data Parallelism: Early Termination</a></p> 
<p><a href="http://reedcopsey.com/2010/01/22/parallelism-in-net-part-4-imperative-data-parallelism-aggregation/">Part 4, Imperative Data Parallelism: Aggregation</a></p> 
<p><a href="http://reedcopsey.com/2010/01/26/parallelism-in-net-part-5-partitioning-of-work/">Part 5, Partitioning of Work</a></p> 
<p><a href="http://reedcopsey.com/2010/01/26/parallelism-in-net-part-6-declarative-data-parallelism/">Part 6, Declarative Data Parallelism</a></p> 
<p><a href="http://reedcopsey.com/2010/01/28/parallelism-in-net-part-7-some-differences-between-plinq-and-linq-to-objects/">Part 7, Some Differences between PLINQ and LINQ to Objects</a></p> 
<p><a href="http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/">Part 8, PLINQ&#8217;s ForAll Method</a></p> 
<p><a href="http://reedcopsey.com/2010/02/11/parallelism-in-net-part-9-configuration-in-plinq-and-tpl/">Part 9, Configuration in PLINQ and TPL</a></p> 
<p><a href="http://reedcopsey.com/2010/02/17/parallelism-in-net-part-10-cancellation-in-plinq-and-the-parallel-class/">Part 10, Cancellation in PLINQ and the Parallel class</a></p>


<p><br /><br />So hopefully this post will spark your interest and you will take a look at these interesting technologies and tools.</p>

<p>Happy &#960; day ,and today is also Albert Einstein's birthday.</p>

<p><br /><img src="http://blogs.lessthandot.com/media/blogs/Architect//Pi_Pie.jpg" alt="" title="" width="577" height="576" /></p><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/EnterpriseArchitecture/visual-studio-2010-concurrency-profiling">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/EnterpriseArchitecture/visual-studio-2010-concurrency-profiling#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=777</wfw:commentRss>
		</item>
				<item>
			<title>Patterns And Practices Application Architecture Guide 2.0, Something Everyone Should Read</title>
			<link>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/patterns-and-practices-application-archi</link>
			<pubDate>Thu, 12 Mar 2009 11:04:46 +0000</pubDate>			<dc:creator>SQLDenis</dc:creator>
			<category domain="main">Hardware &amp; Infrastructure Design</category>			<guid isPermaLink="false">358@http://blogs.lessthandot.com/</guid>
						<description>&lt;p&gt;I was listening to show number 426 on dotnetrocks: &lt;a href=&quot;http://www.dotnetrocks.com/default.aspx?showNum=426&quot;&gt;Rob Boucher on Application Architecture Guidance!&lt;/a&gt; They mentioned the &lt;a href=&quot;http://www.codeplex.com/AppArchGuide&quot;&gt;Patterns And Practices Application Architecture Guide 2.0&lt;/a&gt;, this guide is available for free on codeplex.&lt;/p&gt;

&lt;p&gt;Although it is a Microsoft technology centric guide, there should be chapters for every developer in your group. &lt;br /&gt;
Here is one example from the book&lt;/p&gt;

&lt;h3&gt; &lt;br /&gt;
Key Design Principles
&lt;/h3&gt;&lt;p&gt;When getting started with your design, bear in mind the key principles that will help you to create architecture that meets &amp;#8220;best practices,&amp;#8221; minimizes costs and maintenance requirements, and promotes usability and extendibility. The key principles are:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt; 
&lt;li&gt;&lt;b&gt;Separation of concerns&lt;/b&gt;. Break your application into distinct features that overlap in functionality as little as possible.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Single Responsibility Principle&lt;/b&gt;. Each component or a module should be responsible for only a specific feature or functionality.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Principle of least knowledge&lt;/b&gt;.** A component or an object should not know about internal details of other components or objects. Also known as the Law of Demeter** (LoD).&lt;/li&gt;&lt;li&gt;&lt;b&gt;Don&amp;#8217;t Repeat Yourself (DRY)&lt;/b&gt;. There should be only one component providing a specific functionality; the functionality should not be duplicated in any other component.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Avoid doing a big design upfront&lt;/b&gt;. If your application requirements are unclear, or if there is a possibility of the design evolving over time, avoid making a large design effort prematurely. This design principle is often abbreviated as BDUF. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Prefer composition over inheritance&lt;/b&gt;. Wherever possible, use composition over inheritance when reusing functionality because inheritance increases the dependency between parent and child classes, thereby limiting the reuse of child classes.&lt;/li&gt; 
&lt;/ul&gt;


&lt;p&gt;The nice thing is that each chapter has a resource section at the bottom so that you can dive deep into a specific topic mentioned in the chapter itself. This is great stuff and I recommend that you check out this guide. You also might want to listen to the dotnetrocks podcast about this guide: &lt;a href=&quot;http://www.dotnetrocks.com/default.aspx?showNum=426&quot;&gt;http://www.dotnetrocks.com/default.aspx?showNum=426&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is a list of all the chapters, make sure you check out the cheat sheets&lt;/p&gt;

&lt;h3&gt; &lt;br /&gt;
Chapters
&lt;/h3&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Introduction%20V2&amp;amp;referringTitle=Home&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Architecture%20and%20Design%20Solutions%20At%20a%20Glance&amp;amp;referringTitle=Home&quot;&gt;Architecture and Design Solutions At a Glance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Fast%20Track&amp;amp;referringTitle=Home&quot;&gt;Fast Track&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h4&gt; &lt;br /&gt;
Part I, Fundamentals 
&lt;/h4&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%201%20-%20Architecture%20Fundamentals&amp;amp;referringTitle=Home&quot;&gt;Chapter 1 - Fundamentals of Application Architecture &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=.NET%20Platform%20Overview%20V2&amp;amp;referringTitle=Home&quot;&gt;Chapter 2 - .NET Platform Overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%203%20-%20Architecture%20and%20Design%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 3 - Architecture and Design Guidelines&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h4&gt; &lt;br /&gt;
Part II, Design
&lt;/h4&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%204%20-%20Designing%20Your%20Architecture&amp;amp;referringTitle=Home&quot;&gt;Chapter 4 - Designing Your Architecture&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%205%20-%20Deployment%20Patterns&amp;amp;referringTitle=Home&quot;&gt;Chapter 5 - Deployment Patterns&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%206%20-%20Architectural%20Styles&amp;amp;referringTitle=Home&quot;&gt;Chapter 6 - Architectural Styles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%207%20-%20Quality%20Attributes&amp;amp;referringTitle=Home&quot;&gt;Chapter 7 - Quality Attributes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%208%20-%20Communication%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 8 - Communication Guidelines&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h4&gt; &lt;br /&gt;
Part III, Layers
&lt;/h4&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%209%20-%20Layers%20and%20Tiers&amp;amp;referringTitle=Home&quot;&gt;Chapter 9 - Layers and Tiers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2010%20-%20Presentation%20Layer%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 10 - Presentation Layer Guidelines&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2011%20-%20Business%20Layer%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 11 - Business Layer Guidelines&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2012%20-%20Data%20Access%20Layer%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 12 - Data Access Layer Guidelines&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2013%20-%20Service%20Layer%20Guidelines&amp;amp;referringTitle=Home&quot;&gt;Chapter 13 - Service Layer Guidelines&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h4&gt; &lt;br /&gt;
Part IV, Archetypes 
&lt;/h4&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2014%20-%20Application%20Archetypes&amp;amp;referringTitle=Home&quot;&gt;Chapter 14 - Application Archetypes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2015%20-%20Web%20Applications&amp;amp;referringTitle=Home&quot;&gt;Chapter 15 - Web Applications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2016%20-%20Rich%20Internet%20Applications%20%28RIA%29&amp;amp;referringTitle=Home&quot;&gt;Chapter 16 - Rich Internet Applications (RIA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2017%20-%20Rich%20Client%20Applications&amp;amp;referringTitle=Home&quot;&gt;Chapter 17 - Rich Client Applications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2018%20-%20Services&amp;amp;referringTitle=Home&quot;&gt;Chapter 18 - Services&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2019%20-%20Mobile%20Applications&amp;amp;referringTitle=Home&quot;&gt;Chapter 19 - Mobile Applications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2020%20-%20Office%20Business%20Applications%20%28OBA%29&amp;amp;referringTitle=Home&quot;&gt;Chapter 20 - Office Business Applications (OBA)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2021%20-%20SharePoint%20LOB%20Applications&amp;amp;referringTitle=Home&quot;&gt;Chapter 21 - SharePoint Line-Of-Business (LOB) Applications&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h4&gt; &lt;br /&gt;
Appendix
&lt;/h4&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Pattern%20Catalog%20V2&amp;amp;referringTitle=Home&quot;&gt;Cheat Sheet - patterns &amp;amp; practices Pattern Catalog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Presentation%20Technology%20Matrix&amp;amp;referringTitle=Home&quot;&gt;Cheat Sheet - Presentation Technology Matrix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Data%20Access%20Technology%20Matrix&amp;amp;referringTitle=Home&quot;&gt;Cheat Sheet - Data Access Technology Matrix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Workflow%20Technology%20Matrix&amp;amp;referringTitle=Home&quot;&gt;Cheat Sheet - Workflow Technology Matrix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Integration%20Technology%20Matrix&amp;amp;referringTitle=Home&quot;&gt;Cheat Sheet - Integration Technology Matrix&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h3&gt; &lt;br /&gt;
Errata Page
&lt;/h3&gt;&lt;ul&gt; 
&lt;li&gt;&lt;a href=&quot;http://apparchguide.codeplex.com/Wiki/View.aspx?title=Errata%20Page&amp;amp;referringTitle=Home&quot;&gt;Errata Page&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/patterns-and-practices-application-archi&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://lessthandot.com/&quot;&gt;LessThanDot&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>I was listening to show number 426 on dotnetrocks: <a href="http://www.dotnetrocks.com/default.aspx?showNum=426">Rob Boucher on Application Architecture Guidance!</a> They mentioned the <a href="http://www.codeplex.com/AppArchGuide">Patterns And Practices Application Architecture Guide 2.0</a>, this guide is available for free on codeplex.</p>

<p>Although it is a Microsoft technology centric guide, there should be chapters for every developer in your group. <br />
Here is one example from the book</p>

<h3> <br />
Key Design Principles
</h3><p>When getting started with your design, bear in mind the key principles that will help you to create architecture that meets &#8220;best practices,&#8221; minimizes costs and maintenance requirements, and promotes usability and extendibility. The key principles are:<br /></p><ul> 
<li><b>Separation of concerns</b>. Break your application into distinct features that overlap in functionality as little as possible.</li><li><b>Single Responsibility Principle</b>. Each component or a module should be responsible for only a specific feature or functionality.</li><li><b>Principle of least knowledge</b>.** A component or an object should not know about internal details of other components or objects. Also known as the Law of Demeter** (LoD).</li><li><b>Don&#8217;t Repeat Yourself (DRY)</b>. There should be only one component providing a specific functionality; the functionality should not be duplicated in any other component.</li><li><b>Avoid doing a big design upfront</b>. If your application requirements are unclear, or if there is a possibility of the design evolving over time, avoid making a large design effort prematurely. This design principle is often abbreviated as BDUF. </li><li><b>Prefer composition over inheritance</b>. Wherever possible, use composition over inheritance when reusing functionality because inheritance increases the dependency between parent and child classes, thereby limiting the reuse of child classes.</li> 
</ul>


<p>The nice thing is that each chapter has a resource section at the bottom so that you can dive deep into a specific topic mentioned in the chapter itself. This is great stuff and I recommend that you check out this guide. You also might want to listen to the dotnetrocks podcast about this guide: <a href="http://www.dotnetrocks.com/default.aspx?showNum=426">http://www.dotnetrocks.com/default.aspx?showNum=426</a></p>

<p><br /><br /><br />Here is a list of all the chapters, make sure you check out the cheat sheets</p>

<h3> <br />
Chapters
</h3><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Introduction%20V2&amp;referringTitle=Home">Introduction</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Architecture%20and%20Design%20Solutions%20At%20a%20Glance&amp;referringTitle=Home">Architecture and Design Solutions At a Glance</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Fast%20Track&amp;referringTitle=Home">Fast Track</a></li> 
</ul><h4> <br />
Part I, Fundamentals 
</h4><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%201%20-%20Architecture%20Fundamentals&amp;referringTitle=Home">Chapter 1 - Fundamentals of Application Architecture </a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=.NET%20Platform%20Overview%20V2&amp;referringTitle=Home">Chapter 2 - .NET Platform Overview</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%203%20-%20Architecture%20and%20Design%20Guidelines&amp;referringTitle=Home">Chapter 3 - Architecture and Design Guidelines</a></li> 
</ul><h4> <br />
Part II, Design
</h4><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%204%20-%20Designing%20Your%20Architecture&amp;referringTitle=Home">Chapter 4 - Designing Your Architecture</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%205%20-%20Deployment%20Patterns&amp;referringTitle=Home">Chapter 5 - Deployment Patterns</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%206%20-%20Architectural%20Styles&amp;referringTitle=Home">Chapter 6 - Architectural Styles</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%207%20-%20Quality%20Attributes&amp;referringTitle=Home">Chapter 7 - Quality Attributes</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%208%20-%20Communication%20Guidelines&amp;referringTitle=Home">Chapter 8 - Communication Guidelines</a></li> 
</ul><h4> <br />
Part III, Layers
</h4><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%209%20-%20Layers%20and%20Tiers&amp;referringTitle=Home">Chapter 9 - Layers and Tiers</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2010%20-%20Presentation%20Layer%20Guidelines&amp;referringTitle=Home">Chapter 10 - Presentation Layer Guidelines</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2011%20-%20Business%20Layer%20Guidelines&amp;referringTitle=Home">Chapter 11 - Business Layer Guidelines</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2012%20-%20Data%20Access%20Layer%20Guidelines&amp;referringTitle=Home">Chapter 12 - Data Access Layer Guidelines</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2013%20-%20Service%20Layer%20Guidelines&amp;referringTitle=Home">Chapter 13 - Service Layer Guidelines</a></li> 
</ul><h4> <br />
Part IV, Archetypes 
</h4><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2014%20-%20Application%20Archetypes&amp;referringTitle=Home">Chapter 14 - Application Archetypes</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2015%20-%20Web%20Applications&amp;referringTitle=Home">Chapter 15 - Web Applications</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2016%20-%20Rich%20Internet%20Applications%20%28RIA%29&amp;referringTitle=Home">Chapter 16 - Rich Internet Applications (RIA)</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2017%20-%20Rich%20Client%20Applications&amp;referringTitle=Home">Chapter 17 - Rich Client Applications</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2018%20-%20Services&amp;referringTitle=Home">Chapter 18 - Services</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2019%20-%20Mobile%20Applications&amp;referringTitle=Home">Chapter 19 - Mobile Applications</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2020%20-%20Office%20Business%20Applications%20%28OBA%29&amp;referringTitle=Home">Chapter 20 - Office Business Applications (OBA)</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Chapter%2021%20-%20SharePoint%20LOB%20Applications&amp;referringTitle=Home">Chapter 21 - SharePoint Line-Of-Business (LOB) Applications</a></li> 
</ul><h4> <br />
Appendix
</h4><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Pattern%20Catalog%20V2&amp;referringTitle=Home">Cheat Sheet - patterns &amp; practices Pattern Catalog</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Presentation%20Technology%20Matrix&amp;referringTitle=Home">Cheat Sheet - Presentation Technology Matrix</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Data%20Access%20Technology%20Matrix&amp;referringTitle=Home">Cheat Sheet - Data Access Technology Matrix</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Workflow%20Technology%20Matrix&amp;referringTitle=Home">Cheat Sheet - Workflow Technology Matrix</a></li><li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Cheat%20Sheet%20-%20Integration%20Technology%20Matrix&amp;referringTitle=Home">Cheat Sheet - Integration Technology Matrix</a></li> 
</ul><h3> <br />
Errata Page
</h3><ul> 
<li><a href="http://apparchguide.codeplex.com/Wiki/View.aspx?title=Errata%20Page&amp;referringTitle=Home">Errata Page</a></li> 
</ul><div class="item_footer"><p><small><a href="http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/patterns-and-practices-application-archi">Original post</a> blogged on <a href="http://lessthandot.com/">LessThanDot</a>.</small></p></div>]]></content:encoded>
								<comments>http://blogs.lessthandot.com/index.php/Architect/HardwareInfrastructureDesign/patterns-and-practices-application-archi#comments</comments>
			<wfw:commentRss>http://blogs.lessthandot.com/index.php/Architect/?tempskin=_rss2&#38;disp=comments&#38;p=358</wfw:commentRss>
		</item>
			</channel>
</rss>
