<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34418377</id><updated>2011-11-28T00:46:52.243Z</updated><category term='Windows Mobile'/><category term='Visual Studio'/><category term='Vista'/><category term='Twitter'/><category term='MVC'/><category term='Podcast'/><category term='CAB'/><category term='Review'/><category term='.Net'/><category term='Windows Update'/><category term='DDD7'/><category term='McAfee'/><category term='Azure'/><category term='Visual Studio 2010'/><category term='Skype'/><category term='Testing'/><category term='CSLA'/><category term='Mae'/><category term='WF'/><category term='Assault Course'/><category term='NxtGen'/><category term='Visual Studio 2008'/><category term='Games'/><category term='Live'/><category term='DDD8'/><category term='Geneva'/><category term='Parallel Extensions'/><category term='Debugging'/><category term='Live Messenger'/><category term='DDD'/><category term='64 bit'/><category term='eBook'/><category term='Windows 7'/><category term='nHibernate'/><category term='eReader'/><category term='.Net 4.0'/><category term='Holiday'/><category term='VHD'/><category term='WF 4.0'/><category term='SP1'/><category term='Workflow'/><category term='Developer Day 7'/><category term='Birthday'/><category term='Session'/><category term='SCSF'/><category term='ReMix'/><category term='TechEd'/><category term='WM'/><category term='Quake'/><category term='PRISM'/><category term='TypeMock'/><category term='Agile'/><category term='WCF'/><category term='PDC'/><category term='DDD South West'/><category term='Service Pack 1'/><category term='SSRS'/><category term='VS2010'/><category term='BSOD'/><category term='VS'/><category term='Ready Steady Speak'/><category term='ASP.Net'/><category term='Virtual Hard Disk'/><category term='DDDScotland'/><category term='Silverlight'/><category term='Ireland'/><category term='Windows Identity Framework'/><category term='WatiN'/><title type='text'>John's Corner</title><subtitle type='html'>NxtGen Southampton stuff and random observations from the .Net world...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>77</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34418377.post-531909212746191747</id><published>2011-01-18T14:44:00.002Z</published><updated>2011-01-18T14:44:46.321Z</updated><title type='text'>This blog has moved!</title><content type='html'>I can now be found with all my articles at &lt;a href="http://blog.batfishsolutions.com/"&gt;blog.batfishsolutions.com&lt;/a&gt; :)&lt;script type="text/javascript"&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;/script&gt; &lt;script type="text/javascript"&gt;var pageTracker = _gat._getTracker("UA-6423436-1");pageTracker._trackPageview();&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-531909212746191747?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/531909212746191747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=531909212746191747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/531909212746191747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/531909212746191747'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2011/01/this-blog-has-moved.html' title='This blog has moved!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5428468142886319864</id><published>2010-06-06T22:10:00.001Z</published><updated>2010-06-06T22:10:20.130Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD South West'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Slides and code from DDDSW</title><content type='html'>&lt;p&gt;I’ve popped my slides and code on my sky drive, they can be downloaded from here:&lt;/p&gt; &lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-b80e09d7827ce7cc.skydrive.live.com/embedicon.aspx/PRISM%20VS2010" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;I had an excellent time, and really enjoyed giving the talk, as well as going to the other talks :)&amp;#160; Guy and the team deserve every kudos going for putting on such an excellent event!&amp;#160; Hopefully I’ll be back next year :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5428468142886319864?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5428468142886319864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5428468142886319864' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5428468142886319864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5428468142886319864'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2010/06/slides-and-code-from-dddsw.html' title='Slides and code from DDDSW'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5462898956135538060</id><published>2010-03-18T12:35:00.002Z</published><updated>2010-06-14T20:56:50.605Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='DDDScotland'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD South West'/><category scheme='http://www.blogger.com/atom/ns#' term='Session'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Upcoming talks and sessions</title><content type='html'>&lt;p&gt;So I didn’t make it into &lt;a href="http://developerdeveloperdeveloper.com/scotland2010/" target="_blank"&gt;DDD Scotland&lt;/a&gt; either, again the competition was fierce!  Worried?  Me?  Not at all!  I’ve currently got 3 sessions submitted to &lt;a href="http://dddsouthwest.com/" target="_blank"&gt;DDD South West&lt;/a&gt;! MUHAHAHAHAAA!  As before I’ve submitted my intro to PRISM and intro to Workflow 4.0, but this time I’ve also added in a new Unity based session.  So vote for me!  I’ll get into DDD eventually! :D&lt;/p&gt;  &lt;p&gt;In other news I’ve got a few talks lined up at the GL.NET and VBUG User Groups.  The dates are:&lt;/p&gt;  &lt;p&gt;24th May VBUG Portsmouth – &lt;a href="http://www.vbug.co.uk/events/default.aspx?region=Portsmouth" target="_blank"&gt;Introduction to PRISM&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5th June DDD South West – Hopefully I’ll get in!&lt;/p&gt;  &lt;p&gt;16th June VBUG Bristol –&lt;a href="http://www.vbug.co.uk/Events/June-2010/VBUG-Bristol-A-Spin-Around-WF-40.aspx"&gt; Introduction To Workflow&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;? September GL.NET – Unity &amp;amp; IoC (link and better name to follow)&lt;/p&gt;  &lt;p&gt;So what about &lt;a href="http://www.nxtgenug.net/Region.aspx?RegionID=9" target="_blank"&gt;NxtGenUG Southampto&lt;/a&gt;n I hear you cry!  Well we’ve got a cracking line up coming up over the coming months.  Tonight we’ve got &lt;a href="http://neildoesdotnet.blogspot.com/" target="_blank"&gt;Neil Robbins&lt;/a&gt; coming down from the big smoke to do his talk on Document Databases.&lt;/p&gt;  &lt;p&gt;Then on the &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=301" target="_blank"&gt;15th April&lt;/a&gt; we join in the &lt;a href="http://www.microsoft.com/uk/techdays/" target="_blank"&gt;UK Tech Days&lt;/a&gt; launch festivities with our own Richard Costal talking about Silverlight 4, and have a special guest from Microsoft joining us.  Details to follow on the special guest!&lt;/p&gt;  &lt;p&gt;On the &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=294" target="_blank"&gt;27th May&lt;/a&gt; we have all round Guru Liz Keogh joining us to talk about BDD.  This should prove to be an excellent session, because if you have any examples you’d like Liz to apply BDD during the session then submit them to me via email me at &lt;a href="mailto:JohnMc@NxtGenUG.net"&gt;JohnMc@NxtGenUG.net&lt;/a&gt; and she’ll select the best ones.&lt;/p&gt;  &lt;p&gt;Then on &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=303" target="_blank"&gt;24th June&lt;/a&gt; we’ve got Phil Pursglove coming down to discuss Microsoft’s exciting new Velocity technology.&lt;/p&gt;  &lt;p&gt;An absolutely cracking line up I’m sure you’re agree!  In fact what are you waiting for?! Go register now! :D&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5462898956135538060?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5462898956135538060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5462898956135538060' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5462898956135538060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5462898956135538060'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2010/03/upcoming-talks-and-sessions.html' title='Upcoming talks and sessions'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3541110958882959311</id><published>2010-01-18T10:55:00.001Z</published><updated>2010-01-18T10:55:42.630Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='DDDScotland'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD8'/><title type='text'>DDD8 &amp; DDDScotland</title><content type='html'>&lt;p&gt;So I didn’t get any sessions into DDD8, which isn’t surprising considering the number of excellent sessions that have been proposed this year.&amp;#160; But it does mean that I get to go to all the sessions I want to and not have to worry about speaking :)&lt;/p&gt;  &lt;p&gt;But I’m not out of the running yet, as I have submitted the same sessions to DDD Scotland, so there is still every chance one of my sessions will get voted in.&amp;#160; The voting for DDD Scotland opened today, so go vote for my sessions now! ;)&lt;/p&gt;  &lt;p&gt;The voting link is &lt;a href="http://www.developerdeveloperdeveloper.com/scotland2010/Users/VoteForSessions.aspx"&gt;http://www.developerdeveloperdeveloper.com/scotland2010/Users/VoteForSessions.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3541110958882959311?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3541110958882959311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3541110958882959311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3541110958882959311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3541110958882959311'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2010/01/ddd8-dddscotland.html' title='DDD8 &amp;amp; DDDScotland'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6719290343186651227</id><published>2010-01-12T09:16:00.001Z</published><updated>2010-01-12T09:16:38.492Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD8'/><title type='text'>DDD8 Voting open!</title><content type='html'>&lt;p&gt;Voting has opened for DDD8, so pop over there now and vote!&amp;#160; &lt;a href="http://developerdeveloperdeveloper.com/ddd8/Users/VoteForSessions.aspx"&gt;http://developerdeveloperdeveloper.com/ddd8/Users/VoteForSessions.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ve put in 3 sessions this time:&lt;/p&gt;  &lt;p&gt;Introduction to Windows Workflow Foundation 4.0&lt;/p&gt;  &lt;p&gt;Introduction to PRISM&lt;/p&gt;  &lt;p&gt;PRISM and MEF, Can they be friends&lt;/p&gt;  &lt;p&gt;So if you’re interested in seeing any of these, vote for me! ;)&amp;#160; I’ve also submitted the same sessions for DDD Scotland in May.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6719290343186651227?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6719290343186651227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6719290343186651227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6719290343186651227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6719290343186651227'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2010/01/ddd8-voting-open.html' title='DDD8 Voting open!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1752388435168207367</id><published>2010-01-09T00:12:00.003Z</published><updated>2010-01-09T00:15:07.643Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Little things…</title><content type='html'>&lt;div style="text-align: center;"&gt;… are making the whole Visual Studio 2010 experience so much better.  I know there are a whole range of fantastic features coming in Visual Studio 2010 and everyone’s blogging about them.  But for me there are a whole host of little ones too that are going into making the next version better.&lt;/div&gt;  &lt;p&gt;For instance, we’re all familiar with the Quick Watch and Watch Panes.  They’re invaluable when you’re poking around debugging stuff.  But something new that has entered VS 2010 is the ability to pin watches onto the code itself.  So you can hover over a variable like you always have to see its value&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/S0fKcK-jrTI/AAAAAAAAAM0/ecyfAS7A39s/s1600-h/debug.png"&gt;&lt;img src="http://1.bp.blogspot.com/_Ca_lHPWeme0/S0fKcK-jrTI/AAAAAAAAAM0/ecyfAS7A39s/s320/debug.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5424526861522939186" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 94px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;but now you can pin that value in place and add comments, so whenever you debug into that code, your pinned value is displayed&lt;/p&gt;  &lt;p&gt;&lt;object width="489" height="162"&gt; &lt;param name="movie" value="http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/jingswfplayer.swf"&gt; &lt;param name="quality" value="high"&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/FirstFrame.jpg&amp;amp;containerwidth=489&amp;amp;containerheight=162&amp;amp;content=http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/2010-01-09_0004.swf"&gt; &lt;param name="allowFullScreen" value="true"&gt; &lt;param name="scale" value="showall"&gt; &lt;param name="allowScriptAccess" value="always"&gt; &lt;param name="base" value="http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/"&gt;  &lt;embed src="http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="489" height="162" type="application/x-shockwave-flash" allowscriptaccess="always" flashvars="thumb=http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/FirstFrame.jpg&amp;amp;containerwidth=489&amp;amp;containerheight=162&amp;amp;content=http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/2010-01-09_0004.swf" allowfullscreen="true" base="http://content.screencast.com/users/JohnMcLoughlin/folders/Jing/media/6a2985c2-24e0-42b1-aead-f0db26fdd086/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;Which is pretty darn cool :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1752388435168207367?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1752388435168207367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1752388435168207367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1752388435168207367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1752388435168207367'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2010/01/little-things.html' title='Little things…'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ca_lHPWeme0/S0fKcK-jrTI/AAAAAAAAAM0/ecyfAS7A39s/s72-c/debug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7393297648462552672</id><published>2009-11-10T18:43:00.002Z</published><updated>2009-11-10T18:54:46.545Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mae'/><title type='text'>It’s a girl!</title><content type='html'>&lt;p&gt;On Monday 2nd November at 19:12 my wife give birth to a beautiful little girl who we’ve since named Mae Ellen McLoughlin :) Mae was brought into this world at home in a birth pool with the assistance of Eleanor May-Johnson as Midwife. Eleanor is an independent midwife and just plain rocks! If you’re planning a birth in the Hampshire/Dorset area I’d highly recommend hiring Eleanor. You can check out her web site at &lt;a href="http://www.hampshirehomebirths.co.uk/"&gt;http://www.hampshirehomebirths.co.uk/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cue the cute piccies of mum and baby! :)&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/Svm1wDfKj_I/AAAAAAAAAMs/4xQEWevQTRs/s1600-h/P1010795.JPG"&gt;&lt;img style="width: 320px; height: 240px; cursor: pointer" id="BLOGGER_PHOTO_ID_5402549065181990898" border="0" alt="" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/Svm1wDfKj_I/AAAAAAAAAMs/4xQEWevQTRs/s320/P1010795.JPG" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/Svm1vwV29NI/AAAAAAAAAMk/wXKf492yRM4/s1600-h/P1010778.JPG"&gt;&lt;img style="width: 240px; height: 320px; cursor: pointer" id="BLOGGER_PHOTO_ID_5402549060042683602" border="0" alt="" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/Svm1vwV29NI/AAAAAAAAAMk/wXKf492yRM4/s320/P1010778.JPG" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/Svm1vq3rovI/AAAAAAAAAMc/DfEOSAh1w6c/s1600-h/P1010776.JPG"&gt;&lt;img style="width: 240px; height: 320px; cursor: pointer" id="BLOGGER_PHOTO_ID_5402549058573935346" border="0" alt="" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/Svm1vq3rovI/AAAAAAAAAMc/DfEOSAh1w6c/s320/P1010776.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now all we got to do now is to figure out baby communication! :D &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7393297648462552672?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7393297648462552672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7393297648462552672' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7393297648462552672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7393297648462552672'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/11/its-girl.html' title='It’s a girl!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ca_lHPWeme0/Svm1wDfKj_I/AAAAAAAAAMs/4xQEWevQTRs/s72-c/P1010795.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6915851857226571879</id><published>2009-09-21T08:22:00.001Z</published><updated>2009-09-21T08:22:19.876Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='TechEd'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><title type='text'>Win a ticket to TechEd Berlin!</title><content type='html'>&lt;p&gt;As we approach &lt;a href="http://www.msteched.com/europe/public/registration-info.aspx" target="_blank"&gt;TechEd 2009&lt;/a&gt; in Berlin, &lt;a href="http://www.nxtgenug.net/" target="_blank"&gt;NxtGenUG&lt;/a&gt; will be running our yearly contest to win a ticket (no flights or accommodation included) for the event.&lt;/p&gt;  &lt;p&gt;So what do you have to do?&amp;#160; Well, pop over to the &lt;a href="http://www.nxtgenug.net/NewsArticle.aspx?ArticleID=343" target="_blank"&gt;competition page&lt;/a&gt; and give us a caption on what’s happening between Richard Costall and John Price :)&amp;#160; Simple eh?&amp;#160; So what are you waiting for?&amp;#160; Get over to the &lt;a href="http://www.nxtgenug.net/NewsArticle.aspx?ArticleID=343" target="_blank"&gt;competition page&lt;/a&gt; and starting captioning!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6915851857226571879?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6915851857226571879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6915851857226571879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6915851857226571879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6915851857226571879'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/09/win-ticket-to-teched-berlin.html' title='Win a ticket to TechEd Berlin!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-8663418835123593196</id><published>2009-09-17T19:54:00.002Z</published><updated>2009-09-17T19:57:25.558Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='eReader'/><category scheme='http://www.blogger.com/atom/ns#' term='eBook'/><title type='text'>My new eBook reader</title><content type='html'>&lt;p&gt;A couple of weeks ago I treated myself to a new toy!  I got myself a Sony PRS 505 just as Sony announced there new models.  I’m not worried though, as I got it for £149 form &lt;a href="http://www.johnlewis.com/Search/Search.aspx?SearchTerm=prs+505" target="_blank"&gt;John Lewis&lt;/a&gt; in sexy Red :)&lt;/p&gt;  &lt;p&gt;So why did I buy one?  Well I’ve got an increasingly large number of PDFs and eBooks and I hate reading them on the screen.  I also wanted to be able to read them away from the computer.  I choose the PRS because it is currently the cheapest of the bunch and I wanted to see if I would get on with a reader.&lt;/p&gt;  &lt;p&gt;So, first impressions.  The PRS 505 has a nice crisp clear screen and I haven’t had any problems with glare off of it.  The page refresh is definitely slower in PDFs compared to the LFR/ePub books, but not to the extent where it’s a problem.  In fact, I did my review of &lt;a href="http://blog.batfishsolutions.com/2009/09/review-art-of-unit-testing-by-roy.html" target="_blank"&gt;The Art of Unit Testing&lt;/a&gt; using it.  The PDF layout isn’t ideal as it can be a bit small, but the reader can increase the font size :)  So do I like it?  Yes, I think it’s fantastic!&lt;/p&gt;  &lt;p&gt;The downside?  There is one, and it’s the software you get with it.  Sony have really let us down with their library software.  First off it regularly crashes if you either try syncing all your books in one go, or on some large books.  Secondly the UI is terrible!  They’ve based it on iTunes off yester year and the feedback for copying UI files it terrible.  A single progress bar that never moves :(  Guys, seriously, progress bar per book, not per number of books!  Lastly, and this is the biggest shame on Sony, it’s not Windows 7 compatible!  Come on, Windows 7 has been available for an age to developers now, why isn’t it compatible.  Oh, and before you say well the OS X version is better, it’s not I’ve tried it on my Mac with &lt;strong&gt;&lt;u&gt;exactly&lt;/u&gt;&lt;/strong&gt; the same problems!&lt;/p&gt;  &lt;p&gt;So to sum up, an excellent reader let down terribly by the software.  Now that I know I like eReader, I’m looking at getting a BeBook.  If you’re getting a BeBook, please help me by using my email address imaji dot wolfshead at ntlworld. dot com in the discount coupon box and you'll get 25 Euros off!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-8663418835123593196?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/8663418835123593196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=8663418835123593196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8663418835123593196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8663418835123593196'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/09/my-new-ebook-reader.html' title='My new eBook reader'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-8202691023860492823</id><published>2009-09-14T13:11:00.005Z</published><updated>2009-09-14T13:50:34.450Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>Review - The Art of Unit testing by Roy Osherove</title><content type='html'>I was lucky enough to get hold of a review copy of &lt;a href="http://www.artofunittesting.com/"&gt;The Art of Unit Testing&lt;/a&gt; by &lt;a href="http://weblogs.asp.net/ROsherove/"&gt;Roy Osherove&lt;/a&gt; from &lt;a href="http://www.manning.com/"&gt;Manning&lt;/a&gt;.&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;I thought this book was excellent, but it came to me 6 years too late! If you're just starting out down the unit testing/TDD route then I would highly recommend you get this book and give it a read. It's broken up into 4 parts, each part building on the concepts from the previous part.&lt;br /&gt;&lt;br /&gt;The first part sets the arena for the rest of the book by providing concise definitions of what Unit and Integration tests are, as well as introducing the reader to the concept of Test Driven Development (TDD). Part 1 ends with chapter 2 that walks the reader through an example of putting together their first unit test.&lt;br /&gt;&lt;br /&gt;The second part then starts looking at ways of making your code loosely coupled so that you can test more effectively and start using Fake objects. Roy does this by introducing the concept of Dependency Injection (DI), otherwise known as Inversion of Control (IoC), and then how you can utilise DI to make use of Stub and Mock objects in your tests. The second part ends with the introduction of Isolation Frameworks and looks at how they can ease the complexity of using Stubs and Mocks in your Unit Tests.&lt;br /&gt;&lt;br /&gt;The third part then starts moving in to the more practical side of Unit testing now that the groundwork has been established in the first 2 parts. Roy takes the reader through the various patterns that can be used for test classes and how you can utilise them in a Test Hierarchy. Roy highlights that a Automated Build process is essential for running your test regularly to pick up any breaking changes that may have occurred in your app. Chapter 7 then moves onto the critical area of how to write tests that are maintainable, trustworthy and readable.&lt;br /&gt;&lt;br /&gt;The final part is aimed at the the devs out there who are coming from existing organisations that don't do Unit Testing, but want to introduce it, or have started Unit Testing in their new app, but want to start Unit Testing their legacy code. Roy provides some good pointers on how to get Unit Testing accepted by teams less than eager to pursue new practices :)&lt;br /&gt;&lt;br /&gt;The book also contains 2 appendices, one attempts to answer the question of how much testing should influence the design process and the second provides a good overview of the Isolation Frameworks, Tools and Test Frameworks currently available to make your life a little bit easier when you're testing.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If you're looking for a good book to get yourself, your fellow developers or team up to speed with good Unit Testing practices, then I'd highly recommend this book. If however you're a TDD guru, or have been unit testing for a while you probably won't get as much out of this as those who are new to Unit Testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-8202691023860492823?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/8202691023860492823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=8202691023860492823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8202691023860492823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8202691023860492823'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/09/review-art-of-unit-testing-by-roy.html' title='Review - The Art of Unit testing by Roy Osherove'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6277405362671434785</id><published>2009-09-07T17:40:00.007Z</published><updated>2009-09-14T20:18:33.101Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 - Part 2. The Flowchart Workflow &amp; Designer</title><content type='html'>&lt;div style="text-align: left;"&gt;UPDATE – Now Beta 1 Friendly!&lt;/div&gt;  &lt;p&gt;&lt;span id="preserve796089f365a849cb871bd6d8ba7dbf53" class="wlWriterPreserve"&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;&lt;/span&gt;The following is based on Beta 1 of WF 4.0 and as such might change or be missing in futures releases.&lt;br /&gt;&lt;br /&gt;In Part 1 of this series of articles on WF 4.0 we started by looking at the new Sequential Workflow Designer, and creating a basic Sequential Workflow that added greeted a User. In this second part we will be looking at the new Flowchart Workflow and its designer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;So whats a Flowchart Workflow?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Flowchart Workflow is a new hybrid of the Sequential and State Machine Workflows that we are already familiar with from 3.x. Even though WF was designed to be extensible so that people could extend it with their own custom Workflows, Microsoft found that a very large percentage of their customers using WF were bending over backwards to crowbar their Workflows into either the Sequential or State Machine types when neither were appropriate. From this Microsoft identified the need for a hybrid type, and this is the result.&lt;br /&gt;&lt;br /&gt;So what do you use it for? This is easier to follow if we define when you'd want to use a Sequential and State Machine Workflow first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;So when do you use a Sequential Workflow?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The Sequential Workflow is ideal when you want to model a process that has a defined start and end points and follows a defined (linear) path through a number of Activities. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SbeJNLlrMII/AAAAAAAAAG8/pcR_rLWThEI/s1600-h/sequential3.5.png"&gt;&lt;img style="text-align: center; margin: 0px auto 10px; width: 266px; display: block; height: 320px; cursor: pointer" id="BLOGGER_PHOTO_ID_5311865145048903810" border="0" alt="" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SbeJNLlrMII/AAAAAAAAAG8/pcR_rLWThEI/s320/sequential3.5.png" /&gt;&lt;/a&gt;As you can see even though we have branches in the Workflow, we always go through the same activities and end at our defined point. The Sequential is ideal for modelling Processes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;So when do you use a State Machine Workflow?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The State Machine Workflow is ideal when you want to model a process that doesn't have a defined path and could be one of many paths that will be taken through the Activities. A State Machine does not necessarily need an End Point. Here's an example we're all familiar with.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SbeH0bvax6I/AAAAAAAAAGs/9IabOoFDCYs/s1600-h/StateMachine.png"&gt;&lt;img style="text-align: center; margin: 0px auto 10px; width: 320px; display: block; height: 145px; cursor: pointer" id="BLOGGER_PHOTO_ID_5311863620376381346" border="0" alt="" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SbeH0bvax6I/AAAAAAAAAGs/9IabOoFDCYs/s320/StateMachine.png" /&gt;&lt;/a&gt;The State Machine was for Version Control, and as we all know there is no definite path as to how we perform our check in/check outs. One of the best uses for the State Machine Workflow is for Lifecycles of objects, where we have a defined number of States an object can be, in but the direction of state changes comes from an external source.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;What about this new Flowchart Workflow?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So hopefully you've now got some idea as to what the original Workflows could do and where they might be used. We can now take a look at the Flowchart Workflow. One of the biggest differences between 3.x and 4.0 is that there is no longer any restriction on which kind of Workflow an Activity can be used on, so our Flowchart Workflow can use exactly the same activities as we did on the Sequential example.&lt;br /&gt;&lt;br /&gt;So first off the designer.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVaJLVIvbI/AAAAAAAAALs/IkpzmiXNgKQ/s1600-h/FlowchartDesigner.png"&gt;&lt;img src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVaJLVIvbI/AAAAAAAAALs/IkpzmiXNgKQ/s320/FlowchartDesigner.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378804443670691250" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 220px; " /&gt;&lt;/a&gt;&lt;br /&gt;As you can see we have the same features as before from the Sequential designer, but this time we have different rules as to how the Activities interact. First off we no longer get connections for free between activities. This is of course down to the nature of the Workflow type, as the designer can't guess what Activities we want to join together and how. So to join Activities together we select the start Activity and then drag one of the edge connectors to the target Activity's edge connector.&lt;br /&gt;&lt;br /&gt;&lt;span id="preserveec9fc91badcd433b9437f41da57e9a38" class="wlWriterPreserve"&gt;&lt;embed height="232" type="application/x-shockwave-flash" width="186" src="http://content.screencast.com/users/ImajiWolfshead/folders/Jing/media/f9373624-cb21-41d6-8d31-ff695a2e1f86/jingswfplayer.swf" scale="showall" base="http://content.screencast.com/users/ImajiWolfshead/folders/Jing/media/f9373624-cb21-41d6-8d31-ff695a2e1f86/" allowfullscreen="true" flashvars="thumb=http://content.screencast.com/users/ImajiWolfshead/folders/Jing/media/f9373624-cb21-41d6-8d31-ff695a2e1f86/FirstFrame.jpg&amp;amp;containerwidth=186&amp;amp;containerheight=232&amp;amp;loaderstyle=jing&amp;amp;content=http://content.screencast.com/users/ImajiWolfshead/folders/Jing/media/f9373624-cb21-41d6-8d31-ff695a2e1f86/ConnectActivities.swf" allowscriptaccess="always" bgcolor="#FFFFFF" quality="high"&gt;&lt;/embed&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Again Variable and Arguments are used in exactly the same way as we did with the Sequential Designer. The Flowchart Workflow currently comes with 3 extra Items (not Activities) that allow us to add decision logic into the Workflow. The first is the FlowDecision which acts as a simple If statement in the logic.&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVakSCLLFI/AAAAAAAAAL8/Bgc-2VYhczc/s1600-h/Decision.png"&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVakSCLLFI/AAAAAAAAAL8/Bgc-2VYhczc/s320/Decision.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378804909326675026" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 112px; height: 86px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SqVakmQ14eI/AAAAAAAAAME/6LRWsrqZkR0/s1600-h/DecisionProperties.png"&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SqVakmQ14eI/AAAAAAAAAME/6LRWsrqZkR0/s320/DecisionProperties.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378804914756903394" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 277px; height: 320px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is actually a very simple Item to use, again dragging from either the green True connector or red False connector to another Activity will give you the path when either a True or False result comes from the Condition you set. The Condition is something that evaluates and returns a boolean result. So far I've been using things like VariableName.Equals("StringToMatch") for the condition. I suspect that in future releases this may have some sort of Expression Editor to it (but this is just my speculation).&lt;br /&gt;&lt;br /&gt;The second new item is the FlowSwitch, and looks very similar to the FlowDecision.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVa2DicTLI/AAAAAAAAAMM/RVLERw4Mcn0/s1600-h/Flowswitch.png"&gt;&lt;img src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SqVa2DicTLI/AAAAAAAAAMM/RVLERw4Mcn0/s320/Flowswitch.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378805214673128626" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 74px; height: 71px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SqVa2nU_ZII/AAAAAAAAAMU/vBQdFeXGzho/s1600-h/FlowswitchProperties.png"&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SqVa2nU_ZII/AAAAAAAAAMU/vBQdFeXGzho/s320/FlowswitchProperties.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378805224280384642" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 277px; height: 320px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;OK, so lets put this altogether. I'm going to create a simple Workflow for Pizza management at User Group talks. It's going to ask us our location, if its the home region of &lt;a href="http://www.nxtgenug.net/Region.aspx?RegionID=9"&gt;Southampton&lt;/a&gt; then it'll tell me I need to order Pizza. If it's not Southampton, I'm doing a WF talk somewhere else so I remind the User Group leader. Then because I could in theory be doing a marathon number of talks in one day, it'll ask if my location has changed and if it has we go back to the beginning, otherwise the flow end.&lt;br /&gt;&lt;br /&gt;Using the custom Readline and Writeline Activities that were also used on the Sequential Workflow, this is the result. For details as to how to bind to Variables and create them, see &lt;a href="http://blog.batfishsolutions.com/2009/08/wf-40-part-1-sequential-designer.html"&gt;Part 1&lt;/a&gt;&lt;a class="link" href="http://blog.batfishsolutions.com/2009/03/wf-40-part-1-sequential-designer.html" target="_blank"&gt;.&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SqVaJhX1RXI/AAAAAAAAAL0/Aw-fG0oY-Zg/s1600-h/Flowchart.png"&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SqVaJhX1RXI/AAAAAAAAAL0/Aw-fG0oY-Zg/s320/Flowchart.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5378804449587578226" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 307px; height: 320px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A screen cast with the construction of the Pizza Flowchart, will follow shortly.&lt;/p&gt;  &lt;p&gt;In Part 3, we will be looking at creating a custom Activity.&lt;br /&gt;&lt;span id="preserve87280a4a35c04419aa0bc941b9433186" class="wlWriterPreserve"&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6277405362671434785?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6277405362671434785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6277405362671434785' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6277405362671434785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6277405362671434785'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/09/wf-40-part-2-flowchart-workflow.html' title='WF 4.0 - Part 2. The Flowchart Workflow &amp;amp; Designer'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ca_lHPWeme0/SbeJNLlrMII/AAAAAAAAAG8/pcR_rLWThEI/s72-c/sequential3.5.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7672838793211192416</id><published>2009-08-20T07:57:00.017Z</published><updated>2009-08-21T16:40:13.417Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 - Part 1. The Sequential Designer</title><content type='html'>&lt;div style="text-align: left;"&gt;UPDATE – Now Beta 1 Friendly :)&lt;/div&gt;  &lt;p&gt;This is the first in a number of articles that look at the new features in the WF 4.0, and as such the features might change or be missing in futures releases.&lt;br /&gt;&lt;br /&gt;Windows Workflow Foundation 4.0 (WF), along with .NET 4.0 was announced at PDC 2008 and those present were lucky enough to get their hands on a VPC image. The Beta 1 VS2010 ISO is now available for download, you can get it from &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" target="_blank"&gt;HERE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So what's all the fuss about? Well put simply, WF as we know it has been given a complete overhaul from the ground up! They're rewritten the entire foundation and simplified it no end. WF is now far simpler to use and easier to extend. So in the coming series of articles I'll walk you through the new features showing how they differ to the 3.x version.&lt;br /&gt;&lt;br /&gt;We're start off with the new Designers provided with WF 4.0. I can't show you the State Machine Designer, as it has been dropped from the 4.0 release.  Instead we’ll be getting the Sequential Designer, and the new Flowchart Designer which is kind of a Sequential/State Machine hybrid.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Workflow Designers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first thing you notice with the designers is that they are now written in WPF! This gives a whole host of advantages to the Designer experience, first off you get all the standard benefits of a WPF application (zooming, scaling, etc) but more importantly it is far more responsive that the old 3.x designer. This has a knock on effect on how you can use Activities on the designer, but we'll come onto that later. Lets have a look at the Sequential Designer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Et8QtgvI/AAAAAAAAAKM/IT9TIkJ3Il4/s1600-h/Sequence.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 258px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Et8QtgvI/AAAAAAAAAKM/IT9TIkJ3Il4/s320/Sequence.png" alt="" id="BLOGGER_PHOTO_ID_5371955117839713010" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The designer hasn't changed much from its transition to 3.x, you still insert activities in a vertical line onto it's surface. But what has changed are the addition of a couple of very small innocuous buttons in the bottom left of the designer called "Arguments" and "Variables".&lt;br /&gt;&lt;br /&gt;Arguments are the method into which you pass values from the outside world into the Workflow you'll be executing, or from a Workflow into an Activity. Previously in 3.x to pass Arguments into a Workflow this meant dropping into code and adding a number of Dependency Properties in by hand.&lt;br /&gt;&lt;br /&gt;So how do you add Arguments to a Workflow in 4.0? Easy, you click the Arguments button and add each Argument into the dialog that appears. &lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/So0EuXvaqhI/AAAAAAAAAKU/DwEgmHDzb08/s1600-h/Arguments.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 109px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/So0EuXvaqhI/AAAAAAAAAKU/DwEgmHDzb08/s320/Arguments.png" alt="" id="BLOGGER_PHOTO_ID_5371955125216258578" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Give the Argument a name, select a Direction, a Type and if required a Default value.  Once complete, you’ve created your first Argument.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Eu1CFFoI/AAAAAAAAAKc/-FBC8_qxYKU/s1600-h/ArgumentsCompleted.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 108px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Eu1CFFoI/AAAAAAAAAKc/-FBC8_qxYKU/s320/ArgumentsCompleted.png" alt="" id="BLOGGER_PHOTO_ID_5371955133079164546" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As you can see, we have the choice of assigning a direction to the Arguments. This does exactly as you'd expect, so values are either taken In (like passing by reference), In Out (like passing by Value), Out (return a value) or as a Property.&lt;br /&gt;&lt;br /&gt;But how do you actually get the Arguments into a Workflow? This hasn't changed at all, you still pass in a Dictionary with string keys for each of the values. The key relates to the name of the Argument it will be assigned to.&lt;br /&gt;&lt;br /&gt;The Variables functionality is new in WF 4.0 and designer to solve a problem of complexity from 3.x. In 3.x you would have activities binding to each other, but this could lead to some very odd behaviour if the activities bound to the wrong activity and make things complex as an Activity could bind to another activity from either end of a Workflow. &lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/Sa_Hnm3XGnI/AAAAAAAAAEs/9USjufznSn0/s1600-h/ActivitiesBinding.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 138px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5309681968954677874" alt="" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/Sa_Hnm3XGnI/AAAAAAAAAEs/9USjufznSn0/s320/ActivitiesBinding.png" border="0" /&gt;&lt;/a&gt;So what the WF team introduced in 4.0 is the concept of variables within a Workflow. Instead of binding Activities to other Activities we now have a broker in the middle to hold the value. It sounds terrible and a bit like a global variable, but it does work very well and is only scoped to the parent Workflow or child Activity, so it's a lot more like Members in a Class. You could almost go as far to say the Workflow is now stateful, as it contains values that change as it executes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sa_H0_ITWSI/AAAAAAAAAE0/RIDPcwAOF1s/s1600-h/ActivitiesWithvariables.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 127px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5309682198806485282" alt="" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sa_H0_ITWSI/AAAAAAAAAE0/RIDPcwAOF1s/s320/ActivitiesWithvariables.png" border="0" /&gt;&lt;/a&gt;So what does the Variables dialog look like?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/So0EvQ5tLII/AAAAAAAAAKk/uf-6C5zyXmo/s1600-h/Variables.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 108px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/So0EvQ5tLII/AAAAAAAAAKk/uf-6C5zyXmo/s320/Variables.png" alt="" id="BLOGGER_PHOTO_ID_5371955140560235650" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;To create a new Variable supply a Name, Type and if needed a default Value.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Fg5hZ4ZI/AAAAAAAAAK0/zs26U9aF_2w/s1600-h/VariablesPopulated.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 206px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Fg5hZ4ZI/AAAAAAAAAK0/zs26U9aF_2w/s320/VariablesPopulated.png" alt="" id="BLOGGER_PHOTO_ID_5371955993277751698" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ok, so what about when we change the context of the Workflow designer? What happens then? Well in that case the Variables window will show all of the Variables available to the selected Activity from the parent Activity (or Workflow) and above.  Here you can see that the child Sequence Activity has 2 Variables available to it.  AVariable owned by the parent Sequence Activity and it’s own AScopedVariable.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/So0EwHZFIlI/AAAAAAAAAKs/hme1tU4fAis/s1600-h/VariablesChildPopulated.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 257px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/So0EwHZFIlI/AAAAAAAAAKs/hme1tU4fAis/s320/VariablesChildPopulated.png" alt="" id="BLOGGER_PHOTO_ID_5371955155187343954" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; An important point to note here is the mechanism in which we bind Variables to Activities.  Binding is now done via an Expression mechanism, so when you bind you can either bind straight to a Variable or alternatively you can enter a value in the box. So say I want to display "Hello" in the Write Activity instead of creating a variable to hold "Hello" and binding to that, I can put "Hello" with quotes straight into the Text property. This is because the property takes in an expression that can either be an explicit value or some sort of expression that can be a value assignment, or property call.   &lt;p&gt;&lt;strong&gt;Create your first Sequential Workflow&lt;/strong&gt;&lt;/p&gt;&lt;object width="640" height="498"&gt; &lt;param name="movie" value="http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/WWF%204.0%20Part%201_controller.swf"&gt; &lt;param name="quality" value="high"&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt; &lt;param name="flashVars" value="containerwidth=640&amp;amp;containerheight=498&amp;amp;showstartscreen=true&amp;amp;showendscreen=true&amp;amp;loop=false&amp;amp;autostart=false&amp;amp;color=000000,000000&amp;amp;thumbscale=45&amp;amp;content=http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/WWF%204.0%20Part%201.mp4"&gt; &lt;param name="allowFullScreen" value="true"&gt; &lt;param name="scale" value="showall"&gt; &lt;param name="allowScriptAccess" value="always"&gt; &lt;param name="base" value="http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/"&gt;  &lt;embed src="http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/WWF%204.0%20Part%201_controller.swf" quality="high" bgcolor="#FFFFFF" width="640" height="498" type="application/x-shockwave-flash" allowscriptaccess="always" flashvars="containerwidth=640&amp;amp;containerheight=498&amp;amp;showstartscreen=true&amp;amp;showendscreen=true&amp;amp;loop=false&amp;amp;autostart=false&amp;amp;color=000000,000000&amp;amp;thumbscale=45&amp;amp;content=http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/WWF%204.0%20Part%201.mp4" allowfullscreen="true" base="http://content.screencast.com/users/JohnMcLoughlin/folders/Default/media/501972a4-310b-4c02-bd4c-1b28b29c662c/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;p&gt;The following is a textual version of the screencast.&lt;/p&gt;  &lt;p&gt;Ok, so lets build a Sequential Workflow using these new features in a Console Application. This Sequential Workflow is going to greet a person we name. Now I'm going to be using a number of custom activities to perform the work, but I won't be going into how they work as this will be covered in a future article.&lt;br /&gt;&lt;br /&gt;The process I'll be following is quite simple, the User will be welcomed and then prompted for their name and a greeting will then be displayed.&lt;br /&gt;&lt;br /&gt;The first thing we need to do with our Workflow is to add in the Activities, so I'll add in a single WriteLine Activity that write text out to a Console, a custom ReadLine Activity that reads in from the Console, the Greeting activity. I do this in exactly the same manner as we add Activities currently, by dragging them onto the surface in the order I desire.&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7KcskwN3I/AAAAAAAAAK8/FBaKez0Nk0Q/s1600-h/GreetingActivity.png"&gt;&lt;img src="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7KcskwN3I/AAAAAAAAAK8/FBaKez0Nk0Q/s320/GreetingActivity.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372453999850043250" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 246px; height: 320px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Now I'm going to need 1 variable for this activity. To hold the name input by the User.  I click on the Variables button and add in 1 variable of type string called Name.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/So7NomiS1hI/AAAAAAAAALk/yI_BzliBpAk/s1600-h/GreetingVariables.png"&gt;&lt;img src="http://1.bp.blogspot.com/_Ca_lHPWeme0/So7NomiS1hI/AAAAAAAAALk/yI_BzliBpAk/s320/GreetingVariables.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372457502922429970" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 166px; " /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;I can now assign the Name variable to the Read Activity I'm using to take in the input from the User. I do this by going to the Properties pane with the focus on the desired Activity and binding it to the relevant Variable.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/So7NOi95WfI/AAAAAAAAALU/QSPxIlMoRI0/s1600-h/GreetingName2.png"&gt;&lt;img src="http://4.bp.blogspot.com/_Ca_lHPWeme0/So7NOi95WfI/AAAAAAAAALU/QSPxIlMoRI0/s320/GreetingName2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372457055287859698" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 298px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Now I need to bind the input of the Greetings Activity to the Name Variable, I do this in the same manner as before.&lt;br /&gt;&lt;br /&gt;&lt;div style=""&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/So7NaltvUII/AAAAAAAAALc/OukWYdZ3Ttg/s1600-h/GreetingName.png"&gt;&lt;img src="http://2.bp.blogspot.com/_Ca_lHPWeme0/So7NaltvUII/AAAAAAAAALc/OukWYdZ3Ttg/s320/GreetingName.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372457262183829634" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 290px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;If I now build the solution and run it. I get the following experience.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7NArbo-oI/AAAAAAAAALM/R07bHyIEXu8/s1600-h/GreetingsExperience.png"&gt;&lt;img src="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7NArbo-oI/AAAAAAAAALM/R07bHyIEXu8/s320/GreetingsExperience.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372456817041930882" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 166px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;So lets have a look at the code it generated:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); -webkit-text-decorations-in-effect: none; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7MrR5B0GI/AAAAAAAAALE/3AVfXuNrC74/s1600-h/GreetingsCode.png"&gt;&lt;img src="http://3.bp.blogspot.com/_Ca_lHPWeme0/So7MrR5B0GI/AAAAAAAAALE/3AVfXuNrC74/s320/GreetingsCode.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5372456449408618594" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 72px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;This is another important distinction in WF 4.0, there has been a move away from code (VB or C#) and towards declarative coding using XAML. As a rule, the only time you will ever write VB or C# is when you are writing you're very own custom Activities, the rest of the time you will be generating XAML. (Note :- The line that is cut off is just the path to the XAML file).&lt;br /&gt;&lt;br /&gt;In the next article, I'll be looking at the new Flowchart Workflow and Designer.&lt;p&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7672838793211192416?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7672838793211192416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7672838793211192416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7672838793211192416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7672838793211192416'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/08/wf-40-part-1-sequential-designer.html' title='WF 4.0 - Part 1. The Sequential Designer'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ca_lHPWeme0/So0Et8QtgvI/AAAAAAAAAKM/IT9TIkJ3Il4/s72-c/Sequence.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-2970254197877529604</id><published>2009-08-13T13:14:00.002Z</published><updated>2009-08-13T19:52:20.013Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Slides for the Intro to WF 4.0 talk</title><content type='html'>&lt;p&gt;I’ve uploaded the slides for my Windows Workflow Foundation 4.0 to my SkyDrive, you can get at them via this link.&lt;/p&gt; &lt;iframe style="border-bottom: rgb(221,229,233) 1px solid; border-left: rgb(221,229,233) 1px solid; padding-bottom: 0px; background-color: rgb(255,255,255); margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: rgb(221,229,233) 1px solid; border-right: rgb(221,229,233) 1px solid; padding-top: 0px" marginheight="0" src="http://cid-b80e09d7827ce7cc.skydrive.live.com/embedrowdetail.aspx/Intro%20to%20WF%204.0" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;Now includes code for the 5 basic demos.&amp;#160; Enjoy the coding goodness!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-2970254197877529604?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/2970254197877529604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=2970254197877529604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2970254197877529604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2970254197877529604'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/08/slides-for-intro-to-wf-40-talk.html' title='Slides for the Intro to WF 4.0 talk'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7056643143187462972</id><published>2009-08-11T19:40:00.003Z</published><updated>2009-08-11T19:45:36.912Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Identity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Geneva'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='TypeMock'/><title type='text'>Upcoming events at NxtGenUG Southampton</title><content type='html'>&lt;p&gt;Over the next couple of months we will be continuing our Web technologies theme by having Ben Hall down to talk about Testing ASP.Net applications on the 20th August.  We’ve also managed to grab some uber swag from &lt;a href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt; and some of Roy Osherove excellent “&lt;a href="http://www.artofunittesting.com/" target="_blank"&gt;The Art of Unit Testing&lt;/a&gt;” eBooks to give away!  You can register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=233" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Then on 17th September we’ve got &lt;a href="http://www.sabratech.co.uk/blogs/yossidahan/" target="_blank"&gt;Yossi Dahan&lt;/a&gt; stopping by Southampton again, no BizTalk this time, but the new &lt;a href="http://msdn.microsoft.com/en-us/security/aa570351.aspx" target="_blank"&gt;Windows Identity Framework&lt;/a&gt;!  The Windows Identity Framework is Microsoft's offering for dealing with federated security.  You can register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=237" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Then on 22nd October for our 2nd Birthday(!) we’ve hosting the follow up grudge match between &lt;a href="http://weblogs.asp.net/Plip/" target="_blank"&gt;Phil Winstanley&lt;/a&gt; and &lt;a href="http://serialseb.blogspot.com/" target="_blank"&gt;Sebastien Lambla&lt;/a&gt; as they duke out the merits of ASP.NET WebForms against ASP.NET MVC (and &lt;a href="http://trac.caffeine-it.com/openrasta" target="_blank"&gt;OpenRasta&lt;/a&gt;!).  This was a very highly rated session in London, and promises to be very entertaining and informative.  You can register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=238" target="_blank"&gt;here&lt;/a&gt;.  More details to follow for this session on the site soon!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7056643143187462972?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7056643143187462972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7056643143187462972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7056643143187462972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7056643143187462972'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/08/upcoming-events-at-nxtgenug-southampton.html' title='Upcoming events at NxtGenUG Southampton'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5692418337128632392</id><published>2009-08-05T15:09:00.002Z</published><updated>2009-08-05T15:12:31.940Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='WM'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Twitter on Windows Mobile 6</title><content type='html'>Over the last month or two I’ve been looking for a Twitter client for my HTC Touch Pro, as I wasn’t too keen on the mobile web version.  I asked for recommendations on Twitter and the majority of people recommended either &lt;a href="http://code.google.com/p/pocketwit/" target="_blank"&gt;Pocketwit&lt;/a&gt; or &lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt;.  &lt;p&gt;I downloaded both clients so I could test them out simultaneously on the device during my day to day activities.  All pictures taken from the relevant twitter client site.  So here are my findings:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pocketwit&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://code.google.com/p/pocketwit/" target="_blank"&gt;Pocketwit&lt;/a&gt; had the more flash of the two interfaces, allowing the user to scroll up and down the timeline using via the phones touch screen.  The tweets were in a nice big font with the person avatar to the right hand side.&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SnmhFPcpFCI/AAAAAAAAAJ8/L06d_zJLmyA/s1600-h/pockettwit.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 209px; height: 320px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SnmhFPcpFCI/AAAAAAAAAJ8/L06d_zJLmyA/s320/pockettwit.png" alt="" id="BLOGGER_PHOTO_ID_5366497542406738978" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Navigation was performed by dragging the tweets either left for context specific options on a tweet or right for a main menu like set of options.  Whilst this looked excellent I found the binding to selected tweet was a little dodgy as sometimes the context menu wasn’t for the currently selected tweet.&lt;/p&gt;  &lt;p&gt;I also had problems swapping from vertical to horizontal screen orientation when I opened the keyboard.  The screen would get stuck in the previous orientation which meant options and navigation became a bit fiddly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Twikini&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt; has a more classic windows feels to it and doesn’t take advantage of the touch screen for navigation.  Friends, Mentions and Direct Message are selectable from a menu option which then loads the appropriate timeline.&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SnmhFROHeGI/AAAAAAAAAKE/1opDFSJavu8/s1600-h/Twikini.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 254px; height: 320px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SnmhFROHeGI/AAAAAAAAAKE/1opDFSJavu8/s320/Twikini.jpg" alt="" id="BLOGGER_PHOTO_ID_5366497542882687074" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The tweets themselves are not always displayed in full, so you do have to open a tweet from time to time to read it in its completeness.  Each tweet has the users avatar to the right of their tweet, and the text is in a very readable font.&lt;/p&gt;  &lt;p&gt;During my use of &lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt; I didn’t encounter any of the selection and orientation problems I had with &lt;a href="http://code.google.com/p/pocketwit/" target="_blank"&gt;Pocketwit&lt;/a&gt;, which has lead me to stump up the huge charge of $5 to get a full license :)  A couple of weeks on, and I’m still happy with the client.&lt;/p&gt;  &lt;p&gt;If I were to change anything about &lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt; I would include some sort of status bar on it so I can see any new mentions or direct message, as currently I have to open those timelines up explicitly to see if any have arrived.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Both are cracking clients, but for the time being I’ll stick with &lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt;, even though &lt;a href="http://code.google.com/p/pocketwit/" target="_blank"&gt;Pocketwit&lt;/a&gt; is free.  Once &lt;a href="http://code.google.com/p/pocketwit/" target="_blank"&gt;Pocketwit&lt;/a&gt; gets out of Beta I’ll be revisiting it to see if they’ve managed to sort out the bugs that were enough for me to opt for &lt;a href="http://www.trinketsoftware.com/Twikini/" target="_blank"&gt;Twikini&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5692418337128632392?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5692418337128632392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5692418337128632392' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5692418337128632392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5692418337128632392'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/08/twitter-on-windows-mobile-6.html' title='Twitter on Windows Mobile 6'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ca_lHPWeme0/SnmhFPcpFCI/AAAAAAAAAJ8/L06d_zJLmyA/s72-c/pockettwit.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6423449936542003257</id><published>2009-07-03T09:53:00.005Z</published><updated>2009-07-03T10:00:56.686Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='Assault Course'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><title type='text'>PRISM Assault Course and Julys event at Southampton NxtGen</title><content type='html'>Yesterday I passed the WPF MCTS, YAY!  One of the reaons I wanted to get this done is to help me with the PRISM Assault Course I'm currently putting together with Peter Cook (who's blog can be seen &lt;a href="http://petedoesstuff.net/Blog"&gt;here&lt;/a&gt;).  If there's an area of PRISM you'd be interested in seeing, drop me an email or leave a comment and we'll see if we can work it into the agenda.&lt;br /&gt;&lt;br /&gt;We're currently tracking down a venue and sorting out the agenda, but we hope to be kicking off the event in either August or Septemeber.  Further details to follow :)&lt;br /&gt;&lt;br /&gt;Also this month at NxtGenUG Southampton on the 16th (July) we're be hosting Mike Ormonds ASP.NET 4.0 talk, which promises to be damn interesting as it will be covering all the new exciting areas of the upcoming release.&lt;br /&gt;&lt;br /&gt;We're also be having a nugget from Mark Heath on managed Audio wrappers in in .Net.&lt;br /&gt;&lt;br /&gt;You can register for the event &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=207"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6423449936542003257?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6423449936542003257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6423449936542003257' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6423449936542003257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6423449936542003257'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/07/prism-assault-course-and-julys-event-at.html' title='PRISM Assault Course and Julys event at Southampton NxtGen'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1802418470742285109</id><published>2009-06-10T13:22:00.003Z</published><updated>2009-06-14T22:08:05.398Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='CAB'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Slides for my PRISM-tation</title><content type='html'>&lt;p&gt;Here are the slides for my Introduction to PRISM session that I given at Birmingham and Southampton.&lt;/p&gt; &lt;iframe style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0px; background-color: rgb(255, 255, 255); width: 240px; height: 66px;" marginheight="0" src="http://cid-b80e09d7827ce7cc.skydrive.live.com/embedrowdetail.aspx/PRISM" marginwidth="0" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;  &lt;p&gt;The code examples are to follow.&lt;/p&gt;  &lt;p&gt;Thanks to everyone who attended!  All comments welcome :)&lt;/p&gt;&lt;p&gt;UPDATE - The code is now up as well :)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1802418470742285109?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1802418470742285109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1802418470742285109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1802418470742285109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1802418470742285109'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/06/slides-for-my-prism-tation.html' title='Slides for my PRISM-tation'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7134870726479088450</id><published>2009-05-28T13:27:00.003Z</published><updated>2009-05-28T13:33:25.566Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4 talk at the GL.NET User Group</title><content type='html'>I'll be doing a Windows Workflow Foundation 4 talk at the &lt;a href="http://www.gl-net.org.uk/"&gt;GL.NET User Group&lt;/a&gt; on the 12th August 2009.&lt;br /&gt;&lt;br /&gt;The talk will be covering the Beta 1 release of VS2010 and Windows Workflow Foundation, unless Microsoft releases another Beta/Release Candidate by then ;).  I'll be looking at the new features of WF 4.0 like the new Workflow Designers and the WPF based Activity functionality.&lt;br /&gt;&lt;br /&gt;If you fancy coming along go &lt;a href="http://www.gl-net.org.uk/Events/august.aspx"&gt;here &lt;/a&gt;to register and I'll see you there!&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7134870726479088450?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7134870726479088450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7134870726479088450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7134870726479088450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7134870726479088450'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/05/wf-4-talk-at-glnet-user-group.html' title='WF 4 talk at the GL.NET User Group'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-2969937561976544555</id><published>2009-05-20T14:40:00.003Z</published><updated>2009-05-20T14:50:24.384Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='TypeMock'/><title type='text'>Typemock Giveaway!</title><content type='html'>In my current contract they use TypeMock and I must admit that before I'd started here I used the free mocking frameworks like Moq and RhinoMocks instead. Having three coding API styles is really nice so you can choose the syntax that suits you best :)&lt;br /&gt;&lt;p&gt;I just found out typeMock are running this promotion adn I just at the chance to get a TypeMock license.&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.typemock.com/"&gt;Unit Testing&lt;/a&gt; ASP.NET? &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php"&gt;ASP.NET unit testing&lt;/a&gt; has never been this easy.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle - and for the launch will be giving out FREE licenses to bloggers and their readers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both &lt;a href="http://www.typemock.com/"&gt;Typemock Isolator&lt;/a&gt;, a &lt;a href="http://www.typemock.com/"&gt;unit test&lt;/a&gt; tool and &lt;a href="http://sm-art.biz/Ivonna.aspx"&gt;Ivonna&lt;/a&gt;, the Isolator add-on for &lt;a href="http://sm-art.biz/Ivonna.aspx"&gt;ASP.NET unit testing&lt;/a&gt;, for a bargain price.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Typemock Isolator is a leading &lt;a href="http://www.typemock.com/"&gt;.NET unit testing&lt;/a&gt; tool (C# and VB.NET) for many ‘hard to test’ technologies such as &lt;a href="http://typemock.com/sharepointpage.php"&gt;SharePoint&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php"&gt;MVC&lt;/a&gt;, &lt;a href="http://www.typemock.com/wcfpage.php"&gt;WCF&lt;/a&gt;, WPF, &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php"&gt;Silverlight&lt;/a&gt; and more. Note that for &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php"&gt;unit testing Silverlight&lt;/a&gt; there is an open source Isolator add-on called &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php"&gt;SilverUnit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first 60 bloggers who will blog this text in their blog and &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html"&gt;tell us about it&lt;/a&gt;, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET dedicated blog, you'll get a license automatically (even if more than 60 submit) during the first week of this announcement.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also 8 bloggers will get an additional 2 licenses (each) to give away to their readers / friends.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Go ahead, click the following link for &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html"&gt;more information &lt;/a&gt;on how to get your free license.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-2969937561976544555?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/2969937561976544555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=2969937561976544555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2969937561976544555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2969937561976544555'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/05/typemock-giveaway.html' title='Typemock Giveaway!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5597854306209856498</id><published>2009-05-19T15:23:00.003Z</published><updated>2009-05-19T18:44:35.658Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio 2010</title><content type='html'>Having an MSDN subscription I’ve been lucky enough to get Visual Studio 2010 a couple of days early.  I’ve installed it happily on my Vista installation (main dev box) and it runs faster (IMHO) than VS2008 does, so I’m dead chuffed!  &lt;p&gt;I then tried installing it on my Win 7 installation (dev laptop), but the damn things always bombs out with the following dialog when the progress bar completes&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/ShL9tYaQX6I/AAAAAAAAAJs/cHrTv-OrQwU/s1600-h/vsts2010error.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 106px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/ShL9tYaQX6I/AAAAAAAAAJs/cHrTv-OrQwU/s320/vsts2010error.png" alt="" id="BLOGGER_PHOTO_ID_5337607464475975586" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;on this screen&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/ShL9trDoDNI/AAAAAAAAAJ0/N77DCkT5Tj0/s1600-h/vstsinstall.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 244px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/ShL9trDoDNI/AAAAAAAAAJ0/N77DCkT5Tj0/s320/vstsinstall.png" alt="" id="BLOGGER_PHOTO_ID_5337607469481331922" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I’ve tried disabling Anti Virus (AVG), removing the external HD it was running from and running it locally, I’ve tried running it from the local HD in CloneDrive as opposed to from the external HD, I’ve tried removing CloneDrive and I’ve even copied the contents of the ISO to a local folder and run it that way.  But still no joy.&lt;/p&gt;  &lt;p&gt;I thought I’d be smart and check the event logs, but nope, they just said it had completed successfully :P  Oddly enough Professional works...&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Ah well, if anyone else has any ideas as to why this might have happened I’m open to suggestions :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5597854306209856498?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5597854306209856498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5597854306209856498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5597854306209856498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5597854306209856498'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/05/visual-studio-2010.html' title='Visual Studio 2010'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ca_lHPWeme0/ShL9tYaQX6I/AAAAAAAAAJs/cHrTv-OrQwU/s72-c/vsts2010error.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4692184023779345258</id><published>2009-05-17T20:57:00.002Z</published><updated>2009-05-17T20:58:53.532Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 Beta</title><content type='html'>&lt;p&gt;So the Beta of WF 4.0 comes out for subscribers tomorrow, you can find more out &lt;a href="http://blogs.msdn.com/dannawi/archive/2009/05/15/visual-studio-2010-beta-1-available-for-the-msdn-subscribers-on-monday-may-18th.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The WF series I’ve been writing will continue with the Beta, and parts 1, 2 and 3 will be updated.&lt;/p&gt;  &lt;p&gt;Stay tuned for the rewrites and new articles :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4692184023779345258?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4692184023779345258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4692184023779345258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4692184023779345258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4692184023779345258'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/05/wf-40-beta.html' title='WF 4.0 Beta'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7057060666957182455</id><published>2009-04-24T20:34:00.003Z</published><updated>2009-07-03T09:53:27.132Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Upcoming talks at Southampton &amp; my talks around the country</title><content type='html'>&lt;p&gt;Next month (14th May) I’m going to be doing a session on the PRISM (Composite WPF &amp;amp; Silverlight). This session will give an introduction to PRISM and give examples of how to use it various excellent features :) Further details and registration can be found &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=200"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I then travel up to Birmingham on the 9th June to bring my PRISM talk to the &lt;a href="http://www.nxtgenug.net/Region.aspx?RegionID=2"&gt;Brum NxtGen&lt;/a&gt; crowd. Further details and registration can be found &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=213"&gt;here&lt;/a&gt;. So if you miss the Southampton one in May, come on up to Brum!&lt;/p&gt;&lt;p&gt;On the 18th June we have our excellent friend Guy Smith-Ferrier coming down to do a talk on Internationalising Silverlight. Internationalisation is Guys speciality, so this should be an excellent talk! We’ve also hopefully got a members nugget! Further details and registration can be found &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=209"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Then on the 16th July we complete our visits from the MS DPE team with Mike Ormond talking on ASP.NET 4.0. He’ll be covering such sexy things as AJAX.NET, MVC and Dynamic Data. An excellent speaker with an excellent topic, it should be cracking! Further details and registration can be found &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=207"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In August I’ll be putting in an appearance at the &lt;a href="http://www.gl-net.org.uk/"&gt;Gloucestershire .Net User Group&lt;/a&gt; to do one of my Windows Workflow Foundation based talks. Date and detail to follow :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7057060666957182455?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7057060666957182455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7057060666957182455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7057060666957182455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7057060666957182455'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/04/upcoming-talks-at-southampton-my-talks.html' title='Upcoming talks at Southampton &amp;amp; my talks around the country'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-522103536732983442</id><published>2009-03-31T13:40:00.001Z</published><updated>2009-03-31T13:40:56.684Z</updated><title type='text'>Rich Allen running for charity this weekend</title><content type='html'>&lt;p&gt;Fellow Southampton coordinator &lt;a href="http://richallen.blogspot.com/"&gt;Rich Allen&lt;/a&gt; is &lt;a href="http://www.bhf.org.uk/get_involved/take_part_in_our_events/event_finder/view_event.aspx?ps=1000286"&gt;running a HUGE distance&lt;/a&gt; (10K, ow!) this weekend to raise money for the &lt;a href="http://www.bhf.org.uk/"&gt;British Heart Foundation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So if you want to sponsor &lt;a href="http://richallen.blogspot.com/"&gt;Rich&lt;/a&gt;, go along &lt;a href="http://www.justgiving.com/richie_allen"&gt;here&lt;/a&gt; and chuck some money at him.&lt;/p&gt;  &lt;p&gt;Best of luck Rich! We want photos :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-522103536732983442?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/522103536732983442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=522103536732983442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/522103536732983442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/522103536732983442'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/rich-allen-running-for-charity-this.html' title='Rich Allen running for charity this weekend'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-777047623043313323</id><published>2009-03-31T10:38:00.005Z</published><updated>2009-04-02T09:04:48.217Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 – Part 3. Custom Composite Activities</title><content type='html'>The following is based on the PDC CTP of WF 4.0 and as such might change or be  missing in futures releases.&lt;br /&gt;&lt;br /&gt;In Parts 1 and 2 we looked at the different types of Workflow and their respective designers available in the CTP of WF 4.0.  In the next couple of parts we will look at how we go about creating our own custom Activities.  &lt;p&gt;As previously mentioned, there has been a shift in the way we create and implement our Workflows.  We no longer need to write C# to create a workflow, instead we use XAML.  This is also true for Activities, as there are 2 kinds of Activities we can create in WF 4.0 which are Composite and Workflow Elements.&lt;/p&gt;  &lt;p&gt;The Composite Activity is built up from other Activities and uses one of the Workflow types as it’s basis.  This is a change in the way we think about Workflows, in 3.x we saw Workflows as containers that could only contain Activities, now Workflows can contain Workflows which contain Workflows etc.  This new approach will allow us to capture and declare far more complex Processes and State Machines than in 3.x.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Composite Activities&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So lets start by creating a Composite Activity.  In this example we’re going to create a new Activity that is going to be used in the theoretical process of a User Group member arriving at a meeting and signing in.  The Activity will basically be in charge of asking them there name, some sort of password and saying hello to them.&lt;/p&gt;  &lt;p&gt;So first off we create a new Blank Activity and its designer is displayed.  At this point we can either add in a single existing Activity or a Workflow.&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6MuwboXI/AAAAAAAAAI8/L2D1zDPsN68/s1600-h/BlankCompositeActivity.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 232px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6MuwboXI/AAAAAAAAAI8/L2D1zDPsN68/s320/BlankCompositeActivity.png" alt="" id="BLOGGER_PHOTO_ID_5319307731517809010" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because my Activity is essentially making decisions, I am going to add a FlowChart Workflow to be the basis of my new Activity, this will allow me to add multiple Activities that will execute in a specific order.&lt;/p&gt;  &lt;p&gt;Now the steps needed to perform our activity are as follows:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Greet the User &lt;/li&gt;    &lt;li&gt;Ask for their confirmation code (given to them when they registered) &lt;/li&gt;    &lt;li&gt;Depending on whether the code is valid  &lt;ol&gt;       &lt;li&gt;Welcome the user &lt;/li&gt;        &lt;li&gt;Give them another attempt to register &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Now this Workflow is actually going to loop forever until a valid code is input, but in real life we’d give the user some sort of option to give up.&lt;/p&gt;  &lt;p&gt;I’m going to be using our old friends the WriteConsole and ReadConsole Activities for this, as well as a new custom activity that checks the Users input against a confirmation code.  The process is exactly the same as creating a Workflow, I drag the Activities on I want to use and connect them together.  This leaves me with an Activity that looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SdH6NJf4MbI/AAAAAAAAAJM/M2ne9h8gejI/s1600-h/WF_demo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 299px; height: 320px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SdH6NJf4MbI/AAAAAAAAAJM/M2ne9h8gejI/s320/WF_demo.png" alt="" id="BLOGGER_PHOTO_ID_5319307738696135090" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here are Variables and Arguments:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6NCrJWBI/AAAAAAAAAJc/Be27puM208o/s1600-h/wf_demo_variables.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 294px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6NCrJWBI/AAAAAAAAAJc/Be27puM208o/s320/wf_demo_variables.png" alt="" id="BLOGGER_PHOTO_ID_5319307736864348178" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6NJnRILI/AAAAAAAAAJU/osvaqm4i4-s/s1600-h/WF_demo_arguments.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 176px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6NJnRILI/AAAAAAAAAJU/osvaqm4i4-s/s320/WF_demo_arguments.png" alt="" id="BLOGGER_PHOTO_ID_5319307738727129266" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So what does the XAML look like for this?&lt;/p&gt;  &lt;div&gt;   &lt;div id="codeSnippetWrapper"   style="border: 1px solid silver; margin: 20px 0px 10px; padding: 4px; overflow: auto; background-color: rgb(244, 244, 244); line-height: 12pt; cursor: text; max-height: 200px; width: 97.5%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;"&gt;&lt;div id="codeSnippet"    style="border-style: none; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;br /&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &amp;lt;p:Activity x:Class=&lt;span style="color: rgb(0, 96, 128);"&gt;"DemoChart.GreetingActivity"&lt;/span&gt; xmlns:c=&lt;span style="color: rgb(0, 96, 128);"&gt;"clr-namespace:CustomActivities;assembly=CustomActivities"&lt;/span&gt; xmlns:p=&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schemas.microsoft.com/netfx/2009/xaml/workflowmodel"&lt;/span&gt; xmlns:p1=&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schemas.microsoft.com/netfx/2008/xaml/schema"&lt;/span&gt; xmlns:p2=&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schemas.microsoft.com/xps/2005/06"&lt;/span&gt; xmlns:scg=&lt;span style="color: rgb(0, 96, 128);"&gt;"clr-namespace:System.Collections.Generic;assembly=mscorlib"&lt;/span&gt; xmlns:swd=&lt;span style="color: rgb(0, 96, 128);"&gt;"clr-namespace:System.WorkflowModel.Debugger;assembly=System.WorkflowModel"&lt;/span&gt; xmlns:swdv=&lt;span style="color: rgb(0, 96, 128);"&gt;"clr-namespace:System.WorkflowModel.Design.View;assembly=System.WorkflowModel.Design"&lt;/span&gt; xmlns:swdx=&lt;span style="color: rgb(0, 96, 128);"&gt;"clr-namespace:System.WorkflowModel.Design.Xaml;assembly=System.WorkflowModel.Design"&lt;/span&gt; xmlns:x=&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt; xmlns:x2=&lt;span style="color: rgb(0, 96, 128);"&gt;"http://schemas.microsoft.com/netfx/2008/xaml"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt;   &amp;lt;p1:SchemaType.Members&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;     &amp;lt;p1:SchemaProperty Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"AttendeeName"&lt;/span&gt; Type=&lt;span style="color: rgb(0, 96, 128);"&gt;"p:InArgument(p1:String)"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;   &amp;lt;/p1:SchemaType.Members&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;   &amp;lt;p:Flowchart DisplayName=&lt;span style="color: rgb(0, 96, 128);"&gt;"Flowchart"&lt;/span&gt; swd:XamlDebuggerXmlReader.FileName=&lt;span style="color: rgb(0, 96, 128);"&gt;"C:\Users\Administrator\Documents\Visual Studio 10\Projects\1_Designer_Demo\DemoChart\GreetingActivity.xaml"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;     &amp;lt;p:Flowchart.Variables&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;       &amp;lt;p:Variable x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:Int32"&lt;/span&gt; Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"_attendeeCode"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt;       &amp;lt;p:Variable x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:Boolean"&lt;/span&gt; Default=&lt;span style="color: rgb(0, 96, 128);"&gt;"[False]"&lt;/span&gt; Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"_codeValid"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum9" style="color: rgb(96, 96, 96);"&gt;   9:&lt;/span&gt;     &amp;lt;/p:Flowchart.Variables&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum10" style="color: rgb(96, 96, 96);"&gt;  10:&lt;/span&gt;     &amp;lt;p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum11" style="color: rgb(96, 96, 96);"&gt;  11:&lt;/span&gt;       &amp;lt;p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum12" style="color: rgb(96, 96, 96);"&gt;  12:&lt;/span&gt;         &amp;lt;c:WriteLine DisplayName=&lt;span style="color: rgb(0, 96, 128);"&gt;"GreetAttendee"&lt;/span&gt; Text=&lt;span style="color: rgb(0, 96, 128);"&gt;"[String.Concat(&amp;amp;quot;Welcome &amp;amp;quot;, AttendeeName)]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum13" style="color: rgb(96, 96, 96);"&gt;  13:&lt;/span&gt;           &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum14" style="color: rgb(96, 96, 96);"&gt;  14:&lt;/span&gt;             &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum15" style="color: rgb(96, 96, 96);"&gt;  15:&lt;/span&gt;               &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;160,82.02&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum16" style="color: rgb(96, 96, 96);"&gt;  16:&lt;/span&gt;               &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;160,35.96&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum17" style="color: rgb(96, 96, 96);"&gt;  17:&lt;/span&gt;             &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum18" style="color: rgb(96, 96, 96);"&gt;  18:&lt;/span&gt;           &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum19" style="color: rgb(96, 96, 96);"&gt;  19:&lt;/span&gt;         &amp;lt;/c:WriteLine&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum20" style="color: rgb(96, 96, 96);"&gt;  20:&lt;/span&gt;       &amp;lt;/p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum21" style="color: rgb(96, 96, 96);"&gt;  21:&lt;/span&gt;       &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum22" style="color: rgb(96, 96, 96);"&gt;  22:&lt;/span&gt;         &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum23" style="color: rgb(96, 96, 96);"&gt;  23:&lt;/span&gt;           &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"PolylineLocation"&lt;/span&gt;&amp;gt;240,117.98 240,142.02&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum24" style="color: rgb(96, 96, 96);"&gt;  24:&lt;/span&gt;         &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum25" style="color: rgb(96, 96, 96);"&gt;  25:&lt;/span&gt;       &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum26" style="color: rgb(96, 96, 96);"&gt;  26:&lt;/span&gt;       &amp;lt;p:FlowStep x:Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 0"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum27" style="color: rgb(96, 96, 96);"&gt;  27:&lt;/span&gt;         &amp;lt;p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum28" style="color: rgb(96, 96, 96);"&gt;  28:&lt;/span&gt;           &amp;lt;c:WriteLine DisplayName=&lt;span style="color: rgb(0, 96, 128);"&gt;"RequestMeetingCode"&lt;/span&gt; Text=&lt;span style="color: rgb(0, 96, 128);"&gt;"[&amp;amp;quot;Please enter your metting confirmation code&amp;amp;quot;]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum29" style="color: rgb(96, 96, 96);"&gt;  29:&lt;/span&gt;             &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum30" style="color: rgb(96, 96, 96);"&gt;  30:&lt;/span&gt;               &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum31" style="color: rgb(96, 96, 96);"&gt;  31:&lt;/span&gt;                 &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;160,142.02&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum32" style="color: rgb(96, 96, 96);"&gt;  32:&lt;/span&gt;                 &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;160,35.96&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum33" style="color: rgb(96, 96, 96);"&gt;  33:&lt;/span&gt;               &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum34" style="color: rgb(96, 96, 96);"&gt;  34:&lt;/span&gt;             &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum35" style="color: rgb(96, 96, 96);"&gt;  35:&lt;/span&gt;           &amp;lt;/c:WriteLine&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum36" style="color: rgb(96, 96, 96);"&gt;  36:&lt;/span&gt;         &amp;lt;/p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum37" style="color: rgb(96, 96, 96);"&gt;  37:&lt;/span&gt;         &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum38" style="color: rgb(96, 96, 96);"&gt;  38:&lt;/span&gt;           &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum39" style="color: rgb(96, 96, 96);"&gt;  39:&lt;/span&gt;             &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"PolylineLocation"&lt;/span&gt;&amp;gt;240,177.98 240,222.02&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum40" style="color: rgb(96, 96, 96);"&gt;  40:&lt;/span&gt;           &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum41" style="color: rgb(96, 96, 96);"&gt;  41:&lt;/span&gt;         &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum42" style="color: rgb(96, 96, 96);"&gt;  42:&lt;/span&gt;         &amp;lt;p:FlowStep x:Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 1"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum43" style="color: rgb(96, 96, 96);"&gt;  43:&lt;/span&gt;           &amp;lt;p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum44" style="color: rgb(96, 96, 96);"&gt;  44:&lt;/span&gt;             &amp;lt;c:ReadLine DisplayName=&lt;span style="color: rgb(0, 96, 128);"&gt;"GetAttendeeCode"&lt;/span&gt; outArgument=&lt;span style="color: rgb(0, 96, 128);"&gt;"[_attendeeCode]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum45" style="color: rgb(96, 96, 96);"&gt;  45:&lt;/span&gt;               &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum46" style="color: rgb(96, 96, 96);"&gt;  46:&lt;/span&gt;                 &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum47" style="color: rgb(96, 96, 96);"&gt;  47:&lt;/span&gt;                   &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;160,222.02&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum48" style="color: rgb(96, 96, 96);"&gt;  48:&lt;/span&gt;                   &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;160,35.96&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum49" style="color: rgb(96, 96, 96);"&gt;  49:&lt;/span&gt;                 &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum50" style="color: rgb(96, 96, 96);"&gt;  50:&lt;/span&gt;               &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum51" style="color: rgb(96, 96, 96);"&gt;  51:&lt;/span&gt;             &amp;lt;/c:ReadLine&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum52" style="color: rgb(96, 96, 96);"&gt;  52:&lt;/span&gt;           &amp;lt;/p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum53" style="color: rgb(96, 96, 96);"&gt;  53:&lt;/span&gt;           &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum54" style="color: rgb(96, 96, 96);"&gt;  54:&lt;/span&gt;             &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum55" style="color: rgb(96, 96, 96);"&gt;  55:&lt;/span&gt;               &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"PolylineLocation"&lt;/span&gt;&amp;gt;240,257.98 240,282.02&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum56" style="color: rgb(96, 96, 96);"&gt;  56:&lt;/span&gt;             &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum57" style="color: rgb(96, 96, 96);"&gt;  57:&lt;/span&gt;           &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum58" style="color: rgb(96, 96, 96);"&gt;  58:&lt;/span&gt;           &amp;lt;p:FlowStep x:Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 2"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum59" style="color: rgb(96, 96, 96);"&gt;  59:&lt;/span&gt;             &amp;lt;p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum60" style="color: rgb(96, 96, 96);"&gt;  60:&lt;/span&gt;               &amp;lt;c:CodeCheck CodeToCheck=&lt;span style="color: rgb(0, 96, 128);"&gt;"[_attendeeCode]"&lt;/span&gt; IsValid=&lt;span style="color: rgb(0, 96, 128);"&gt;"[_codeValid]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum61" style="color: rgb(96, 96, 96);"&gt;  61:&lt;/span&gt;                 &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum62" style="color: rgb(96, 96, 96);"&gt;  62:&lt;/span&gt;                   &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum63" style="color: rgb(96, 96, 96);"&gt;  63:&lt;/span&gt;                     &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;160,282.02&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum64" style="color: rgb(96, 96, 96);"&gt;  64:&lt;/span&gt;                     &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;160,35.96&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum65" style="color: rgb(96, 96, 96);"&gt;  65:&lt;/span&gt;                   &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum66" style="color: rgb(96, 96, 96);"&gt;  66:&lt;/span&gt;                 &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum67" style="color: rgb(96, 96, 96);"&gt;  67:&lt;/span&gt;               &amp;lt;/c:CodeCheck&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum68" style="color: rgb(96, 96, 96);"&gt;  68:&lt;/span&gt;             &amp;lt;/p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum69" style="color: rgb(96, 96, 96);"&gt;  69:&lt;/span&gt;             &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum70" style="color: rgb(96, 96, 96);"&gt;  70:&lt;/span&gt;               &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum71" style="color: rgb(96, 96, 96);"&gt;  71:&lt;/span&gt;                 &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"PolylineLocation"&lt;/span&gt;&amp;gt;240,317.98 240,350&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum72" style="color: rgb(96, 96, 96);"&gt;  72:&lt;/span&gt;               &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum73" style="color: rgb(96, 96, 96);"&gt;  73:&lt;/span&gt;             &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum74" style="color: rgb(96, 96, 96);"&gt;  74:&lt;/span&gt;             &amp;lt;p:FlowDecision False=&lt;span style="color: rgb(0, 96, 128);"&gt;"{x2:Reference Name=&amp;amp;quot;__ Reference ID 0&amp;amp;quot;}"&lt;/span&gt; x:Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 3"&lt;/span&gt; Condition=&lt;span style="color: rgb(0, 96, 128);"&gt;"[_codeValid]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum75" style="color: rgb(96, 96, 96);"&gt;  75:&lt;/span&gt;               &amp;lt;p:FlowDecision.True&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum76" style="color: rgb(96, 96, 96);"&gt;  76:&lt;/span&gt;                 &amp;lt;p:FlowStep x:Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 4"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum77" style="color: rgb(96, 96, 96);"&gt;  77:&lt;/span&gt;                   &amp;lt;p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum78" style="color: rgb(96, 96, 96);"&gt;  78:&lt;/span&gt;                     &amp;lt;c:WriteLine DisplayName=&lt;span style="color: rgb(0, 96, 128);"&gt;"Thanks"&lt;/span&gt; Text=&lt;span style="color: rgb(0, 96, 128);"&gt;"[&amp;amp;quot;Thanks for coming!&amp;amp;quot;]"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum79" style="color: rgb(96, 96, 96);"&gt;  79:&lt;/span&gt;                       &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum80" style="color: rgb(96, 96, 96);"&gt;  80:&lt;/span&gt;                         &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum81" style="color: rgb(96, 96, 96);"&gt;  81:&lt;/span&gt;                           &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;20,462.02&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum82" style="color: rgb(96, 96, 96);"&gt;  82:&lt;/span&gt;                           &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;160,35.96&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum83" style="color: rgb(96, 96, 96);"&gt;  83:&lt;/span&gt;                         &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum84" style="color: rgb(96, 96, 96);"&gt;  84:&lt;/span&gt;                       &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum85" style="color: rgb(96, 96, 96);"&gt;  85:&lt;/span&gt;                     &amp;lt;/c:WriteLine&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum86" style="color: rgb(96, 96, 96);"&gt;  86:&lt;/span&gt;                   &amp;lt;/p:FlowStep.Action&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum87" style="color: rgb(96, 96, 96);"&gt;  87:&lt;/span&gt;                 &amp;lt;/p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum88" style="color: rgb(96, 96, 96);"&gt;  88:&lt;/span&gt;               &amp;lt;/p:FlowDecision.True&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum89" style="color: rgb(96, 96, 96);"&gt;  89:&lt;/span&gt;               &amp;lt;swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum90" style="color: rgb(96, 96, 96);"&gt;  90:&lt;/span&gt;                 &amp;lt;scg:Dictionary x:TypeArguments=&lt;span style="color: rgb(0, 96, 128);"&gt;"p1:String, p1:Object"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum91" style="color: rgb(96, 96, 96);"&gt;  91:&lt;/span&gt;                   &amp;lt;p2:Point x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeLocation"&lt;/span&gt;&amp;gt;210,350&amp;lt;/p2:Point&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum92" style="color: rgb(96, 96, 96);"&gt;  92:&lt;/span&gt;                   &amp;lt;p2:Size x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"ShapeSize"&lt;/span&gt;&amp;gt;60,60&amp;lt;/p2:Size&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum93" style="color: rgb(96, 96, 96);"&gt;  93:&lt;/span&gt;                   &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"TruePolylineLocation"&lt;/span&gt;&amp;gt;210,380 100,380 100,462.02&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum94" style="color: rgb(96, 96, 96);"&gt;  94:&lt;/span&gt;                   &amp;lt;p2:PointCollection x:Key=&lt;span style="color: rgb(0, 96, 128);"&gt;"FalsePolylineLocation"&lt;/span&gt;&amp;gt;270,380 398.5,380 398.5,160 320,160&amp;lt;/p2:PointCollection&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum95" style="color: rgb(96, 96, 96);"&gt;  95:&lt;/span&gt;                 &amp;lt;/scg:Dictionary&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum96" style="color: rgb(96, 96, 96);"&gt;  96:&lt;/span&gt;               &amp;lt;/swdv:WorkflowViewStateService.ViewState&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum97" style="color: rgb(96, 96, 96);"&gt;  97:&lt;/span&gt;             &amp;lt;/p:FlowDecision&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum98" style="color: rgb(96, 96, 96);"&gt;  98:&lt;/span&gt;           &amp;lt;/p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum99" style="color: rgb(96, 96, 96);"&gt;  99:&lt;/span&gt;         &amp;lt;/p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum100" style="color: rgb(96, 96, 96);"&gt; 100:&lt;/span&gt;       &amp;lt;/p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum101" style="color: rgb(96, 96, 96);"&gt; 101:&lt;/span&gt;     &amp;lt;/p:FlowStep&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum102" style="color: rgb(96, 96, 96);"&gt; 102:&lt;/span&gt;     &amp;lt;x2:Reference Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 1"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum103" style="color: rgb(96, 96, 96);"&gt; 103:&lt;/span&gt;     &amp;lt;x2:Reference Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 0"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum104" style="color: rgb(96, 96, 96);"&gt; 104:&lt;/span&gt;     &amp;lt;x2:Reference Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 2"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum105" style="color: rgb(96, 96, 96);"&gt; 105:&lt;/span&gt;     &amp;lt;x2:Reference Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 3"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum106" style="color: rgb(96, 96, 96);"&gt; 106:&lt;/span&gt;     &amp;lt;x2:Reference Name=&lt;span style="color: rgb(0, 96, 128);"&gt;"__ Reference ID 4"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; color: black; width: 100%; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:white;"&gt;&lt;span id="lnum107" style="color: rgb(96, 96, 96);"&gt; 107:&lt;/span&gt;   &amp;lt;/p:Flowchart&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre    style="border-style: none; margin: 0em; padding: 0px; overflow: visible; background-color: rgb(244, 244, 244); line-height: 12pt; width: 100%; direction: ltr; text-align: left;font-family:'Courier New',Courier,Monospace;font-size:8pt;color:black;"&gt;&lt;span id="lnum108" style="color: rgb(96, 96, 96);"&gt; 108:&lt;/span&gt; &amp;lt;/p:Activity&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;As you can see that’s a fairly comprehensive bit of XAML, which is understandable as there is no code behind anywhere in this Workflow.  We can now use this Activity on a Workflow, and this is what it will look like.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SdH6Mn0RW2I/AAAAAAAAAJE/lZAUJk1wziQ/s1600-h/Greeting_WF.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 224px; height: 193px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SdH6Mn0RW2I/AAAAAAAAAJE/lZAUJk1wziQ/s320/Greeting_WF.png" alt="" id="BLOGGER_PHOTO_ID_5319307729654864738" border="0" /&gt;&lt;/a&gt;And if we look at the Properties for the placed Activity, we can see our AttendeeName argument that we added to allow us to greet individuals by name.&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SdH6lAObZaI/AAAAAAAAAJk/WiGpIMLN6bM/s1600-h/WF_Greeting_Properties.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 229px; height: 320px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SdH6lAObZaI/AAAAAAAAAJk/WiGpIMLN6bM/s320/WF_Greeting_Properties.png" alt="" id="BLOGGER_PHOTO_ID_5319308148523885986" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;As this is an InArgument, it allows for expression binding.  Had we used just a plain String property on there, we would not be able to use the expression functionality.&lt;br /&gt;&lt;p&gt;In the next part, we will look at creating our own custom Activities in code (items called Workflow Elements) and how to skin them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-777047623043313323?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/777047623043313323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=777047623043313323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/777047623043313323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/777047623043313323'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/wf-40-part-3-custom-composite.html' title='WF 4.0 – Part 3. Custom Composite Activities'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ca_lHPWeme0/SdH6MuwboXI/AAAAAAAAAI8/L2D1zDPsN68/s72-c/BlankCompositeActivity.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-91481234178519308</id><published>2009-03-30T08:50:00.001Z</published><updated>2009-03-30T08:50:04.597Z</updated><title type='text'>WebDD registration goes live!</title><content type='html'>&lt;p&gt;It’s been a while coming, but the second WebDD is coming to the Microsoft Campus in Thames Valley Park on the 18th April.&lt;/p&gt;  &lt;p&gt;This is a free one day Web orientated event and they’ve confirmed a whole host of excellent speakers, you can see the schedule &lt;a href="http://developerdeveloperdeveloper.com/webdd09/Schedule.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;To register go &lt;a href="http://developerdeveloperdeveloper.com/webdd09/register.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-91481234178519308?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/91481234178519308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=91481234178519308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/91481234178519308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/91481234178519308'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/webdd-registration-goes-live.html' title='WebDD registration goes live!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7396907968284855360</id><published>2009-03-25T11:30:00.001Z</published><updated>2009-03-25T11:30:20.249Z</updated><title type='text'>1st meeting of the UK South Scrum User Group</title><content type='html'>&lt;p&gt;Southampton &lt;a href="http://www.nxtgenug.net"&gt;NxtGenUG&lt;/a&gt; member and Agile speaker &lt;a href="http://www.linkedin.com/in/plamenbalkanski"&gt;Plamen Balkanski&lt;/a&gt; has set the date for the first meeting of his new UK South Scrum User Group.&amp;#160; The meeting will be on the 27th April at the Inn of the Furlong pub in Ringwood.&amp;#160; You can get details of how to get to the pub and register &lt;a href="http://ukssug.eventbrite.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is a very exciting User Group dedicated to all things Agile and Scrum! So something not to be missed!&lt;/p&gt;  &lt;p&gt;See you there!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7396907968284855360?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7396907968284855360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7396907968284855360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7396907968284855360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7396907968284855360'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/1st-meeting-of-uk-south-scrum-user.html' title='1st meeting of the UK South Scrum User Group'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4872088656125824780</id><published>2009-03-17T09:23:00.001Z</published><updated>2009-03-17T09:23:39.905Z</updated><title type='text'>Fest 09 registration opens!</title><content type='html'>&lt;p&gt;This years Fest has now opened for registration.&amp;#160; Places are limited to paid up members only at the present time, but may open up to everyone else at a later date.&lt;/p&gt;  &lt;p&gt;So if you’re a paid up member head over to &lt;a href="http://www.nxtgenug.net/Fest09/default.aspx?home=1"&gt;registration&lt;/a&gt; now and grab your spot as places are rapidly disappearing!&lt;/p&gt;  &lt;p&gt;This year we’re be at the Microsoft Research in Cambridge, and have some of the research guys from Microsoft giving talks!&amp;#160; It promises to be an excellent day :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4872088656125824780?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4872088656125824780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4872088656125824780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4872088656125824780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4872088656125824780'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/fest-09-registration-opens.html' title='Fest 09 registration opens!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7118090952921618432</id><published>2009-03-11T21:25:00.004Z</published><updated>2009-03-11T21:29:48.209Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Live Messenger'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Live Messenger and Windows 7</title><content type='html'>I installed Live Writer today so i didn’t need to be online to blog, especially now that I’m writing the WF 4.0 stuff and could well be commuting again soon.  &lt;p&gt;As part of the Live Writer you get a whole host of tools you can also I install, most of which I passed on except for the Office tools and Messenger.  I’m glad I did!&lt;/p&gt;  &lt;p&gt;The new messenger has disappeared from the system tray and now lives full time in the Task Bar.  Here’s the new icon:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SbgslpJDVxI/AAAAAAAAAIk/oaeYm8MyHVg/s1600-h/newmessenger.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 66px; height: 37px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SbgslpJDVxI/AAAAAAAAAIk/oaeYm8MyHVg/s320/newmessenger.png" alt="" id="BLOGGER_PHOTO_ID_5312044785694103314" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and when I become busy, the little green circle goes red.&lt;/p&gt;    &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sbgsl7sKh_I/AAAAAAAAAIs/oirZlIBjND0/s1600-h/newmessenger2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 60px; height: 39px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sbgsl7sKh_I/AAAAAAAAAIs/oirZlIBjND0/s320/newmessenger2.png" alt="" id="BLOGGER_PHOTO_ID_5312044790673213426" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As you’d expect with apps designed for Windows 7 it has a new menu that you can open from the Task Bar.  This is basically all the options you had on the menu from the System Tray.&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sbgsl0muf-I/AAAAAAAAAI0/sN5DPBKB4Q0/s1600-h/newmessengerwindow.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 223px; height: 320px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/Sbgsl0muf-I/AAAAAAAAAI0/sN5DPBKB4Q0/s320/newmessengerwindow.png" alt="" id="BLOGGER_PHOTO_ID_5312044788771356642" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The final change I really liked, is a change in how the conversations are organised.  It's now grouped by the speaker, so if you're doing all the talking, your bits are all grouped together.&lt;/p&gt;&lt;p&gt;I know it’s a lot of little changes, but somehow it improved the whole experience :)  It’s also nice to see apps beginning to move away from living in the System Tray, as I think far too many apps end up living in the System Tray.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7118090952921618432?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7118090952921618432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7118090952921618432' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7118090952921618432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7118090952921618432'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/live-messenger-and-windows-7.html' title='Live Messenger and Windows 7'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ca_lHPWeme0/SbgslpJDVxI/AAAAAAAAAIk/oaeYm8MyHVg/s72-c/newmessenger.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-2428611431268552803</id><published>2009-03-05T16:48:00.029Z</published><updated>2009-09-14T20:21:30.071Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 - Part 2. The Flowchart Workflow &amp; Designer</title><content type='html'>Replaced with an updated post &lt;a href="http://blog.batfishsolutions.com/2009/09/wf-40-part-2-flowchart-workflow.html"&gt;here&lt;/a&gt;.&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-2428611431268552803?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/2428611431268552803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=2428611431268552803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2428611431268552803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2428611431268552803'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/wf-40-part-2-flowchart-workflow.html' title='WF 4.0 - Part 2. The Flowchart Workflow &amp; Designer'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6191716207497380481</id><published>2009-03-05T14:36:00.018Z</published><updated>2009-08-21T16:43:24.156Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 - Part 1. The Sequential Designer</title><content type='html'>&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;This has now been superceeded by &lt;a href="http://blog.batfishsolutions.com/2009/08/wf-40-part-1-sequential-designer.html" style="text-decoration: none;"&gt;This Post&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6191716207497380481?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6191716207497380481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6191716207497380481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6191716207497380481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6191716207497380481'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/wf-40-part-1-sequential-designer.html' title='WF 4.0 - Part 1. The Sequential Designer'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5923815450628633312</id><published>2009-03-03T10:08:00.003Z</published><updated>2009-03-03T10:13:17.690Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD'/><title type='text'>DDD South West registration opens!</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;The Registration for &lt;a href="http://www.dddsouthwest.com/"&gt;DDD South West&lt;/a&gt; has now opened!  Go register &lt;a href="http://www.dddsouthwest.com/"&gt;there&lt;/a&gt; immediatley!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dddsouthwest.com/"&gt;DDD South West&lt;/a&gt; is a free one day technical event on Saturday 23rd May 2009 at Queens College, Taunton with lots of top speakers doing sessions on damn interesting stuff.&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5923815450628633312?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5923815450628633312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5923815450628633312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5923815450628633312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5923815450628633312'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/ddd-south-west-registration-opens.html' title='DDD South West registration opens!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6349100747452681638</id><published>2009-03-02T15:39:00.006Z</published><updated>2009-03-02T16:01:15.381Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='Holiday'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><title type='text'>Back from roaming around Italy</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;I've just a very pleasant 2 week roaming around Italy with my wife :)  The whole point of going was to do a &lt;a href="http://www.beadedlilyglassworks.com/course_descr.htm"&gt;course in Lampwork Bead&lt;/a&gt; making in Florence run by Tim and Lily at &lt;a href="http://www.beadedlilyglassworks.com/"&gt;Beaded Lilly Glass Works&lt;/a&gt;.  They were absolutley top hosts and I'd thoroughly recommend anyone interested in learning lampwork beads to go out to them :)  This is all part of a grand plan for my wife to start up her own Lampwork Bead emporium, the website should be up at the end of the month on &lt;a href="http://www.batfishbeads.com/"&gt;www.BatfishBeads.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is us making beads&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SawCokGR3sI/AAAAAAAAAEk/fQ1wXFkg6V4/s1600-h/j_UK.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 217px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SawCokGR3sI/AAAAAAAAAEk/fQ1wXFkg6V4/s320/j_UK.jpg" alt="" id="BLOGGER_PHOTO_ID_5308620956671008450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In other random unrelated news Xbox Live arcade went and released two of my favourite games while I was away.  The first will need no introduction as everyone know it as the best shmup ever, that's right &lt;a href="http://www.xbox.com/en-US/games/r/rtdimensionsxboxlivearcade/default.htm"&gt;R-Type Dimensions&lt;/a&gt;.  These are two games I've been trying to track down for years for my Arcade Machine but they always seem to come up when things are tight, so this release should sate my appitite for the time being :)&lt;br /&gt;&lt;br /&gt;The other game was a complete outsider.  Way back in my college days a craze swept my course for a game called &lt;a href="http://en.wikipedia.org/wiki/Scorched_Earth_%28computer_game%29"&gt;Scorched Earth&lt;/a&gt;.  It took place on a randomly generated landscape with tanks randomly placed on it which each player controlled.  The idea was to kill everyone else on the map and be the survivor.  You got cash for each kill and could bigger and better weapons, from dirt mobs which covered your opponents and they had to dig out, to Nuke which obliterated half the map.  It was good fun and passed the lunchtimes quickly :)  Anywho, XBox Live have just released what looks like a remake of it and it's called &lt;a href="http://www.deathtank.com/"&gt;Death Tank&lt;/a&gt;.  I've tried the trial and it's cracking, the number of weapons was more limited but that could be just the trial...  Anywho, go check it out, it's an excellent party game :D&lt;br /&gt;&lt;br /&gt;Workflow, in the next couple of days I'm going to start posting a series of articles on WF 4.0.  I'll start off with the creating a new custom activity and work my way up from there.  So keep posted for more information.  These articles will be based on the PDC build, so I'll update them when the Beta becomes available :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6349100747452681638?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6349100747452681638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6349100747452681638' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6349100747452681638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6349100747452681638'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/03/back-from-roaming-around-italy.html' title='Back from roaming around Italy'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ca_lHPWeme0/SawCokGR3sI/AAAAAAAAAEk/fQ1wXFkg6V4/s72-c/j_UK.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-265725719157693495</id><published>2009-02-11T12:13:00.008Z</published><updated>2009-02-12T22:18:30.163Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='nHibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><title type='text'>Upcoming Sessions at NxtGenUG Southampton</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;We've got some really exciting sessions coming up in Southampton, so I thought I'd tell you about them.&lt;br /&gt;&lt;br /&gt;First off, next week on the 19th Feb we've got &lt;a href="http://silverlightuk.blogspot.com/"&gt;Chris Hay&lt;/a&gt; coming down to do his talk on all things Azure.  You can Register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=189"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Then on March 19th we have &lt;a href="http://codebetter.com/blogs/ian_cooper/"&gt;Ian Cooper&lt;/a&gt; coming down to do his excellent talk on Nhibernate.  You can register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=201"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On April 16th we have &lt;a href="http://mtaulty.com/"&gt;Mike Taulty&lt;/a&gt; paying us a return visit, and doing a session on Parallel Extensions in .Net 4.0.  You can regsiter &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=199"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And Then I'll be doing a session on PRISM on May 14th. You can register &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=200"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think we've pretty much covered everyones tastes over the coming months, so if you're not already a member or been to one of our events before come along and check us out :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-265725719157693495?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/265725719157693495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=265725719157693495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/265725719157693495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/265725719157693495'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/02/upcoming-sessions-at-nxtgenug.html' title='Upcoming Sessions at NxtGenUG Southampton'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-9083213671084366309</id><published>2009-02-06T10:58:00.005Z</published><updated>2009-02-07T12:09:43.331Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PRISM'/><category scheme='http://www.blogger.com/atom/ns#' term='DDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>DDD SouthWest sessions</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;I've just submitted 2 sessions for &lt;a href="http://www.dddsouthwest.com/"&gt;DDD South West&lt;/a&gt;, one on &lt;a href="http://msdn.microsoft.com/wf/future"&gt;WF 4.0&lt;/a&gt; which will be a variant on what I'm presenting at &lt;a href="http://www.guysmithferrier.com/"&gt;Guy Smith Ferrier&lt;/a&gt;s &lt;a href="http://www.dotnetdevnet.com/"&gt;Dot Net Dev Net&lt;/a&gt; group next &lt;a href="http://www.dotnetdevnet.com/Meetings/tabid/54/EntryID/29/Default.aspx"&gt;Tuesday&lt;/a&gt;.  Here's the blurb:&lt;br /&gt;&lt;br /&gt;A lap around WF 4.0&lt;br /&gt;&lt;br /&gt;&lt;span class="EC_Normal" id="EC_dnn_ctr377_MainView_ViewEntry_lblEntry"&gt;WF 4.0 was announced at PDC 08, and  includes some very sexy new features.  We'll take a spin through some of the new  features including custom activity creation and WCF intergration to see how WF  has evolved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second is on PRISM which will be completely new and shiny for DDD South West.  Here's the blurb:&lt;br /&gt;&lt;br /&gt;Come see my PRISM-tation&lt;br /&gt;&lt;br /&gt;PRISM is the latest incarnation of the  Composite Application Guidance from the MS Patterns and Practices team.  The  guidance allows you to build extensible application quickly and easily in either  WPF or Silverlight.  In this session I'll show you how easy it is to build a WPF  application and then extend it with PRISM.&lt;br /&gt;&lt;br /&gt;Hopefully one of them will get accepted :)&lt;br /&gt;&lt;br /&gt; : UPDATE :&lt;br /&gt;&lt;br /&gt;My wife has very kindly pointed out that this is actually our wedding anniversary and her 30th B'day weekend.  OOPS!  So I won't be going, thank god I didn't forget otherwise that would be really stereotypical and embarrassing! :P&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-9083213671084366309?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/9083213671084366309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=9083213671084366309' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/9083213671084366309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/9083213671084366309'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/02/ddd-southwest-sessions.html' title='DDD SouthWest sessions'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6349982251042261465</id><published>2009-02-01T18:48:00.003Z</published><updated>2009-02-01T18:57:34.364Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>The conclusions of the PDC Podcast Trilogy</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;The third and final part of &lt;a href="http://silverlightuk.blogspot.com/"&gt;Chris&lt;/a&gt; and my &lt;a href="http://www.microsoftpdc.com/"&gt;PDC Odessey&lt;/a&gt; is now available as a podcast on the NxtGen site &lt;a href="http://www.nxtgenug.net/Podcasts.aspx?PodcastID=66"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Out of all the awesome people we interviewed at PDC, this was probably the most exciting for me as we interview what seemed like the entire WF team!  We also managed to bag a rather excellent WCF interview amoung others.  So come download it and enjoy :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6349982251042261465?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6349982251042261465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6349982251042261465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6349982251042261465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6349982251042261465'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/02/conclusions-of-pdc-podcast-trilogy.html' title='The conclusions of the PDC Podcast Trilogy'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4201231120769824286</id><published>2009-01-23T09:59:00.001Z</published><updated>2009-01-23T10:01:11.258Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assault Course'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>The revenge of the Silverlight Assault Course</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;Not satisfied with conquering the South Coast and Ireland, Rich and Chris are taking the Silverlight Assault Course to Wiltshire.&lt;br /&gt;&lt;br /&gt;Details can be found &lt;a href="http://www.richplum.co.uk/meetings/20090124.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4201231120769824286?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4201231120769824286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4201231120769824286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4201231120769824286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4201231120769824286'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/revenge-of-silverlight-assault-course.html' title='The revenge of the Silverlight Assault Course'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3841998811277214176</id><published>2009-01-22T14:56:00.002Z</published><updated>2009-01-22T14:57:14.315Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>An interesting video on Testing :)</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;A friend passed this link onto me recently.  The speaker makes some good points, but my favourite is reduce the complexity :)&lt;br /&gt;&lt;br /&gt;Have a look &lt;a href="http://www.infoq.com/presentations/francl-testing-overrated"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3841998811277214176?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3841998811277214176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3841998811277214176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3841998811277214176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3841998811277214176'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/interesting-video-on-testing.html' title='An interesting video on Testing :)'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3674687125399428936</id><published>2009-01-19T10:20:00.013Z</published><updated>2009-01-19T11:43:05.219Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assault Course'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Ireland'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight Assault Course - Ireland</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;On the 16th January, 4 NxtGenUG bods flew out to Ireland to give the &lt;a href="http://www.nxtgenug.net/NewsArticle.aspx?ArticleID=316"&gt;Silverlight Assault Course in Dublin and Cork&lt;/a&gt; our hostess for the weekend was &lt;a href="http://blogs.msdn.com/martharotter"&gt;Martha Rotter&lt;/a&gt;.  I compiled a list of questions during the sessions, and they will be posted here in due course with answers and resources mentioned during the nuggets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dublin - 17th January 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The event kicked off early on a blustery day at the Microsoft Campus in &lt;a href="http://www.microsoft.com/ireland/contact/"&gt;Dublin&lt;/a&gt;.  Speakers &lt;a href="http://www.costall.net/"&gt;Rich Costall&lt;/a&gt; and &lt;a href="http://silverlightuk.blogspot.com/"&gt;Chris Hay&lt;/a&gt; felt a news conference was needed for this historic event of Irish and English developer communities working together.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SXRZaxrxADI/AAAAAAAAACg/mOjSgs9dtvI/s1600-h/P1000853.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SXRZaxrxADI/AAAAAAAAACg/mOjSgs9dtvI/s320/P1000853.JPG" alt="" id="BLOGGER_PHOTO_ID_5292953778615550002" border="0" /&gt;&lt;/a&gt;As you can see the massed crowds were overcome with excitement and joy at their announcements.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SXRZbcLhsgI/AAAAAAAAACo/GpdjR2f80S0/s1600-h/P1000854.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SXRZbcLhsgI/AAAAAAAAACo/GpdjR2f80S0/s320/P1000854.JPG" alt="" id="BLOGGER_PHOTO_ID_5292953790023053826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A large crowd of developers (and one designer!) crowded into the lecture theatre ready to be wowed and educated.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SXRXtzZ5duI/AAAAAAAAACY/4s7zl_Wb_J0/s1600-h/P1000858.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SXRXtzZ5duI/AAAAAAAAACY/4s7zl_Wb_J0/s320/P1000858.JPG" alt="" id="BLOGGER_PHOTO_ID_5292951906471737058" border="0" /&gt;&lt;/a&gt;The morning started with Rich and Chris taking the attendees through the basics of Silverlight, What is a Silverlight project composed of, how do you host a Silverlight app, what is contained within the mysterious XAP file?, and how to communicate with Silverlight.   This gave the attendees the vital basics of how a Silverlight app hangs together.  Time for a quick coffee break before marching onto the second part which got into the juicy details of the DLR, Styling, Templating, Images and Media.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRbDcSY7kI/AAAAAAAAACw/nCeIMN34DWg/s1600-h/P1000859.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRbDcSY7kI/AAAAAAAAACw/nCeIMN34DWg/s320/P1000859.JPG" alt="" id="BLOGGER_PHOTO_ID_5292955576758234690" border="0" /&gt;&lt;/a&gt;The second part rocketed along with an impressive array of Silverlight Tip and Tricks for creating the basics needed to put your Silverlight app together!  We also discovered Chris was a big Monty Python fan with a particular love of the "Knights of the Round Table" Lego tribute video and the "Lumberjack Song".  Lunch swiftly arrived and everyone tucked into the traditional food of choice, pizza.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRcjb86dBI/AAAAAAAAADA/j1c0iutjE8M/s1600-h/P1000861.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRcjb86dBI/AAAAAAAAADA/j1c0iutjE8M/s320/P1000861.JPG" alt="" id="BLOGGER_PHOTO_ID_5292957225935598610" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRcjLhhSoI/AAAAAAAAAC4/BgRlVUk9tGE/s1600-h/P1000860.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRcjLhhSoI/AAAAAAAAAC4/BgRlVUk9tGE/s320/P1000860.JPG" alt="" id="BLOGGER_PHOTO_ID_5292957221525736066" border="0" /&gt;&lt;/a&gt;Pizza consumed everyone piled back into the lecture theatre for the increasingly exciting Silverlight topics.  Part 3 contained the real meat of Silverlight Brushes, Transformations, Animation, Data Binding and Isolated Storage.&lt;br /&gt;&lt;br /&gt;The attendees were now armed with everything they needed to be wowed in part 4 by Rich and Chris's games examples and coffee from the break.  Rich took the audience through his Manic Miner port, and Chris rolled out his Spectrum emulator, both of which showed what could be achieved using the previous nuggets.  Part 4 also contained the essential advanced topics needed to create a truly custom experience in Silverlight, such as User Controls, Encryption, Compression and Martha's excellent integration nugget which included a demo of how easy the Deep Zoom Composer is to use and how to control Flash from within Silverlight (No, really!).&lt;br /&gt;&lt;br /&gt;With the attendees' brains bursting to the limits with Silverlight info, it was time to roll out the NxtGen game show, Swaggily Fortunes.  Having just achieved NxtGen Game Show Console Trainee certification, we were all set to swag the attendees!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRfr4OkxCI/AAAAAAAAADI/4dYKN4l6aKo/s1600-h/P1000877.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRfr4OkxCI/AAAAAAAAADI/4dYKN4l6aKo/s320/P1000877.JPG" alt="" id="BLOGGER_PHOTO_ID_5292960669499704354" border="0" /&gt;&lt;/a&gt;10 attendees leapt from their seats, in what can only be described as a "Swag frenzy" we started the Show.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRfsbBEIWI/AAAAAAAAADY/HXJ3vIzBMuI/s1600-h/P1000881.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRfsbBEIWI/AAAAAAAAADY/HXJ3vIzBMuI/s320/P1000881.JPG" alt="" id="BLOGGER_PHOTO_ID_5292960678838280546" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRg5EwPMjI/AAAAAAAAADg/fJtgdjS8Grk/s1600-h/P1000907.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRg5EwPMjI/AAAAAAAAADg/fJtgdjS8Grk/s320/P1000907.JPG" alt="" id="BLOGGER_PHOTO_ID_5292961995712049714" border="0" /&gt;&lt;/a&gt;It was tough going, with the contestants battling heroically to gain dominion.  But there could be only one team of winners.  All contestants made away with an impressive selection of swag.&lt;br /&gt;&lt;br /&gt;The winners swag.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRhyyz45gI/AAAAAAAAADo/IGJwXgsN6c8/s1600-h/P1000864.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 320px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRhyyz45gI/AAAAAAAAADo/IGJwXgsN6c8/s320/P1000864.JPG" alt="" id="BLOGGER_PHOTO_ID_5292962987327940098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The runner ups swag.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRhzbIeguI/AAAAAAAAADw/VO4KeK08u9Q/s1600-h/P1000865.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 320px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRhzbIeguI/AAAAAAAAADw/VO4KeK08u9Q/s320/P1000865.JPG" alt="" id="BLOGGER_PHOTO_ID_5292962998151709410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;With heads (and in some cases arms!) filled to bursting the attendees dispersed into the evening, and we packed up to catch a train to Cork.&lt;br /&gt;&lt;br /&gt;We caught the 7pm train to Cork and were relived to get in on time without any delays, as our very helpful and friendly cab driver from the Microsoft campus had informed us that every line had trees blown down on to it, but he'd happily drive us down to Cork if we wanted to :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cork - 18th January 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second event kicked off Sunday morning in the Imperial Hotel (Where we'd been staying! :)) in the Morgan Suite.  This event was being hosted by &lt;a href="http://www.joegill.com/"&gt;Joe Gill&lt;/a&gt; of the Microsoft Technology User Group Ireland (&lt;a href="http://www.cork.mtug.ie/"&gt;mtug.ie&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;No press conference this time, which I think helped fill the Morgan suite with another large crowd of Developers and several Designers ready for Silverlight to be pumped into their brains.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRjTvSb08I/AAAAAAAAAD4/gVziUKTL104/s1600-h/P1000916.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SXRjTvSb08I/AAAAAAAAAD4/gVziUKTL104/s320/P1000916.JPG" alt="" id="BLOGGER_PHOTO_ID_5292964652829627330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRjT8LwLHI/AAAAAAAAAEA/lJMf6VV0zcM/s1600-h/P1000917.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SXRjT8LwLHI/AAAAAAAAAEA/lJMf6VV0zcM/s320/P1000917.JPG" alt="" id="BLOGGER_PHOTO_ID_5292964656291261554" border="0" /&gt;&lt;/a&gt;Rich, Chris and Martha delivered their nuggets to the attendees with the same skill and knowledge as had been demonstrated the previous day, I won't reiterate them here as the schedule was the same :)&lt;br /&gt;&lt;br /&gt;The attendees heads were soon bursting with Silverlight knowledge, tips and tricks, so what better way to round off the day than to bring on Swaggily Fortunes.  Another 10 attendees leapt from the gathered ranks ready to be questions and swagged within an inch of their lives.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SXRktYRVavI/AAAAAAAAAEI/pDCg16DcFZo/s1600-h/P1000921.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SXRktYRVavI/AAAAAAAAAEI/pDCg16DcFZo/s320/P1000921.JPG" alt="" id="BLOGGER_PHOTO_ID_5292966192839224050" border="0" /&gt;&lt;/a&gt;Again the competition was intense, the scoring dubious in places, but there could be only one winner!  Rich's team won for a second time that weekend and the swag was distributed to both teams.&lt;br /&gt;&lt;br /&gt;I speak for Rich C, Chris H, John P and myself when I say we had a stonking time and really enjoyed meeting the folks at both events and giving the courses.&lt;br /&gt;&lt;br /&gt;We'd also like to thank Martha for all her hard work organising the weekend us, as we all know organising Devs is like herding cats, and thanks to Joe Gill for hosting and providing us with a venue in Cork.&lt;br /&gt;&lt;br /&gt;See you next time! ;)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3674687125399428936?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3674687125399428936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3674687125399428936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3674687125399428936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3674687125399428936'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/silverlight-assault-course-ireland.html' title='Silverlight Assault Course - Ireland'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ca_lHPWeme0/SXRZaxrxADI/AAAAAAAAACg/mOjSgs9dtvI/s72-c/P1000853.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5716048772158151901</id><published>2009-01-14T10:19:00.003Z</published><updated>2009-01-14T10:42:39.013Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>WF 4.0 at DotNetDevNet</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;On Tuesday the 10th Feburary I'll be travelling up to &lt;a href="http://guysmithferrier.com/"&gt;Guy Smith-Ferriers&lt;/a&gt; &lt;a href="http://www.dotnetdevnet.com/"&gt;DotNetDevNet User Group&lt;/a&gt; and doing a talk on WF 4.0, which was revealed at PDC 08.&lt;br /&gt;&lt;br /&gt;The talks in 2 segments, the first is a recap about WF in  general and why it's a good thing, the second will concentrate on the new features of WF 4.0.&lt;br /&gt;&lt;br /&gt;So if you in the area, come along!  The registration link can be found &lt;a href="http://www.dotnetdevnet.com/Meetings/tabid/54/EntryID/29/Default.aspx"&gt;here&lt;/a&gt;, and I hope to see you there! :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5716048772158151901?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5716048772158151901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5716048772158151901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5716048772158151901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5716048772158151901'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/wf-40-at-dotnetdevnet.html' title='WF 4.0 at DotNetDevNet'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5972179328561218565</id><published>2009-01-11T23:13:00.005Z</published><updated>2009-01-11T23:19:41.518Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><title type='text'>Windows 7 and Visual Studio 2008</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;I've now been using Windows 7 Beta since release to MSDN subscribers, and am pretty chuffed with it.  The new Taskbar is a joy to use, and the whole thing is very stable :)&lt;br /&gt;&lt;br /&gt;I've only one niggle with it and that is that when I'm trying to add 3rd party controls to Visual Studio via the browse assemblies dialog, VS2008 has a think, throws a silent fit and disappears.  This doesnt happen when adding references.&lt;br /&gt;&lt;br /&gt;Has anyone else had experience of this?  I shall do some digging and see if I can isolate it a bit more :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5972179328561218565?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5972179328561218565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5972179328561218565' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5972179328561218565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5972179328561218565'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/windows-7-and-visual-studio-2008.html' title='Windows 7 and Visual Studio 2008'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1103898901189619308</id><published>2009-01-08T10:13:00.005Z</published><updated>2009-01-08T15:58:40.060Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Session'/><category scheme='http://www.blogger.com/atom/ns#' term='Live'/><title type='text'>Dr Neils coming to Southampton!</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;As apart of our upcoming January session on design with Tricky, I'm very pleased to announce that Dr Neil (MVP &amp;amp; Regional Director) will also be presenting!&lt;br /&gt;&lt;br /&gt;If you don't know who Dr Neil is (Shame on you!) then you can check out more on his &lt;a href="http://drneil.blogspot.com/"&gt;blog&lt;/a&gt; and on his &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?name=roodyn"&gt;MVP&lt;/a&gt; profile.  I saw Dr Neil present at ReMIX:UK 07 with Tricky and then again at ReMIX:UK 08, both sessions were absolutley cracking.  Dr Neil can be considered a Guru on all things Live Service related from Microsoft.&lt;br /&gt;&lt;br /&gt;I'm very excited about this session as it was one of the first we started planning when Southampton was just getting off the ground, in fact doubly excited now that Dr Neil will be joining us.&lt;br /&gt;&lt;br /&gt;Go register now at the following &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=184"&gt;link&lt;/a&gt;!&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1103898901189619308?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1103898901189619308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1103898901189619308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1103898901189619308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1103898901189619308'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/dr-neils-coming-to-southampton.html' title='Dr Neils coming to Southampton!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3410875065886195195</id><published>2009-01-06T12:14:00.004Z</published><updated>2009-01-06T15:25:59.042Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assault Course'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>The Silverlight Assault Course comes to Ireland</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;After our cracking initial run of the Silverlight Assault Course down here on the sunny South Coast in July, we're taking it on tour to Ireland!&lt;br /&gt;&lt;br /&gt;Martha Rotter has the details on her blog for Dublin &lt;a href="http://blogs.msdn.com/martharotter/archive/2009/01/05/silverlight-assault-course-agenda-plus-dublin-registration.aspx"&gt;here&lt;/a&gt; and Cork &lt;a href="http://blogs.msdn.com/martharotter/archive/2009/01/05/hey-cork-developers-silverlight-assault-course-coming-your-way.aspx"&gt;here&lt;/a&gt;, and of course extra details can be found on the NxtGenUG site &lt;a href="http://www.nxtgenug.net/NewsArticle.aspx?ArticleID=316"&gt;here&lt;/a&gt;.  We're be in Dublin on the 17th and the Cork on the 18th.&lt;br /&gt;&lt;br /&gt;See you there!&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3410875065886195195?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3410875065886195195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3410875065886195195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3410875065886195195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3410875065886195195'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2009/01/silverlight-assault-course-comes-to.html' title='The Silverlight Assault Course comes to Ireland'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5240110436990071522</id><published>2008-12-17T20:58:00.004Z</published><updated>2008-12-17T21:15:59.085Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Windows 7 a month and a half in</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;I've now been playing with Windows 7 on my Dev laptop for the last month and a half and can't complain.  I was initially a little dubious at putting an Alpha on a live box, but I've had no problems.&lt;br /&gt;&lt;br /&gt;So what has this given me over Vista?  At this stage, no huge UI differences apart from my new friend the Lighthouse down in the system tray&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SUlqi-n5q1I/AAAAAAAAACQ/NuoJ8cMs_kw/s1600-h/Lighthouse.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 90px; height: 40px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SUlqi-n5q1I/AAAAAAAAACQ/NuoJ8cMs_kw/s320/Lighthouse.png" alt="" id="BLOGGER_PHOTO_ID_5280869187227069266" border="0" /&gt;&lt;/a&gt;This rather natty little chap hides notifications and the up arrow to it's left hides icons, so you no longer have icons a mile long and continual notifications poppng up.  You have the ability to decide which icons are displayed in the system tray or hidden behind the up arrow, as well as to what level notifications are displays.  Top stuff :)&lt;br /&gt;&lt;br /&gt;Another cool feature is you can now connect to WiFi networks that don't broadcast their name, which you couldn't do with XP or Vista (AFAIK).&lt;br /&gt;&lt;br /&gt;And lastly we've got the ability to mount Virtual HDs, which means I've been able to share drives between the Virtual PC and the actual box when I've needed to.&lt;br /&gt;&lt;br /&gt;Apart from that a lot of the cool new features aren't available until the Beta, but you can use the Blue Badge unlocking feature to get at unfinsihed versions.  A friend did it on a virtual machine, but the features weren't that stable so I gave it a miss.&lt;br /&gt;&lt;br /&gt;I've also installed AVG Anti Virus and haven't had any problems with it, shame on you McAfee!&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5240110436990071522?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5240110436990071522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5240110436990071522' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5240110436990071522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5240110436990071522'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/12/windows-7-month-and-half-in.html' title='Windows 7 a month and a half in'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ca_lHPWeme0/SUlqi-n5q1I/AAAAAAAAACQ/NuoJ8cMs_kw/s72-c/Lighthouse.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3045720027552097211</id><published>2008-12-16T21:49:00.002Z</published><updated>2008-12-16T21:52:46.358Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><title type='text'>PDC Podcast number 2</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;The second podcast from my excursion to PDC is now up on the NxtGenUG site &lt;a href="http://www.nxtgenug.net/Podcasts.aspx?PodcastID=65"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this one Chris and I talk to Silverlight Guru Shaun Burke, and PDC organisers Mike Swanson and Tim Sneath.  Mike even lets slip a little nugget about when VS2010 should be around :)&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;The third and final podcast should be out in time for the New Year :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3045720027552097211?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3045720027552097211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3045720027552097211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3045720027552097211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3045720027552097211'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/12/pdc-podcast-number-2.html' title='PDC Podcast number 2'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1649679890278340031</id><published>2008-11-23T12:02:00.003Z</published><updated>2009-01-09T10:38:31.862Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Skype'/><category scheme='http://www.blogger.com/atom/ns#' term='McAfee'/><title type='text'>Windows 7, Skype and McAfee</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;Today I tried reinstalling McAfee anti virus to be told that Windows 7 isn't supported by it, that was a quick and easy trial.&lt;br /&gt;&lt;br /&gt;Additonally I ran into another incompatibility, Skype starts up quite happily and then quits after a random time period.  As always no logs, or event entries :P&lt;br /&gt;&lt;br /&gt;UPDATE 9th Jan 2009&lt;br /&gt;&lt;br /&gt;I just tried Mcafee on the Beta build of Windows 7, and unsurprisingly it didn't work either :)&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var pageTracker = _gat._getTracker("UA-6423436-1");&lt;br /&gt;pageTracker._trackPageview();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1649679890278340031?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1649679890278340031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1649679890278340031' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1649679890278340031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1649679890278340031'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/windows-7-skype-and-mcafee.html' title='Windows 7, Skype and McAfee'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-8858743756658093563</id><published>2008-11-17T10:57:00.003Z</published><updated>2008-11-17T11:07:05.023Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Update'/><title type='text'>Windows 7 and Windows Update</title><content type='html'>So I've been trying to figure out why Windows Update refuses to work on my Laptop, which was the cause of the whole VHD mouting issue.&lt;br /&gt;&lt;br /&gt;So first off, why can't it connect to the internet?  What else was effected by this problem?  Did this affect all programs?  Well no, first off Firefox, IE, Outlook and Skype were connecting quite happily.  But Live Messenger wasn't.  This implied to me that it was down to some sort of configuration, as why would somethings get out onto the internet as opposed to others?&lt;br /&gt;&lt;br /&gt;I opened up McAfee Security centre, but this opened in a white window and didn't do anything else.  That was odd, so I checked Windows Firewall and this was on too.  So in theory Windows Firewall should be controlling connections in and out, and is configured by default to include rules for both Messenger and Update.  I turned Windows Firewall off and tried update and messenger again.  Still no joy.  Odd, ok so lets uninstall McAffe.  One uninstallation and restart later and I'm connecting to Windows Update and Messenger.&lt;br /&gt;&lt;br /&gt;So it looks like McAfee being installed before the upgrade had upset things somehow.  I'll try reinstalling McAfee later on in the week and report back if it breaks again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-8858743756658093563?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/8858743756658093563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=8858743756658093563' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8858743756658093563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8858743756658093563'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/windows-7-and-windows-update.html' title='Windows 7 and Windows Update'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6129892558522801632</id><published>2008-11-14T10:15:00.004Z</published><updated>2008-11-17T11:07:38.627Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VHD'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Hard Disk'/><title type='text'>Windows 7 and the VHD mounting bug</title><content type='html'>As previously posted, I've upgraded my Dev laptop to run Windows 7 M3.  The main reason for this was that I wanted to be able to mount Virtual Hard Disks as actual drives.  But after the upgrade from Vista I was getting an error message whenever I tried to mount a VHD:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SR1SAczrpCI/AAAAAAAAACI/4HVRTNI7c4E/s1600-h/win7-error1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 115px;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SR1SAczrpCI/AAAAAAAAACI/4HVRTNI7c4E/s320/win7-error1.png" alt="" id="BLOGGER_PHOTO_ID_5268457306779788322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I contacted the Windows 7 team and they were intrigued.  It turns out that it isn't actually a problem with the VHD functionality, but instead a driver hasn't been installed correctly from Windows Update.  The guys were saying it looked very much like the installation had begun for this driver, then stopped and cancelled for some reason.&lt;br /&gt;&lt;br /&gt;So they got me to check out my Device Manager and I was missing the Microsoft VHD driver under Storage Devices, but had 2 unknown devices under base devices.  I was instructed to delete said unknowns and try mounting another VHD.  This time a new Device appeared under Base Devices called Microsoft ISO VHD something (I forget the last bit, it was another acronym).  Ok so this is an improvement but still not right, according to the Microsoft guys.  So next we updated the driver for this new device manually, as Windows Update wasn't connecting for some reason.  After going to Disk Drives and selecting the only compatible device, a Microsoft VHD driver, we installed it and hey presto I now have the rather sexy functionality of being able to mount VHDs :)&lt;br /&gt;&lt;br /&gt;One point to note, is that VHDs do not stay mounted after a restart or shutdown of the system.&lt;br /&gt;&lt;br /&gt;So thanks to the guys over on the Windows 7 team, you rock! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6129892558522801632?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6129892558522801632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6129892558522801632' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6129892558522801632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6129892558522801632'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/windows-7-and-vhd-mounting-bug.html' title='Windows 7 and the VHD mounting bug'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ca_lHPWeme0/SR1SAczrpCI/AAAAAAAAACI/4HVRTNI7c4E/s72-c/win7-error1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-5372047543415794278</id><published>2008-11-11T16:50:00.004Z</published><updated>2008-11-11T16:54:15.061Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Windows 7 and WF 4.0</title><content type='html'>I've now had Windows 7 on my box since Sunday and although i don't have some of the nicer features coming in the Beta (the improved Taskbar and dockable Apps) I'm enjoying the features I've got to play with.&lt;br /&gt;&lt;br /&gt;I've hit a problem with the Virtual Hard Disk mounting, where every time I try mounting a VHD file I get told that no provider is available. Here's a piccy of the image.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SRm2aXhWcdI/AAAAAAAAABg/ZxAm93zVFDA/s1600-h/win7-error1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 115px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SRm2aXhWcdI/AAAAAAAAABg/ZxAm93zVFDA/s320/win7-error1.png" alt="" id="BLOGGER_PHOTO_ID_5267441803293258194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've contacted the Windows 7 team (who are VERY helpful) and have identified that is was a problem with my upgrade from Vista as a driver didn't install properly. I haven't got the solution yet, as I'm currently helping the team understand why the installation didn't work. Once we know why it failed, I'll get the solution and I'll post if here. So if you've upgraded from Vista and VHD mounting isn't working and you're getting the same message as me, stay tuned as the solution will be up soon!&lt;br /&gt;&lt;br /&gt;So on Windows 7 I'm running the VPC of the WF 4.0. I've run the first 3 labs so far and it's looking damn good. Labs 1 to 3 are:&lt;br /&gt;&lt;br /&gt;1. Your first workflow&lt;br /&gt;2. DB interaction&lt;br /&gt;3. Your first WCF hosted Workflow&lt;br /&gt;&lt;br /&gt;The new WPF designer is a lot friendlier to use than the original.  I particular like that:&lt;br /&gt;&lt;br /&gt;You now longer have to jump to code in order to setup variables in the Workflow&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SRm2nFFCf-I/AAAAAAAAABo/blAe3eB578I/s1600-h/variables.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 290px;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SRm2nFFCf-I/AAAAAAAAABo/blAe3eB578I/s320/variables.png" alt="" id="BLOGGER_PHOTO_ID_5267442021680971746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And Arguments :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SRm2xdzo9eI/AAAAAAAAABw/nozEdWjNww0/s1600-h/arguments.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SRm2xdzo9eI/AAAAAAAAABw/nozEdWjNww0/s320/arguments.png" alt="" id="BLOGGER_PHOTO_ID_5267442200117573090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can set variables on the activities (a lot friendlier than continually using the Properties pane)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SRm23gfn_6I/AAAAAAAAAB4/4I0DMZd46J0/s1600-h/Assign.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 255px; height: 130px;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SRm23gfn_6I/AAAAAAAAAB4/4I0DMZd46J0/s320/Assign.png" alt="" id="BLOGGER_PHOTO_ID_5267442303918145442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and of course being a WPF based designer, you can now zoom in :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SRm3AdXiXqI/AAAAAAAAACA/vaEBdDWAyWg/s1600-h/designer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 216px;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SRm3AdXiXqI/AAAAAAAAACA/vaEBdDWAyWg/s320/designer.png" alt="" id="BLOGGER_PHOTO_ID_5267442457697738402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've found a few issues so far which I'm about to email in, but here they are in case you're interested in such things:&lt;br /&gt;&lt;br /&gt;1. Error messages for activties aren't modal&lt;br /&gt;&lt;br /&gt;2. Doing HOL 3, adding Rule called "If DiscountPoints &lt;&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Misspelt variable in condition&lt;/li&gt;&lt;li&gt;Corrected spelling&lt;/li&gt;&lt;li&gt;Finished setting up rest of rule&lt;/li&gt;&lt;li&gt;Noticed the error provider against the "Condition" stating the "Name 'DiscountPoint' is not declared".&lt;/li&gt;&lt;li&gt;This was odd as I had corrected this on the activity&lt;/li&gt;&lt;li&gt;Clicked the property, click a different property. The incorrect value from condition was then used to update the condition on the activity&lt;/li&gt;&lt;li&gt;Correct in the property, click out and the activity was updated3. No feedback from interaction with bread crumbs on WF designer.&lt;/li&gt;&lt;/ol&gt;3. I would expect highlighting of the word I'm over, or something to show it can be used.&lt;br /&gt;&lt;br /&gt;4. WCFTestClient freezes at approx 50% when adding a service that contains an error&lt;br /&gt;&lt;br /&gt;5. Compiler didn't pick up error in Assign activity when a variable that didn't exist was used&lt;br /&gt;&lt;br /&gt;Whats next? Well I'll be looking at doing a project and putting the walkthough on this blog and looking at writing a session on WF 4.0. Maybe even a comparison with 3.0/3.5 :) Stay tuned for my further adventures in WF and possibly dates for a WF 4.0 session!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-5372047543415794278?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/5372047543415794278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=5372047543415794278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5372047543415794278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/5372047543415794278'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/windows-7-and-wf-40_11.html' title='Windows 7 and WF 4.0'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ca_lHPWeme0/SRm2aXhWcdI/AAAAAAAAABg/ZxAm93zVFDA/s72-c/win7-error1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6935882889690353026</id><published>2008-11-10T15:01:00.002Z</published><updated>2008-11-10T16:19:41.563Z</updated><title type='text'>PDC Podcasts</title><content type='html'>The interviews &lt;a href="http://silverlightuk.blogspot.com/"&gt;Chris Hay&lt;/a&gt; and me recorded at PDC are available on the NxtGen website &lt;a href="http://www.nxtgenug.net/Podcasts.aspx?PodcastID=59"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy our first attempt at interviewing software legends! :D  We've got (in no particular order):&lt;br /&gt;&lt;br /&gt;Don Box&lt;br /&gt;Chris Anderson&lt;br /&gt;Martin ("The Gudge") Gudgin&lt;br /&gt;Daniel Moth&lt;br /&gt;Dan Fernandez&lt;br /&gt;Brian Keller&lt;br /&gt;&lt;br /&gt;We've got more to come, Workflow and related technologies should be the next one up :)&lt;br /&gt;&lt;br /&gt;Cheers for listening :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6935882889690353026?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6935882889690353026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6935882889690353026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6935882889690353026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6935882889690353026'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/pdc-podcasts.html' title='PDC Podcasts'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4752901609772674137</id><published>2008-11-04T17:05:00.002Z</published><updated>2008-11-04T17:09:43.542Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><category scheme='http://www.blogger.com/atom/ns#' term='WF 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Regions and PDC Hard Disks</title><content type='html'>I've just started to get my teeth into the Hard Disks we were given at PDC.  So the obvious first port of call is the Wf 4.0 stuff I saw demoed.&lt;br /&gt;&lt;br /&gt;Virtual Image runs up, good stuff.  Put the password in, nope.  Hmmm, maybe the caps is on, try again, nope.  Realise I'm using a Virtual Image setup for Americans, so try the " key, and we're in :)&lt;br /&gt;&lt;br /&gt;I'm pleased to say all the Virtual Labs are included on the Virtual Image, so will be cracking through them and posting stuff about it here :)&lt;br /&gt;&lt;br /&gt;I've also installed the M3 release of Windows 7 on my laptop as the main operating system.  I know, brave or stupid, you decide ;)  The main reason is that I want to take advantage of the ability to mount VHD as actual drives.  I'll report back on my progress with that too...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4752901609772674137?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4752901609772674137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4752901609772674137' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4752901609772674137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4752901609772674137'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/11/regions-and-pdc-hard-disks.html' title='Regions and PDC Hard Disks'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-3441026631187969731</id><published>2008-10-28T17:14:00.003Z</published><updated>2008-10-28T17:17:21.866Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Two bits of sexy news from PDC :)</title><content type='html'>WF 3.0/3.5 has effectively been taken out back and shot, and replaced with alot sexier version.  First look makes it look far easier to use and extend, and can be skinned with WPF :)&lt;br /&gt;&lt;br /&gt;VS2010 is being converted to a WPF based app (like the Expression tools), and will be taking advantage of a new extensibility model being included in .Net 4.0.&lt;br /&gt;&lt;br /&gt;I can't wait to get hold of the CTPs! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-3441026631187969731?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/3441026631187969731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=3441026631187969731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3441026631187969731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/3441026631187969731'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/two-bits-of-sexy-news-from-pdc.html' title='Two bits of sexy news from PDC :)'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-214542090276487782</id><published>2008-10-22T14:22:00.002Z</published><updated>2008-10-22T14:23:10.761Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDD7'/><category scheme='http://www.blogger.com/atom/ns#' term='Developer Day 7'/><title type='text'>Developer Day 7</title><content type='html'>The registration for DDD 7 has gone live, and promptly filled up.  Best get on that waiting list!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developerday.co.uk/ddd/default.asp"&gt;http://www.developerday.co.uk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-214542090276487782?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/214542090276487782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=214542090276487782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/214542090276487782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/214542090276487782'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/developer-day-7.html' title='Developer Day 7'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1712158516181554321</id><published>2008-10-17T09:41:00.003Z</published><updated>2008-10-17T09:42:10.076Z</updated><title type='text'>PDC Sessions</title><content type='html'>The timetable for the sessions has been announced for PDC!&lt;br /&gt;&lt;br /&gt;You can have a look at it &lt;a href="http://www.microsoftpdc.com/View.aspx?post=91d46819-8472-40ad-a661-2c78acb4018c:8999983&amp;amp;tag=PDC2008"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll definatley be at the WF ones, and probably the OSLO onces so came and say hi if you see me :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1712158516181554321?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1712158516181554321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1712158516181554321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1712158516181554321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1712158516181554321'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/pdc-sessions.html' title='PDC Sessions'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-2649296841798272614</id><published>2008-10-16T10:01:00.008Z</published><updated>2008-10-16T13:36:50.651Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>SSRS to Web Service</title><content type='html'>I've recenlty been doing some work with Sql Server Reporting Services talking to a WCF Service.  This isn't quite as easy as it sounds.  The first thing you need to do is specify a new data source as an XML based source.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ca_lHPWeme0/SPcZ9mI3alI/AAAAAAAAABI/qJoc1M1MZvw/s1600-h/XmlSource.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Ca_lHPWeme0/SPcZ9mI3alI/AAAAAAAAABI/qJoc1M1MZvw/s320/XmlSource.png" alt="" id="BLOGGER_PHOTO_ID_5257699635978791506" border="0" /&gt;&lt;/a&gt;And the request to the Service replaces the text in the Dataset.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SPcZ9_Rgb-I/AAAAAAAAABQ/r5UzAK984vI/s1600-h/DataSet.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SPcZ9_Rgb-I/AAAAAAAAABQ/r5UzAK984vI/s320/DataSet.png" alt="" id="BLOGGER_PHOTO_ID_5257699642725920738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You then specify a nice request and response as with any message based WCF service:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;namespace MyReports&lt;br /&gt;{&lt;br /&gt;  [MessageContract(IsWrapped = true)]&lt;br /&gt;  public class DataRequest&lt;br /&gt;  {&lt;br /&gt;    [MessageBodyMember="A"]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _fieldA = string.Empty;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    [MessageBodyMember="B"]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _fieldB = string.Empty;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    [MessageBodyMember="C"]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _fieldC = string.Empty;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The response looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;namespace MyReports&lt;br /&gt;{&lt;br /&gt;  [MessageContract]&lt;br /&gt;  public class DataReponse&lt;br /&gt;  {&lt;br /&gt;    [MessageBodyMember="Data"]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private data[] _data;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And the data object looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;namespace MyReports&lt;br /&gt;{&lt;br /&gt;  [DataContract]&lt;br /&gt;  public class Data&lt;br /&gt;  {&lt;br /&gt;    [DataMember(Name="First"]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _field1;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    [DataMember(Name="Second"]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _field2;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    [DataMember(Name="Third"]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    private string _field3;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;  }&lt;br /&gt;&lt;br /&gt;  // Ctor, Getters and setters excluded&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Voila you're done... Or are you?!?&lt;br /&gt;&lt;br /&gt;I found quite a nasty gotcha in doing this.  My request class was only being partially populated everytime I did a request.  I checked the attributes on the service and classes, I used &lt;a href="http://www.pocketsoap.com/tcptrace/"&gt;TCP Trace&lt;/a&gt; to make sure the values were actually crossing the wire (which they were), but still the request wasn't being populated properly.&lt;br /&gt;&lt;br /&gt;I even asked my pal [insert favourite search engine here] but couldn't fnd anything on it.  So I started playing around with the fields in the report and low 2 of the 6 request params were now being populated!  What had changed?  The ordering.  After a few more trial and errors I found the problem.  The parameters from the report have to be sent in &lt;span style="font-weight: bold;"&gt;alphabetic order&lt;/span&gt;, otherwise for some reason the request doesn't deserialise properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-2649296841798272614?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/2649296841798272614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=2649296841798272614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2649296841798272614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/2649296841798272614'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/ssrs-to-web-service.html' title='SSRS to Web Service'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ca_lHPWeme0/SPcZ9mI3alI/AAAAAAAAABI/qJoc1M1MZvw/s72-c/XmlSource.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-607798314118875696</id><published>2008-10-16T08:06:00.002Z</published><updated>2008-10-16T08:08:16.969Z</updated><title type='text'>Looking for a new contract</title><content type='html'>After having given my 3 month notice into ITV, I've started looking for a new contract.  So if you'd be interested in getting me into your organisation check out my Linkin profile and drop me an email :)&lt;br /&gt;&lt;br /&gt;I'll be free from the 1st December.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-607798314118875696?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/607798314118875696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=607798314118875696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/607798314118875696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/607798314118875696'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/looking-for-new-contract.html' title='Looking for a new contract'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6162943016024202377</id><published>2008-10-08T13:39:00.001Z</published><updated>2008-10-08T13:41:32.542Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Presentation and Code for "Going with the Workflow"</title><content type='html'>I've popped the Slides and Code onto my Skydrive, you can get at it here:&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" src="http://cid-b80e09d7827ce7cc.skydrive.live.com/embedrowdetail.aspx/Going%20with%20the%20Workflow" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Enjoy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6162943016024202377?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6162943016024202377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6162943016024202377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6162943016024202377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6162943016024202377'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/presentation-and-code-for-going-with.html' title='Presentation and Code for &quot;Going with the Workflow&quot;'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-665636983753741792</id><published>2008-10-08T09:22:00.007Z</published><updated>2009-01-19T14:47:08.260Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WatiN'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Cambridge and Workflow</title><content type='html'>Last night saw &lt;a href="http://richallen.blogspot.com/"&gt;Rich&lt;/a&gt; and I travel up to Cambridge to hijack the evening with our Watin and Workflow talks.&lt;br /&gt;&lt;br /&gt;Chris and Allister certinaley have managed to bag themselves with an excellent crowd and venue!  We were given a very warm welcome by the group and were asked some very complex questions on our talks.&lt;br /&gt;&lt;br /&gt;I did get one question which I could not answer which was this:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;"Doesn't creating more than one Workflow Runtime in an AppDomain raise an exception?"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This was interesting as I thought you could, but the attendee thought you couldn't.  So I've done a bit of searching and found we were both right!  Before the final release WF did indeed use to throw an exception if you tried creating more than one instance of it in an AppDomain, but after the final release you can create as many instance in an AppDomain as you like.  Here's a &lt;a href="http://www.infosysblogs.com/microsoft/2007/09/creation_of_multiple_workflow_runtime_instances_within_an_appdomain.html"&gt;link&lt;/a&gt; with a bit more info on the matter,  including when you'd want to have multiple instances running.&lt;br /&gt;&lt;br /&gt;Overall I thought the session went well, the feedback from Southampton run really helped improve the session, and apart from a couple of hiccups in the second half it went really well.  So I'd just like to thanks the guys in Cambridge for hosting us, and the members for making us feel really welcome.&lt;br /&gt;&lt;br /&gt;I'll be posting code and slides up soon, so check back later :)&lt;br /&gt;&lt;br /&gt;Oh, and don't forget to harrass Chris and Allister to host the &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=148"&gt;Silverlight Assault Course&lt;/a&gt; up there :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-665636983753741792?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/665636983753741792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=665636983753741792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/665636983753741792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/665636983753741792'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/cambridge-and-workflow.html' title='Cambridge and Workflow'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1036929151213766675</id><published>2008-10-02T11:24:00.001Z</published><updated>2008-10-02T11:25:50.648Z</updated><title type='text'>Oren Eini at the DotNetDevNet</title><content type='html'>Top speaker Guy Smith-Ferrier has Oren Eini appearing at his User Group on Monday 13th October, here's the details:&lt;br /&gt;&lt;br /&gt;&lt;p class="EC_MsoNormal"&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;When: Monday 13th October 2008, doors open 6:00pm, meeting starts 6:30pm &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Where: UWE (University of the West of England), Frenchay, Bristol (see &lt;a href="http://www.dotnetdevnet.com/Default.aspx?tabid=53" target="_blank"&gt;&lt;b&gt;&lt;span style="color:#666666;"&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold;"&gt;FAQ&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt; for directions and a map) - Room 2q50 (in Q block)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;What: "Producing Production Quality Software" and "Interaction based testing with Rhino Mocks"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Who: Oren Eini is the author of Rhino Mocks and a major contributor to Castle and NHibernate.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Why: Because Oren is in the UK for a couple of weeks and we've managed to nab him whilst he's here. This is a rare opportunity to listen to someone who can make a real difference to the success of your project.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;How do I sign up for this meeting: Send an email to meetings at dotnetdevnet.com and quote your user name and the October Extra meeting.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;"Producing Production Quality Software" Abstract:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Working software is no longer the only thing that we need to produce. We need to create a software system that has a chance of surviving in the cruel world of production system, outside the clean room and sterile environment of development and QA. Understanding bottlenecks in the system, preventing cascading failures and recovery strategies have ceased being the problems of the very high end players. With the cost of system downtime being measures in $$$/second, this is an area we have to consider all the way. In this talk we will cover how we can map common weaknesses in the system design, preemptively protect ourselves from them, and produce software systems that can withstand the real world hostile environment.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;&lt;br /&gt;"Interaction based testing with Rhino Mocks" Abstract:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Beyond the simplest scenarios, all objects had collaborators that they work with. This flies in the face of testing objects in isolation. This is the problem that mock objects were created to solve. In this talk you will learn what mock objects are, how to utilize them and best practices on when / how to utilize them. Rhino Mocks is a mock objects framework for .Net whose core goals are to let the developer rely on the compiler work well with refactoring tools.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Bio:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal" style=""&gt;&lt;span style="font-family:Tahoma;font-size:78%;color:#555555;"&gt;&lt;span style="font-size: 8.5pt; font-family: Tahoma; color: rgb(85, 85, 85);"&gt;Oren Eini is an independent consultant based in Israel, focusing on architecture and best practices that lead to quality software and zero friction development processes. He is the author of Rhino Mocks, the most popular mocking framework on the .Net platform as well as a member of other well known open source projects, chief among them are the Castle project and NHibernate.&lt;br /&gt;Oren is an internationally known speaker, and the author of the soon to be published book: Building Domain Specific Languages with Boo.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1036929151213766675?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1036929151213766675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1036929151213766675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1036929151213766675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1036929151213766675'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/oren-eini-at-dotnetdevnet.html' title='Oren Eini at the DotNetDevNet'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7362149417473620606</id><published>2008-10-02T11:17:00.005Z</published><updated>2009-01-08T10:26:54.874Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Session'/><category scheme='http://www.blogger.com/atom/ns#' term='Birthday'/><title type='text'>Our Birthday Bash</title><content type='html'>So this months session will see NxtGenUG Southampton hit the grand old age of 1!  We've had a cracking series of evening sessions from some absolutley top names, plus a very successful Saturday event in the form of the Silverlight Assasult Course.&lt;br /&gt;&lt;br /&gt;So whats happening for our first birthday?  We thought we'd try something a tad more interactive than a normal talk, something people could particpate in.  Our very own Rich A (Mr Ready Steady Speak Remix 08!) and member Plamen Balkanski are going to do a session on Agile development, including the agile Planning Game!&lt;br /&gt;&lt;br /&gt;Sign up and get more details on the following &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=166"&gt;NxtGenUG page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We're of course have Birthday Cake! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7362149417473620606?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7362149417473620606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7362149417473620606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7362149417473620606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7362149417473620606'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/10/our-birthday-bash.html' title='Our Birthday Bash'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1314965148632425483</id><published>2008-09-20T21:58:00.007Z</published><updated>2008-09-21T12:36:13.594Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ReMix'/><category scheme='http://www.blogger.com/atom/ns#' term='Ready Steady Speak'/><title type='text'>ReMix 08 Ready Steady Speak!</title><content type='html'>My fellow coordinator &lt;a href="http://richallen.blogspot.com/"&gt;Rich&lt;/a&gt; Allen entered the Ready Steady Speak competion at Remix 08 last week.&lt;br /&gt;&lt;br /&gt;He did a 5 minute version of his WatiN nugget that he performed at our group in August, and at Cambridge in October. Anywho, it was a fantasticly smooth presentation with only a couple of very minor criticisms.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ca_lHPWeme0/SNV3LpPIkrI/AAAAAAAAAAY/_F6XL1Fs3lM/s1600-h/Rich+on+stage+1024.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ca_lHPWeme0/SNV3LpPIkrI/AAAAAAAAAAY/_F6XL1Fs3lM/s320/Rich+on+stage+1024.JPG" alt="" id="BLOGGER_PHOTO_ID_5248231982701777586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The Judges contemplating a presentation by Zybszek Swirski.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ca_lHPWeme0/SNV4qxGi3AI/AAAAAAAAAAg/pa5CGyKYE0g/s1600-h/Judges+1024.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Ca_lHPWeme0/SNV4qxGi3AI/AAAAAAAAAAg/pa5CGyKYE0g/s320/Judges+1024.JPG" alt="" id="BLOGGER_PHOTO_ID_5248233616900807682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;He was able to correct the minor criticisms and strode to victory in the final the following day!  Go Rich! :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ca_lHPWeme0/SNV5BZMftpI/AAAAAAAAAAo/SQMqB5VVLMY/s1600-h/Everyone+1024.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ca_lHPWeme0/SNV5BZMftpI/AAAAAAAAAAo/SQMqB5VVLMY/s320/Everyone+1024.JPG" alt="" id="BLOGGER_PHOTO_ID_5248234005620307602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Rich with hosts John Price, Richard Costall and Dave McMahon and head judge Guy Smith-Ferrier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1314965148632425483?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1314965148632425483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1314965148632425483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1314965148632425483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1314965148632425483'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/09/remix-08-ready-steady-speak.html' title='ReMix 08 Ready Steady Speak!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ca_lHPWeme0/SNV3LpPIkrI/AAAAAAAAAAY/_F6XL1Fs3lM/s72-c/Rich+on+stage+1024.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6502987761771167926</id><published>2008-08-23T16:05:00.005Z</published><updated>2008-08-23T16:13:38.642Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WatiN'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>My first full length presentation</title><content type='html'>On Thursday night I presented a full length &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=150"&gt;WF session&lt;/a&gt; for the first time, I thought it went well and have gotten some very useful feedback from attendees on things I can improve :)  My fellow coordinator &lt;a href="http://richallen.blogspot.com/"&gt;Rich Allen&lt;/a&gt; also did a nugget on a rather excellent piece of technology called &lt;a href="http://watin.sourceforge.net/"&gt;WatiN&lt;/a&gt;, which is a very formidable Web testing framework with added bells and whistles!&lt;br /&gt;&lt;br /&gt;Watch out Cambridge!  V2 is coming your way on the &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=162"&gt;7th October&lt;/a&gt; :)  I think I'll rewrite the front end is WPF, as I hear thatCambridge bunch have been spoiled by &lt;a href="http://silverlightuk.blogspot.com/"&gt;Chris Hays&lt;/a&gt; Silverlight Guru status ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6502987761771167926?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6502987761771167926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6502987761771167926' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6502987761771167926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6502987761771167926'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/my-first-full-length-presentation.html' title='My first full length presentation'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-8948806102330322263</id><published>2008-08-19T21:06:00.003Z</published><updated>2008-08-19T21:17:11.514Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='CSLA'/><title type='text'>Sept &amp; Oct talks at NxtGen Southampton</title><content type='html'>On September 11th we've got Andrew Hallmark coming down to do a talk on CSLA.Net, no nugget has been confirmed as of yet so if you're interested drop me an email :)&lt;br /&gt;&lt;br /&gt;If you don't know what the CSLA is, then here's a quick brief.  The CSLA is a Business Object framework by &lt;a href="http://www.lhotka.net/"&gt;Rockford Lhotka&lt;/a&gt; that follows quite a few principles that are set down in the &lt;a href="http://www.compman.co.uk/scripts/browse.asp?ref=649972"&gt;Object Thinking&lt;/a&gt; book.  It comes in two flavours, either VB or C#.&lt;br /&gt;&lt;br /&gt;It's a talk I've been keen on getting presented at Southampton since we started nearly a year ago, then Andrew Hallmark offered his services :)&lt;br /&gt;&lt;br /&gt;In October we're be hopefully having our 1st Birthday, it should be a fun night with a mix of presentation and some more light hearted activties.  Details to follow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-8948806102330322263?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/8948806102330322263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=8948806102330322263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8948806102330322263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8948806102330322263'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/sept-oct-talks-at-nxtgen-southampton.html' title='Sept &amp; Oct talks at NxtGen Southampton'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-929648686400291008</id><published>2008-08-18T08:20:00.004Z</published><updated>2008-08-18T08:38:32.057Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Debugging a modular application</title><content type='html'>So you're working on a modular application and you've got individual modules in seperate solutions.  You can't currently hit F5 to debug these modules as they're just a class library.  What do you do?&lt;br /&gt;&lt;br /&gt;It's nice and easy, all you need to do is setup a Post Build Event script and change the Debugger options.  Follow these easy steps:&lt;br /&gt;&lt;br /&gt;1. Open the Build Events tab in the Project properties.&lt;br /&gt;2. Edit the &lt;span style="font-weight: bold;"&gt;PostBuild&lt;/span&gt; script so that it copies the Projects DLL and PDB files to the location of the application you're extending.  A basic Post Build Event to do this would look like so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;if $(ConfigurationName) == "Debug" xcopy "$(TargetPath)" "C:\Program\MyApp" /i /y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;if $(ConfigurationName) == "Debug" xcopy "$(OutDir)MyDll.pdb" "C:\Program\MyApp" /i /y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Save the Post Build script&lt;br /&gt;4. Open the Debug tab in the Project properties.&lt;br /&gt;5. Set the &lt;span style="font-weight: bold;"&gt;Start External Program&lt;/span&gt; to the absolute path of the exe you're extending, e.g. &lt;span style="font-weight: bold;"&gt;"C:\Programs\MyApp\App.exe"&lt;/span&gt;.&lt;br /&gt;6. Set the &lt;span style="font-weight: bold;"&gt;Working Directory&lt;/span&gt; to the directory containing the application your extending &lt;span style="font-weight: bold;"&gt;"C:\Programs\MyApp"&lt;/span&gt;.  Save.&lt;br /&gt;&lt;br /&gt;Now when you hit F5 the DLLs and PDBs are copied to the directory, and the target application is run up for your debugging pleasure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-929648686400291008?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/929648686400291008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=929648686400291008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/929648686400291008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/929648686400291008'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/debugging-modular-application.html' title='Debugging a modular application'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4114796806595367525</id><published>2008-08-17T18:15:00.005Z</published><updated>2008-08-18T08:41:29.262Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='SP1'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Pack 1'/><title type='text'>VS2008 SP1 and the missing Toolbox controls</title><content type='html'>I recently upgraded my VS2008 installation to the new SP1 release, I found that several of the .Net controls disappeared from the ToolBox, including the Button.&lt;br /&gt;&lt;br /&gt;A new Toolbox also appeared labelled "#13119" with nothing in it.&lt;br /&gt;&lt;br /&gt;To resolve this issue I had to delete the cached version of the Toolbox in my User profile, then when restarted VS2008 recreated the Toolbox and my missing controls reappeared.&lt;br /&gt;&lt;br /&gt;Sorted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4114796806595367525?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4114796806595367525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4114796806595367525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4114796806595367525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4114796806595367525'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/vs2008-sp1-and-missing-toolbox-controls.html' title='VS2008 SP1 and the missing Toolbox controls'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-1079446992376835647</id><published>2008-08-11T09:42:00.002Z</published><updated>2008-08-17T18:37:10.077Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><title type='text'>I'm off to PDC 08!</title><content type='html'>I've just booked upto got to PDC 08!&lt;br /&gt;&lt;br /&gt;This'll be my first big Microsoft event (barring launches and what not in the UK), come say hello :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-1079446992376835647?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/1079446992376835647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=1079446992376835647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1079446992376835647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/1079446992376835647'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/im-off-to-pdc-08.html' title='I&apos;m off to PDC 08!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-6822126149473955791</id><published>2008-08-07T10:34:00.005Z</published><updated>2008-08-17T18:43:07.629Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAB'/><category scheme='http://www.blogger.com/atom/ns#' term='SCSF'/><title type='text'>CAB/SCSF application and DLL/Project references</title><content type='html'>At my current place of work we're developing a new uber client application using the CAB/SCSF technologies.  We've broken the mold a little as we're developing modules in solutions separate to the main Shell.  There are numerous reasons for this, one of them that we've got 3 development teams in 3 different locations.&lt;br /&gt;&lt;br /&gt;Now the official line from Microsoft is to use Project References in such situations, see the following &lt;a href="http://msdn.microsoft.com/en-us/library/ms998215.aspx"&gt;MSDN article&lt;/a&gt; which is a little dated as it was published in 2002.&lt;br /&gt;&lt;br /&gt;Now my big criticism with the Project Reference approach is that in the CAB you may well end up with modules depending on other modules, which means that you have to have all those modules in your solution.  Then you have to add in the dependencies for the modules you've just added and before you know it, you've gone to the one big solution approach for each of you module solutions and the entire things becomes a pain to maintain.  Just some of the bad points I can see for this scenario:&lt;br /&gt;&lt;br /&gt;1. Versioning - Everytime you build your module you rebuild the modules your dependent on.  If two modules depend on the same module which version do you deploy?&lt;br /&gt;2. Building - Which version of a DLL do you take if it's build by X solutions?&lt;br /&gt;3. Loading Times - I've seen some solutions with 10 or more projects in that can take 10 to 15 mins to load, is this really acceptable to Developers that just want to nip and have a quick look or do a quick fix on the code?&lt;br /&gt;4. Debugging - This method will let you hit F5 and just debug straight into your app, but you're then stating that all modules will have configuration that Developer friendly.&lt;br /&gt;&lt;br /&gt;Now the theory we're using is to have a static location to which all solutions copy their DLLs, PDBs and any other relevant files to a location on a directory hierarchy.   Other solutions then reference the DLLs from the subst drive without the need of Project References.  In order to get the relevant files (DLLs, PDBs and other files) onto the mapped location we use the Post Build Event to copy them, as this is configuration agnostic.  The inclusion of the PDb files allows intellisense and navigation when referencing class in other DLLs.&lt;br /&gt;&lt;br /&gt;This does mean that the developers all share a common location, in our case we use a mapped drive via the subst command that is run when the Dev logs in.&lt;br /&gt;&lt;br /&gt;The mapped location is used to conatin all of the library files that the application uses, so things like Ent Lib, CAB and 3rd Party Controls.  Then additional root nodes are added for any applications that use this structure.&lt;br /&gt;&lt;br /&gt;One of the nicest aspects of this approach is that when a daily build/CI build is performed it creates the structure for the mapped location.  A dev then coming to do the next piece of work can copy the structure to his mapped location picking up all the latest changes without the need of a get from source control and compiling.&lt;br /&gt;&lt;br /&gt;So far I've used this at two companies both using CAB based application, and it has worked very well.  I'll post shortly on how to debug these applications via the F5 button, instead of attaching to the applications process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-6822126149473955791?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/6822126149473955791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=6822126149473955791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6822126149473955791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/6822126149473955791'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/cabscsf-application-and-dllproject.html' title='CAB/SCSF application and DLL/Project references'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-9176305652733834918</id><published>2008-08-07T08:48:00.008Z</published><updated>2008-08-18T08:41:07.072Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Quake'/><category scheme='http://www.blogger.com/atom/ns#' term='BSOD'/><category scheme='http://www.blogger.com/atom/ns#' term='64 bit'/><title type='text'>Quake, Vista 64bit and the BSODs</title><content type='html'>I upgrade my Dev box to have 4GB of Ram last week, and was instantly hit by a series of BSODs.  They ranged from System_Service_Exceptions to Memory_Exceptions.  I initially thought that the RAM was bad so I returned it and got a replacement.&lt;br /&gt;&lt;br /&gt;After installing the new RAM I was again hit by the same random BSODs, this obviously raised concerns that my MB was up the creak on one of the RAM slots that I'd now started using.  Hoping for the best I dug around in the Application log of Vista and found the following two  Side by Side entries:&lt;br /&gt;&lt;br /&gt;Activation context generation failed for "C:\Games\Enemy Territory - QUAKE Wars\ServerLauncher.exe".Error in manifest or policy file "" on line . A component version required by the application conflicts with another component version already active. Conflicting components are:. Component 1: C:\Windows\WinSxS\manifests\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc.manifest. Component 2: C:\Windows\WinSxS\manifests\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_152e7382f3bd50c6.manifest.&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;Activation context generation failed for "C:\Games\Enemy Territory - QUAKE Wars\ServerLauncher.exe".Error in manifest or policy file "" on line . A component version required by the application conflicts with another component version already active. Conflicting components are:. Component 1: C:\Windows\WinSxS\manifests\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc.manifest. Component 2: C:\Windows\WinSxS\manifests\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_152e7382f3bd50c6.manifest.&lt;br /&gt;&lt;br /&gt;One pained uninstall later and the machine is running beautifully!  You can't uninstall in Safe Mode as the service isn't running and won't run under Safe Mode, so I had to try with the BSOD still randomly happening on either start up or during the uninstall.&lt;br /&gt;&lt;br /&gt;My only guess is that something in the Quake code is hard coded to expect 32bit sized number, and by adding 2GB on a 64bit platform it could full utilise the extra RAM and started going bang.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-9176305652733834918?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/9176305652733834918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=9176305652733834918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/9176305652733834918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/9176305652733834918'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/quake-vista-64bit-and-bsods.html' title='Quake, Vista 64bit and the BSODs'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-8915113438395560223</id><published>2008-08-04T21:21:00.002Z</published><updated>2008-08-18T08:42:42.582Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Manic Miner in Silverlight!</title><content type='html'>&lt;p class="EC_MsoNormal"&gt;&lt;span lang="EN-GB"&gt;NxtGenUG Silverlight Manic Miner&lt;br /&gt;&lt;a href="http://www.nxtgenug.net/manicminer" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http://www.nxtgenug.net/manicminer&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal"&gt;&lt;span lang="EN-GB"&gt;NxtGenUG Co-Founder Richard Costall &amp;amp;  Member Pete McGann are pleased to announce their “Silverlight” Manic Miner game  Beta is now live on the NxtGenUG site. Manic Miner was originally written by  Matthew Smith, under games company Bug-Byte in 1983. The game was a landmark  title in the history of gaming.&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal"&gt;&lt;span lang="EN-GB"&gt;The original classic features 20 caverns  to negotiate, and Pete and Rich had lovingly created 9 of these so far, with  more to follow shortly. &lt;/span&gt;&lt;/p&gt; &lt;p class="EC_MsoNormal"&gt;&lt;span lang="EN-GB"&gt;Silverlight Manic Miner shares a custom  built ‘time based’ engine with an XNA version of the game. A library of c# files  is shared between the two systems. The Silverlight edition is also integrated  into the NxtGenuG site, through Application services, and registered visitors  can have their high scores recorded and shown in a leader board which refreshes  every 60 seconds.&lt;/span&gt;&lt;/p&gt;  &lt;p class="EC_MsoNormal"&gt;&lt;span lang="EN-GB"&gt;Pete and Rich will be telling their story  at NxtGenUG Coventry on August  11&lt;sup&gt;th&lt;/sup&gt; 2008&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-8915113438395560223?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/8915113438395560223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=8915113438395560223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8915113438395560223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/8915113438395560223'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/08/manic-miner-in-silverlight.html' title='Manic Miner in Silverlight!'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-7669454618966992792</id><published>2008-07-29T10:10:00.004Z</published><updated>2008-08-18T08:43:11.342Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><title type='text'>Going with the Workflow</title><content type='html'>On the 21st August I'll be presenting my first full length session on Windows Workflow Foundation in &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=150"&gt;Southampton&lt;/a&gt;.  I'm attempting to do something slightly different with this session compared to the other WF session I've seen in the community.  Instead of the normal This is the designer, this is an Activity, look they make a Workflow talk, I'll be attempting to answer the three burning questions I hear from most of the developers I talk to: Why should I use WF? When should I use WF? and How should I use WF?&lt;br /&gt;&lt;br /&gt;So if this sounds something you'd be interested in, come along and check the &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=150"&gt;session&lt;/a&gt; out.  Slides will appear here after the session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-7669454618966992792?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/7669454618966992792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=7669454618966992792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7669454618966992792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/7669454618966992792'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/07/going-with-workflow.html' title='Going with the Workflow'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-4458787625838831006</id><published>2008-07-29T09:46:00.003Z</published><updated>2008-08-18T08:43:24.397Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NxtGen'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight Assault Course</title><content type='html'>This past weekend saw the first run of the Silverlight Assault Course run by us at NxtGen.  You can see a link for it &lt;a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=148"&gt;here&lt;/a&gt;.  The basic premise is to fill the gap between seeing  a 1-2 hour technology session at a User Group event and playing with the same technology at home.&lt;br /&gt;&lt;br /&gt;I found that most of the cool technologies I see at events I never have time to get to grips with afterwards, so I came up with the concept of the Assault Course.  The Assault Course is a mix of Hands On Labs and presentations which the attendees can flt between as the subjects they're interested in are presentated.  The presentations take no more than 20 minutes, each being a contained wealth of information.&lt;br /&gt;&lt;br /&gt;Feedback from the event has been incredibly positive!  Everyone ha sthought the value for money was superb, which is good :)  And I think the swag from Immediacy (the excellent company that allowed us to use their premises for the day, thank you so much!) and Telerik made it doubly worth while.  We will have a tinker with the format, as the HOLs were pretty much deserted the whole day because of the stonking presentations being given by Rich Costall and Chris Hay.&lt;br /&gt;&lt;br /&gt;If you're running a User Group in the UK and would be interested in having us run the Silverlight Assault Course in your region, then drop me an email :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-4458787625838831006?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/4458787625838831006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=4458787625838831006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4458787625838831006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/4458787625838831006'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2008/07/silverlight-assault-course.html' title='Silverlight Assault Course'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-117571466906311170</id><published>2007-04-04T18:59:00.000Z</published><updated>2007-04-04T19:24:29.073Z</updated><title type='text'>A short drive continued...</title><content type='html'>&lt;p class="MsoNormal"&gt;Well, what can say I say about driving across Germany, Denmark and Sweden?  Apart from a few changes in scenery (Denmark has lots of wind farms!), there's not actually much difference.  We were both fine until we got to Sweden, then tiredness started to set in.  I drove through Germany and Denmark, which amounted to approximately 460 km. &lt;span style=""&gt; &lt;/span&gt;Then Alan drove the final part through Sweden approximately 520 km, so i think I got the better deal ;)&lt;br /&gt;&lt;br /&gt;One thing I failed to mention was the van.  I know German vehicles are efficient and come with all sorts of added features that we don't get in this country, but this van was special and had an impressive feature that was easily concealed under its mundane appearance!  On the dash, was a small innocuous button, simply labelled "ESP off".  The van had powers that us mere humans aspire to!  Sadly we didn't see it in action, no thoughts were received, no warnings of crazy drivers approaching, maybe it's because I didn't speak German, who knows...&lt;br /&gt;&lt;br /&gt;Anywho, the pubs in Sweden.  What a strange mix!  First of all Sweden has become very smoking unfriendly, if you want a smoke during the course of your night out, you have to go outside the pub!  What a refreshing change from the pubs/clubs in London!  I woke up the following morning not smelling like an ash tray and I wasn't coughing up nasty stuff!  Well done Sweden!  The Swedes are a nice bunch though, and if you do have to go outside for a smoke, they very kindly give you a blanket to wrap up in, so that's ok then ;)&lt;br /&gt;&lt;br /&gt;Secondly, every pub we went into had a Casino in!  Not just a dark corner with a large selection of slot machines, but a real black jack table, with black jack dealer (I know not the proper term), very odd.  Alan was saying that the Swedes are heavily into gambling, which would make sense.&lt;br /&gt;&lt;br /&gt;The other thing I noticed was hair colour in Sweden, yes you've got more attractive blondes than you can shake a stick at, but there is also a HUGE number of red heads.  Not ginger, but &lt;span style="color: red;"&gt;RED&lt;/span&gt;.  This is something that is huge in Germany too, it must be a European thing :)  I wonder why that is?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-117571466906311170?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/117571466906311170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=117571466906311170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117571466906311170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117571466906311170'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2007/04/short-drive-continued.html' title='A short drive continued...'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-117494803317816696</id><published>2007-03-26T23:14:00.000Z</published><updated>2007-03-26T23:27:13.190Z</updated><title type='text'>A short drive...</title><content type='html'>I helped my friend Alan move over the weekend, I can safely say I am now adept at driving on the wrong side of the road!  A couple of years ago, he moved out to Berlin and had a rather impressively large flat in the old soviet side.  Then he got a contracting position in Stockholm, met a lovely lady called Ansku and has decide to settle there.&lt;br /&gt;&lt;br /&gt;So, what to do about all his worldly positions in Berlin?  Ask a friend to share driving a van full of said positions across Gemany, Denmark and Sweden.  That's where I come in :)&lt;br /&gt;&lt;br /&gt;I flew out to Berlin on Thursday evening, and met up with Alan just after midnight in time for a couple of beers.  We actually managed some restraint and didn't drink until stupid o'clock in the morning, instead settling for about 1.30 :P&lt;br /&gt;&lt;br /&gt;The next day we were up (I was slightly less willingly than Alan by a factor of about a billion!) and on our way to pick up the Van.  On our way we planned to stop off at a shop called Saturn where Alan had seen stacks of Wiis 2 weeks previously.  Alas there were none, so my hunt continues!, but much to both of our surprises there were more PS3's than you could shake a stick at, and no gamers anywhere in sight.  Shocked? You bet we were, poeple had been queueing for silly amounts of time in the Uk according to the Media, and here were stacks of the damn things, and not a gamer in sight, bizarre!  So a lesson if you want the latest and greatest console, take a holiday in Berlin during a launch and stroll in and pick one up without the hassle of over inflated prices in the Uk :)&lt;br /&gt;&lt;br /&gt;Anywho, we picked the van up (me driving) and headed on towards the storage place where Alans stuss had been residing for the latest month.  Two pallets and some strategic packing later (after a couple of attempts) we were all set :)&lt;br /&gt;&lt;br /&gt;Next, out exciting 1018km drive across three countries, and what pubs are like in Sweden :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-117494803317816696?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/117494803317816696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=117494803317816696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117494803317816696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117494803317816696'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2007/03/short-drive.html' title='A short drive...'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-117002587105995454</id><published>2007-01-28T22:57:00.002Z</published><updated>2008-08-18T08:46:38.705Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Vista Launch</title><content type='html'>Last weekend was the Vista &amp;amp; Office launch, and it rocked :)  Not only have I come away with a Vista Ultimate, but I also learnt some new stuff!  This surprised me some what as it was going over a lot of old ground, stuff that had been presented in previous evening sessions.  It's also given me some better insight into how I can get the Aliens board game presented.  There was quite an impressive demo of something the London Underground had been working on which utilised 3d.  During the presentation they recommended this &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/0672328917/026-8870319-6381227"&gt;book&lt;/a&gt;, which I have now purchased and should be with me this week :)&lt;br /&gt;&lt;br /&gt;I'm going to try and produce some basic &lt;a href="http://wpf.netfx3.com/"&gt;WPF&lt;/a&gt; board surfaces for the end of this week, so check back soon.  I've also got a write up of my Left do to do, with some sexy pictures ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-117002587105995454?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/117002587105995454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=117002587105995454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117002587105995454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/117002587105995454'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2007/01/vista-launch-and-new-job.html' title='Vista Launch'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-116302199188552554</id><published>2006-11-08T21:34:00.000Z</published><updated>2006-11-08T21:39:51.893Z</updated><title type='text'>Moving House pt2</title><content type='html'>Dear god that was tiring!&lt;br /&gt;&lt;br /&gt;For anyone thinking of moving house, don't do as I did and do it yourself, pay someone to do it!  It  took us 4 and a half days to move everything 3 miles up the road!  Anywho, we sorted now and today (2 and a bit weeks after we moved) the internet finally landed at our house!  So been catching up on lots of exciting emails and what not.&lt;br /&gt;&lt;br /&gt;Bought a couple of books while moving house, the MS .Net 2.0 certification books for &lt;a href="http://www.compman.co.uk/scripts/browse.asp?ref=792672"&gt;Windows Clients&lt;/a&gt; and &lt;a href="http://www.compman.co.uk/scripts/browse.asp?ref=792668"&gt;Distributed Systems&lt;/a&gt; came out :) More reading to fit in somehow ;D&lt;br /&gt;&lt;br /&gt;I'd think it'll be another week before I can get onto working on the game, house still isn't quite unpacked...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-116302199188552554?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/116302199188552554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=116302199188552554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/116302199188552554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/116302199188552554'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2006/11/moving-house-pt2.html' title='Moving House pt2'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-115972170613211772</id><published>2006-10-01T16:51:00.001Z</published><updated>2008-08-18T08:43:54.050Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><title type='text'>Workflow Books</title><content type='html'>Now that .Net 3.0 is finally nearing release, all the books on Workflow have started appearing.  I think I shall probably be buying these&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;&lt;a href="http://www.amazon.co.uk/Microsoft-Windows-Workflow-Foundation-step/dp/073562335X/sr=8-4/qid=1159721073/ref=sr_1_4/202-3989097-4047834?ie=UTF8&amp;amp;s=books"&gt;Microsoft Windows Workflow Foundation Step-by-step&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;a href="http://www.amazon.co.uk/Essential-Windows-Workflow-Foundation-Shukla/dp/0321399838/sr=8-3/qid=1159721073/ref=sr_1_3/202-3989097-4047834?ie=UTF8&amp;amp;s=books"&gt;&lt;b class="sans"&gt;Essential Windows Workflow Foundation&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/Pro-Windows-Workflow-NET-3-0/dp/1590597788/sr=8-8/qid=1159721073/ref=sr_1_8/202-3989097-4047834?ie=UTF8&amp;amp;s=books"&gt;&lt;b class="sans"&gt;Pro WF - Windows Workflow In .NET 3.0&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-115972170613211772?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/115972170613211772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=115972170613211772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115972170613211772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115972170613211772'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2006/10/workflow-books.html' title='Workflow Books'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-115972120983065399</id><published>2006-10-01T16:29:00.000Z</published><updated>2006-10-01T16:46:49.840Z</updated><title type='text'>Moving House doesn't help</title><content type='html'>Right, so what have I achieved so far?&lt;br /&gt;&lt;br /&gt;Not much to be honest, we're currently in the process of moving, so all my free time is being spent running around solicitors and packing!  My god we have a lot of stuff...&lt;br /&gt;&lt;br /&gt;Anywho, I've managed to flesh a few basic interfaces out for the objects.  I'm not ready to post them here yet, as they're still taking shape.  I've also been playing around with the State Machines for the Aliens/Marines and the game Process.&lt;br /&gt;&lt;br /&gt;The Aliens State Machine is a fairly simple thing, as the Aliens only really have two states running around killing things and Dead!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/674/3793/1600/AlienSM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/674/3793/320/AlienSM.png" alt="" border="0" /&gt;&lt;/a&gt;As you can see, not much to an Alien.  So what about the Marine?  I haven't finished his State Machine yet, but this is what it looks like at the moment.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/674/3793/1600/MarineSM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/674/3793/320/MarineSM.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's a tad more complex.  According to the game rules there is an additional state called "Grabbed" which can be used in conjunction with most of these states.  So I've decided to have that as a property of the object.&lt;br /&gt;&lt;br /&gt;I've also been fiddling around with some base classes.  I'd like to use the Double Dispatch pattern for the interaction between the Aliens and Marines when they fight, so I'm trying to figure out what the contract is between them, and who should be doing what.&lt;br /&gt;&lt;br /&gt;I had a bit of a nasty realisation today, I'm going to need some sort of path searching mechanism for the game board for determing where players can move to, what the players can shoot and how the Aliens intelligently move around the board.  I'll have to do a bit of reasearch on that one...&lt;br /&gt;&lt;br /&gt;Enough waffle, next post I hope to have the interfaces defined and the State Machines complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-115972120983065399?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/115972120983065399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=115972120983065399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115972120983065399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115972120983065399'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2006/10/moving-house-doesnt-help.html' title='Moving House doesn&apos;t help'/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34418377.post-115826573965439333</id><published>2006-09-14T20:14:00.000Z</published><updated>2006-09-14T20:28:59.666Z</updated><title type='text'></title><content type='html'>I've created this blog to document the progress of a project I'm under taking with the new .Net 3.0 technologies.  I've decided to create a Windows game of an old board game by Leading Edge of the Aliens movie.  You can read more about it &lt;a href="http://www.boardgamegeek.com/game/1770"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today, I've spent uninstalling the Beta 2 of .Net 3.0 from my dev machine, and installing the new &lt;a href="http://www.netfx3.com/blogs/news_and_announcements/archive/2006/09/05/5479.aspx"&gt;Release Candidate&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've got a basic plan which needs fleshing out abit:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Identify the game objects&lt;/li&gt;&lt;li&gt;Create a State Machine with the WF for each of the objects where needed&lt;/li&gt;&lt;li&gt;Create a Sequential Workflow for the main game flow (not sure about this one)&lt;/li&gt;&lt;li&gt;Create a nice basic Winform GUI&lt;/li&gt;&lt;li&gt;Transistion to a nice Windows Presentation Foundation GUI&lt;/li&gt;&lt;li&gt;Look at making the game network friendly with Windows Communication Foundation&lt;/li&gt;&lt;/ol&gt;So, that's my aim.  I've no idea how long it's going to take, but it should be interesting.  I'll probably do weekly updates, depending on progress and whether anybody actually reads this :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34418377-115826573965439333?l=johns-corner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johns-corner.blogspot.com/feeds/115826573965439333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34418377&amp;postID=115826573965439333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115826573965439333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34418377/posts/default/115826573965439333'/><link rel='alternate' type='text/html' href='http://johns-corner.blogspot.com/2006/09/ive-created-this-blog-to-document.html' title=''/><author><name>John McLoughlin</name><uri>http://www.blogger.com/profile/17310931835220120869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp0.blogger.com/_Ca_lHPWeme0/SI7rB3YZsmI/AAAAAAAAAAM/5qcjcpu_U8s/S220/me.jpg'/></author><thr:total>0</thr:total></entry></feed>
