<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Robert MacLean</title><link>http://www.sadev.co.za</link><description></description><language>en</language><feedburner:info uri="sadev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-26.0822</geo:lat><geo:long>27.9923</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.5/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.sadev.co.za/rss.xml" /><feedburner:emailServiceId>Sadev</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://www.sadev.co.za/rss.xml" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fwww.sadev.co.za%2Frss.xml" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>You never debug standing up</title><link>http://feedproxy.google.com/~r/Sadev/~3/XK0V9m5dFRM/you-never-debug-standing</link><category>Development</category><category>Personal</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 07 Feb 2012 23:28:34 PST</pubDate><guid isPermaLink="false">684 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/humility_road_sign.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="humility_road_sign" border="0" alt="humility_road_sign" align="right" src="http://www.sadev.co.za/files/humility_road_sign_thumb.jpg" width="305" height="204" /&gt;&lt;/a&gt;Being a professional developer means following standards, standards that are set by smart people (smarter than me at least) and when you start to break those standards will wrong. I know this! However this past Friday I broke many a rule and failed, because thought I knew better this one time. So this post is a retrospective of what went wrong, so that I never forget again.&lt;/p&gt; &lt;p&gt;The project is a fairly complex backend system for a special mobile device, and when I mean complex I mean in size and scope. We have VB.NET, C#, Java, JavaScript and a ton of inline SQL! The work itself is done by three different companies with three different agreements, policies and methodologies! That sounds like a recipe for disaster but it isn’t – we have exceeded every goal! That is until Friday.&lt;/p&gt; &lt;p&gt;On Friday we get told the customer is coming at 9am on Monday for a demo! We have 8 hours to get ready for it! The software is in a state between alpha and beta and we have known issues that need resolving by the demo. So we worked hard and make great headway until about 3pm. Then we hit an issue everyone in the room thought was on the mobile device. The first problem is the mobile dev company isn’t onsite today, so we are really guessing at the issue. &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/confidence.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="confidence" border="0" alt="confidence" align="right" src="http://www.sadev.co.za/files/confidence_thumb.jpg" width="310" height="252" /&gt;&lt;/a&gt;We start experimenting at fixes, pushing 7 builds to QA in an hour (in reality we are lucky if get 5 build to QA in a day). At the same time we are adding bug fixes and tweaks for other items too! Then the answer comes in the mobile device developer – they breaking because their expectation of the spec is not the same as ours. More fixes and adjustments and then the server just stops.&lt;/p&gt; &lt;p&gt;At this point, I am looking at my watch, I have a two year old son sitting at school and it is almost time to pick him up. tick tock. Being a single parent means I MUST leave and soon. The mobile guys have gone offline completely. Another dev from the third company is needing to go and propose (she said yes &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_33.png" /&gt;)! We are all rushing, skipping testing, skipping building locally before checkins… I even checked code in without comments! NOTHING, no matter what I try it keeps breaking, tick tock, same error every time, tick tock, I can’t find it, tick tock, the PM is looking worried and looking at me to solve it, tick tock. OUT OF TIME. &lt;/p&gt; &lt;p&gt;I apologise and leave, feeling crap. I failed. I let a client down. &lt;/p&gt; &lt;p&gt;Saturday, I sit down to dig into the code. Now without the time pressure, and I read the stack trace &lt;u&gt;properly&lt;/u&gt; for the first time (stopped assuming what it was saying as I was when I was rushed) and quickly found the issue and resolved it. One code checkin (built first locally, with check in comment, and assigned to work items etc…) and it is working. The test client works too! &lt;/p&gt; &lt;p&gt;In retrospect what should I have done is simple: We knew there is a demo, it was late notice but we had chance to choose what to show to the customer. We should’ve set a cut off time after lunch for fixes and changes and then just not included broken things in the demo. Rather have taken that after lunch time and made sure the demo showed 80% and that 80% worked 100% than rush to get 100% to show and in the end break it all.&lt;/p&gt; &lt;p&gt;I should’ve also stepped back earlier and done something else for a second – get coffee or something. Just to clear my mind and calm myself. Stepping back always helps, just think of how many times you ask someone for help and in explaining it you solve it yourself.&lt;/p&gt; &lt;p&gt;Finally skipping the standards that make us professional leads to disaster and I should’ve made sure the following standards were kept!&lt;/p&gt; &lt;ul&gt; &lt;li&gt;make sure it builds locally before checkin  &lt;/li&gt;&lt;li&gt;check in comments  &lt;/li&gt;&lt;li&gt;assign each checkin to a work item  &lt;/li&gt;&lt;li&gt;test locally before checkin  &lt;/li&gt;&lt;li&gt;If we have a deadline, then we get everyone in the room to make it happen. We win and lose as a team.  &lt;/li&gt;&lt;li&gt;The more detailed the spec is, the better for everyone.  &lt;/li&gt;&lt;li&gt;Do one thing per checkin (keep those checkins small and focused) &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Monday has come and gone, the customer loves it and the demo was great. We succeeded. It required sacrifice from the team of some of their weekend, a sacrifice that if we have acted more professionally and clear headed could’ve been avoided. This doesn’t happen often to me, as I am often surrounded by professionals and when one of us loses it the rest helps push that one back into place, so this post really is a reminder why we do that for each other and what others can learn.&lt;/p&gt; &lt;p&gt;&lt;font size="3" face="Calibri"&gt;&lt;em&gt;Management is doing things right; leadership is doing the right things&lt;/em&gt; – Peter Drucker&lt;/font&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=XK0V9m5dFRM:4z1TWoNuURs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=XK0V9m5dFRM:4z1TWoNuURs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=XK0V9m5dFRM:4z1TWoNuURs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=XK0V9m5dFRM:4z1TWoNuURs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/XK0V9m5dFRM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/you-never-debug-standing</feedburner:origLink></item><item><title>Presentation Dump - End 2011: Azure, Windows 8, Lightswitch, Visual Studio Tools, TFS &amp; Roslyn</title><link>http://feedproxy.google.com/~r/Sadev/~3/ENA7INT_Nk8/presentation-dump-end-2011-azure-windows-8-lightswitch-visual-studio-tools-tfs-roslyn</link><category>.NET</category><category>ALM</category><category>ALM Rangers</category><category>Development</category><category>Microsoft</category><category>Presentations, Posters &amp; Cheat Sheets</category><category>Tools &amp; Apps</category><category>Windows</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 03 Jan 2012 22:54:56 PST</pubDate><guid isPermaLink="false">676 at http://www.sadev.co.za</guid><description>&lt;p&gt;With 2011 finally done and dusted it is time for the bi-annual presentation dump, where I upload most of the slides I have done in the last six months to share with you! I say most, as some presentations are NDA and those, unfortunately, I can’t share out – but where I can upload slides I do!&lt;/p&gt;  &lt;p&gt;In this presentation dump we have:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Windows Azure Platform Overview: &lt;/strong&gt;This is a talk I gave at the ImagineCup to faculty members about what Microsoft Azure can offer!&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Windows 8:&lt;/strong&gt; A brief introduction shortly after the //Build conference to help share what information we had on Windows 8&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lightswitch: &lt;/strong&gt;The latest iteration of my Lightswitch talk contains a structure overview before the demo and then goes into detail on the themes and extension model in the product.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Developer Productivity Tools: &lt;/strong&gt;A session that looks at FIVE FREE tools for Visual Studio that will assist in the productivity of any Microsoft .NET developer in Visual Studio. Tools covered are fxCop, StyleCop, Pro Power Tools, CodeRush Xpress &amp;amp; Nuget.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;An Introduction to TFS: &lt;/strong&gt;The target audience for this is someone or company who is using another source control (like VSS) and is thinking about moving to TFS but isn’t sure where to start. This BRIEF introduction tries to provide a high level view that TFS is not just source control it is a LOT of more and thus has a lot more power. It also mentions migration from VSS and provides guidance for success.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Roslyn: &lt;/strong&gt;This is an early look at Roslyn&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;It is definitely a quieter period than most, in terms of number of unique slide shows and I think a lot of that comes out of the information black out from Microsoft prior to //Build, but it was still a very period with me presenting Lightswitch NUMEROUS times and also &lt;a href="/content/teched-africa-slides-scripts-thoughts" target="_blank"&gt;Tech·Ed Africa&lt;/a&gt; where I did four presentations!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;You can get all the slides and details by clicking “read more” below!&lt;/font&gt;&lt;/p&gt;
&lt;!--break--&gt;
&lt;h3&gt;Windows Azure Platform Overview&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10791198" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;h3&gt;Windows 8&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10791194" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;h3&gt;Lightswitch&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10791185" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;h3&gt;Developer Productivity Tools&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10791182" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;h3&gt;An Introduction To TFS&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10791174" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;   &lt;h3&gt;Roslyn&lt;/h3&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/8853348" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ENA7INT_Nk8:I103FIg2GZs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ENA7INT_Nk8:I103FIg2GZs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ENA7INT_Nk8:I103FIg2GZs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ENA7INT_Nk8:I103FIg2GZs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/ENA7INT_Nk8" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/presentation-dump-end-2011-azure-windows-8-lightswitch-visual-studio-tools-tfs-roslyn</feedburner:origLink></item><item><title>MVP for a third time :)</title><link>http://feedproxy.google.com/~r/Sadev/~3/9AwvfWnhXnQ/mvp-third-time</link><category>ALM</category><category>Microsoft</category><category>Personal</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Mon, 02 Jan 2012 23:30:18 PST</pubDate><guid isPermaLink="false">674 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="/files/mvp_0.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="mvp" border="0" alt="mvp" align="right" src="/files/mvp_thumb.png" width="228" height="92" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/content/its-mvp-time-again" target="_blank"&gt;364 days ago&lt;/a&gt; &amp; &lt;a href="/content/and-award-goes-to"&gt;829 days ago&lt;/a&gt;, I blogged about being awarded a MVP from Microsoft and I am proud to announce that I have been awarded a MVP for a THIRD time! &lt;/p&gt;  &lt;p&gt;Thank you to all that were part of making this happen, I am very honoured by all of you.&lt;/p&gt;  &lt;p&gt;What is an MVP? In short it is a thank you for helping Microsoft communities. The long version can be found &lt;a href="/content/what-alm-mvp"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=9AwvfWnhXnQ:v0HwexSBdKw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=9AwvfWnhXnQ:v0HwexSBdKw:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=9AwvfWnhXnQ:v0HwexSBdKw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=9AwvfWnhXnQ:v0HwexSBdKw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/9AwvfWnhXnQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/mvp-third-time</feedburner:origLink></item><item><title>Portal 2: Lab Rat</title><link>http://feedproxy.google.com/~r/Sadev/~3/5Yk08cp72zA/portal-2-lab-rat</link><category>Tools &amp; Apps</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Wed, 21 Dec 2011 00:28:54 PST</pubDate><guid isPermaLink="false">673 at http://www.sadev.co.za</guid><description>&lt;p&gt;If you do not know what Portal is, then you are dead to me! DEAD! But since I know everyone knows of Portal that won’t be an issue. What you may not have known is that &lt;a href="http://www.valvesoftware.com" target="_blank"&gt;Valve&lt;/a&gt; created a comic book that chronicles the gap between the end of Portal 1 and the beginning of Portal 2, and your character (Chell) ends up back inside the facility. &lt;/p&gt;  &lt;p&gt;This comic is called Lab Rat and you can view it in super great details at &lt;a title="http://www.thinkwithportals.com/comic/" href="http://www.thinkwithportals.com/comic/"&gt;http://www.thinkwithportals.com/comic/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But what about when you are travelling this festive season and want to read it quickly, or show your family so they can be caught up before you take them through Portal 2 on Christmas day? Well, for my seventh WP7 app (yes, I have build 7 Windows Phone apps this year!) let me introduce Lab Rat. &lt;/p&gt;  &lt;p&gt;In addition to offering the comic in your pocket you can save any page, with or without text, to your phone for use as a login screen or any such thing! AWESOME!&lt;/p&gt;  &lt;p&gt;In no way should you think this is an alternative to going online though, the detail of this comic should be seen at the BEST resolution possible – but this makes a good companion experience. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsphone.com/s?appid=d54ff0c0-d458-4ec4-a1e2-044dcbe80624" target="_blank"&gt;&lt;img src="http://www.sadev.co.za/files/Windows-Phone-7-Download-Button.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_5_10.png"&gt;&lt;img title="screenshot-v1.0_12-9-2011_14.18.5.10" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screenshot-v1.0_12-9-2011_14.18.5.10" src="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_5_10_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_8_170.png"&gt;&lt;img title="screenshot-v1.0_12-9-2011_14.18.8.170" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screenshot-v1.0_12-9-2011_14.18.8.170" src="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_8_170_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_27_813.png"&gt;&lt;img title="screenshot-v1.0_12-9-2011_14.18.27.813" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screenshot-v1.0_12-9-2011_14.18.27.813" src="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_27_813_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_29_695.png"&gt;&lt;img title="screenshot-v1.0_12-9-2011_14.18.29.695" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screenshot-v1.0_12-9-2011_14.18.29.695" src="http://www.sadev.co.za/files/screenshot-v1_0_12-9-2011_14_18_29_695_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5Yk08cp72zA:GSOzXMGfsCI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5Yk08cp72zA:GSOzXMGfsCI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5Yk08cp72zA:GSOzXMGfsCI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5Yk08cp72zA:GSOzXMGfsCI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/5Yk08cp72zA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/portal-2-lab-rat</feedburner:origLink></item><item><title>Platforms &gt; Implementations</title><link>http://feedproxy.google.com/~r/Sadev/~3/zT9D-1u8zqc/platforms-implementations</link><category>.NET</category><category>Development</category><category>Microsoft</category><category>Something Different</category><category>Windows</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 01 Dec 2011 00:13:59 PST</pubDate><guid isPermaLink="false">672 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_217.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_241.png" width="449" height="287" /&gt;&lt;/a&gt;I recently read an &lt;a href="http://www.neophilic.com/b2evo/blogs/blog4.php/2011/09/02/programming-isnt-fun-any-more" target="_blank"&gt;insightful post&lt;/a&gt; about how being a developer is less about coding and more about tooling, and while I do not agree with all of the post, the fact we as developers are tool obsessed rings very true. This obsession with tools becomes a white hot rage when our favourite tool is threated with extinction or causes a world of panic when a competing tool is proposed without enough information on it. &lt;/p&gt;  &lt;p&gt;Let’s look at two key examples of that:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;WinForms was very popular and when Microsoft brought us WPF, there was major push back from those who did not want to change and learn a new tool. If you reading this, then you are thinking well time solved that, I disagree. This very week I was asked about WinForms vs. WPF again. Time doesn’t heal all wounds, it just gives some of us time to move on.&lt;/li&gt;    &lt;li&gt;To illustrate the world of panic I can use a more recent issue – Windows 8! Remember all the discussion before &lt;a href="http://www.buildwindows.com/" target="_blank"&gt;//Build&lt;/a&gt; about the death of &amp;lt;insert your favourite tool here&amp;gt;? The confusion caused by incomplete discussions around tools we love caused panic.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;So what is the solution to this? I think simply a mind set change would be enough. The mind set change needed is to remember that a &lt;u&gt;platform is more important/powerful/useful than a tool&lt;/u&gt;. I would like to take credit for this idea, but the first time I heard anyone mention this was a few years back and it was &lt;a href="http://www.hanselman.com/" target="_blank"&gt;Scott Hanselman&lt;/a&gt; talking on &lt;a href="http://www.sadev.co.za/content/scott-hanselman-last-night-microsoft" target="_blank"&gt;MVC almost three years ago to the day&lt;/a&gt;. He mentioned that ASP.NET &amp;gt; ASP.NET Web Forms and ASP.NET &amp;gt; ASP.NET MVC. In short he was saying that the core understanding of ASP.NET, the core features and the core uses of the platform are bigger than a single implementation (tool) could be. Sure, you need to learn a new tool, but you aren’t starting at zero if you know the platform.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;&lt;a href="http://www.sadev.co.za/files/Silverlight_h_rgb.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Silverlight_h_rgb" border="0" alt="Silverlight_h_rgb" align="right" src="http://www.sadev.co.za/files/Silverlight_h_rgb_thumb.png" width="425" height="130" /&gt;&lt;/a&gt;Why I am bringing this up? It is because of the discussions I have been having about another tool recently: Silverlight. We are approaching the panic stage on this tool due to rumours of it’s demise. However it is VERY important to take a step back and see what the platform is and how knowing the platform means that a tool can move along and we are still able to work/code/make money etc…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;The platform Silverlight uses is XAML based UI technologies, a core set of how we can layout UI components using an XML dialect called XAML. This platform also has lots of options for things like binding, the MVVM patterns and so on that are either difficult or impossible to do with other UI technologies (like WinForms for example).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;XAML based UI technologies started with a single tool: WPF – an implementation of the platform designed to run on top of the .NET Framework. A second tool, Silverlight, later appeared – this is an implementation of the platform designed to run as a plugin in a browser. A third tool, Silverlight for Windows Phone 7, came next and while very close to Silverlight it had it’s differences as it was an implementation of the platform for the phone. In the last few months we have had the forth implementation of the XAML based UI technologies appear: WinRT. This is the Windows Runtime in Windows 8 and when you develop with C#, VB.NET or C++ your UI technology is just another implementation of the platform.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;Every implementation of the platform has been different, some in big ways and some in smaller ways but the core of the XAML based UI technology platform hasn’t changed and there is not a single rumour, plan, or hint that we are even close to seeing the end of XAML based UI technologies. We may see a tool end of life and die (like some rumours say about&amp;#160; Silverlight) or other tools just find completeness and not need new work done (like WPF if) but the platform remains and grows and&lt;u&gt; learning a platform is always more important/powerful/useful&lt;/u&gt;.&lt;/font&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=zT9D-1u8zqc:zT4vWDXXqUQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=zT9D-1u8zqc:zT4vWDXXqUQ:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=zT9D-1u8zqc:zT4vWDXXqUQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=zT9D-1u8zqc:zT4vWDXXqUQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/zT9D-1u8zqc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/platforms-implementations</feedburner:origLink></item><item><title>Firefly for Windows Phone 7</title><link>http://feedproxy.google.com/~r/Sadev/~3/U9WjL-fzeu4/firefly-windows-phone-7</link><category>Tools &amp; Apps</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 22 Nov 2011 02:15:18 PST</pubDate><guid isPermaLink="false">671 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/serentity-logo-square-173x173.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="serentity logo square 173x173" border="0" alt="serentity logo square 173x173" align="right" src="http://www.sadev.co.za/files/serentity-logo-square-173x173_thumb.png" width="138" height="138" /&gt;&lt;/a&gt;I am a brown coat – if you know what that means then you will be excited to see my new application for Windows Phone 7: a Firefly hub app which contains news, images, sounds &amp;amp; ringtones from the show and from the movie, Serenity.&lt;/p&gt;  &lt;p&gt;This started as me wanting a sound board for the show, but grew larger &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_32.png" /&gt;&lt;/p&gt;  &lt;p&gt;This is the first app I have done since my UX training and I hope a lot of the tools and skills I learnt in that training comes through in the application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_5_219.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.5.219" border="0" alt="screenshot-v1.0_11-14-2011_15.49.5.219" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_5_219_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_7_933.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.7.933" border="0" alt="screenshot-v1.0_11-14-2011_15.49.7.933" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_7_933_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_10_995.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.10.995" border="0" alt="screenshot-v1.0_11-14-2011_15.49.10.995" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_10_995_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_12_887.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.12.887" border="0" alt="screenshot-v1.0_11-14-2011_15.49.12.887" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_12_887_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_17_267.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.17.267" border="0" alt="screenshot-v1.0_11-14-2011_15.49.17.267" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_17_267_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_40_667.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="screenshot-v1.0_11-14-2011_15.49.40.667" border="0" alt="screenshot-v1.0_11-14-2011_15.49.40.667" src="http://www.sadev.co.za/files/screenshot-v1_0_11-14-2011_15_49_40_667_thumb.png" width="124" height="204" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;a href="http://www.windowsphone.com/en-US/apps/e47edec2-d988-4ca5-9226-03bc19d92932" target="_blank"&gt;&lt;img src="http://www.sadev.co.za/files/Windows-Phone-7-Download-Button_0.png" /&gt;&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=U9WjL-fzeu4:rneV9Rla5YU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=U9WjL-fzeu4:rneV9Rla5YU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=U9WjL-fzeu4:rneV9Rla5YU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=U9WjL-fzeu4:rneV9Rla5YU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/U9WjL-fzeu4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/firefly-windows-phone-7</feedburner:origLink></item><item><title>TCP servers with .NET: Scenario 4 &amp; Non-blocking servers with .NET 4.5</title><link>http://feedproxy.google.com/~r/Sadev/~3/uI821f2rSkc/tcp-servers-net-scenario-4-non-blocking-servers-net-45</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Sun, 20 Nov 2011 22:25:56 PST</pubDate><guid isPermaLink="false">670 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;em&gt;&lt;small&gt;This post is part of a series, to see the other posts in the series go to the &lt;/small&gt;&lt;a href="/content/tcp-servers-net-series-index" target="_blank"&gt;&lt;em&gt;series index&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_216.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_240.png" width="342" height="276" /&gt;&lt;/a&gt;&lt;a href="/content/tcp-servers-net-scenario-3-non-blocking-async-optimistic-servers" target="_blank"&gt;Scenario 3&lt;/a&gt; is a great solution to the problem, but the problem with it was the complexity of the code is way higher than in &lt;a href="/content/tcp-servers-net-scenario-1-simple-tcp-servers" target="_blank"&gt;scenario 1&lt;/a&gt; or &lt;a href="/content/tcp-servers-net-scenario-2-optimistic-blocking-servers" target="_blank"&gt;scenario 2&lt;/a&gt;. We are calling to other methods, using recursive like behaviours and all kinds of things that are not obvious or easy to grasp. &lt;/p&gt;  &lt;p&gt;Thankfully Microsoft has identified this issue and in .NET 4.5 we will be getting some help with this thanks to the new ASYNC features, in particular the &lt;em&gt;&lt;a href="http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&amp;amp;l=EN-US&amp;amp;k=k(async_CSharpKeyword);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&amp;amp;rd=true" target="_blank"&gt;async&lt;/a&gt;&lt;/em&gt; &amp;amp; &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh156528(v=VS.110).aspx" target="_blank"&gt;await&lt;/a&gt; &lt;/em&gt;keywords. &lt;/p&gt;  &lt;p&gt;In short &lt;em&gt;async &lt;/em&gt;provides information to the compiler that this method will spawn off an asynchronous process and will return to the caller at some point while the &lt;em&gt;await&lt;/em&gt; points out the line of code that line asynchronously. &lt;/p&gt;  &lt;p&gt;So using this allowed me to modify the code back to pretty close to the scenario 1 code (I even have the Boolean continue running server flag). However the two methods are enhanced with the async keyword and in there the await keyword is used with &lt;em&gt;AcceptTcpClientAsync&lt;/em&gt;&amp;#160; and &lt;em&gt;ReadAsync&lt;/em&gt; – these are new methods in the TCP stack which return &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd321424.aspx" target="_blank"&gt;Task&amp;lt;T&amp;gt;&lt;/a&gt;, &lt;/em&gt;a fundamental requirement of calls that work with async. &lt;/p&gt;  &lt;p&gt;I think this is a fantastic improvement, and I cannot wait for .NET 4.5 to ship &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_31.png" /&gt;&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;class Program
{
    private const int BufferSize = 4096;
    private static bool ServerRunning = true;

    static void Main(string[] args)
    {
        var tcpServer = new TcpListener(IPAddress.Any, 9000);
        try
        {
            tcpServer.Start();

            ListenForClients(tcpServer);

            Console.WriteLine(&amp;quot;Press enter to shutdown&amp;quot;);
            Console.ReadLine();

        }
        finally
        {
            tcpServer.Stop();
        }
    }

    private static async void ListenForClients(TcpListener tcpServer)
    {
        while (ServerRunning)
        {
            var tcpClient = await tcpServer.AcceptTcpClientAsync();
            Console.WriteLine(&amp;quot;Connected&amp;quot;);
            ProcessClient(tcpClient);
        }
    }

    private static async void ProcessClient(TcpClient tcpClient)
    {
        while (ServerRunning)
        {
            var stream = tcpClient.GetStream();
            var buffer = new byte[BufferSize];
            var amountRead = await stream.ReadAsync(buffer, 0, BufferSize);

            var message = Encoding.ASCII.GetString(buffer, 0, amountRead);
            Console.WriteLine(&amp;quot;Client sent: {0}&amp;quot;, message);
        }
    }

}&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=uI821f2rSkc:PSk6v5YSzxU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=uI821f2rSkc:PSk6v5YSzxU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=uI821f2rSkc:PSk6v5YSzxU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=uI821f2rSkc:PSk6v5YSzxU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/uI821f2rSkc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/tcp-servers-net-scenario-4-non-blocking-servers-net-45</feedburner:origLink></item><item><title>TCP servers with .NET: Scenario 3 &amp; Non-blocking (Async) optimistic servers</title><link>http://feedproxy.google.com/~r/Sadev/~3/rSjg-GkLKEQ/tcp-servers-net-scenario-3-non-blocking-async-optimistic-servers</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 17 Nov 2011 22:20:58 PST</pubDate><guid isPermaLink="false">669 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;em&gt;&lt;small&gt;This post is part of a series, to see the other posts in the series go to the &lt;/small&gt;&lt;a href="/content/tcp-servers-net-series-index" target="_blank"&gt;&lt;em&gt;series index&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_215.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_239.png" width="345" height="190" /&gt;&lt;/a&gt;The first two posts (&lt;a href="/content/tcp-servers-net-scenario-1-simple-tcp-servers" target="_blank"&gt;post 1&lt;/a&gt;, &lt;a href="/content/tcp-servers-net-scenario-2-optimistic-blocking-servers" target="_blank"&gt;post 2&lt;/a&gt;) in this series were really to just set the stage and help explain problems with TCP servers that do blocking. The code and method is not wrong, they are okay for some scenarios, but if you want a really robust model, a model that fixes the issues with them without any extra technical issues being added you need to use a non-blocking server. &lt;/p&gt;  &lt;p&gt;We start the server the same way, however instead of using the blocking &lt;em&gt;AcceptTcpClient&lt;/em&gt; method we use the non-blocking method &lt;em&gt;BeginAcceptTcpClient&lt;/em&gt; which implements the async or begin/end (I’ll call it async from here on) pattern.&amp;#160; Mark Pearl has a &lt;a href="http://blog.markpearl.co.za/archive/2011/10/12/async-using-the-old-async-begin--end-pattern.aspx" target="_blank"&gt;great post&lt;/a&gt; explaining the async pattern.&lt;/p&gt;  &lt;p&gt;When a client connects, it runs the code associated when we setup the async and in there we call the &lt;em&gt;EndAcceptTcpClient&lt;/em&gt; to end the async process and get the &lt;em&gt;TcpClient&lt;/em&gt; implementation. &lt;/p&gt;  &lt;p&gt;We repeat this process with reading from the client by switching from &lt;em&gt;Read&lt;/em&gt; to &lt;em&gt;BeginRead&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;The advantage of this model is the only blocking point is the &lt;em&gt;Readline &lt;/em&gt;so shutting the server is very easy, we have no thread management to worry about (it is using threads under the covers, but we do not need to care), and clients can connect now and send data at any time – it doesn’t matter! &lt;/p&gt;  &lt;p&gt;This pattern does require a lot more code and it is more complex to setup, but once you understand the async pattern (call begin &amp;gt; pass the info we need in state &amp;gt; call end to get more info we need) it is pretty easy &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_30.png" /&gt;&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;class Program
{
    private const int BufferSize = 4096;

    static void Main(string[] args)
    {
        var tcpServer = new TcpListener(IPAddress.Any, 9000);
        try
        {
            tcpServer.Start();
            
            tcpServer.BeginAcceptTcpClient(ClientConnection, tcpServer);

            Console.WriteLine(&amp;quot;Press enter to shutdown&amp;quot;);
            Console.ReadLine();

        }
        finally
        {
            tcpServer.Stop();
        }
    }

    private static void ClientConnection(IAsyncResult asyncResult)
    {
        Console.WriteLine(&amp;quot;Client connection&amp;quot;);
        var tcpServer = asyncResult.AsyncState as TcpListener;
        var tcpClientConnection = tcpServer.EndAcceptTcpClient(asyncResult);
        tcpServer.BeginAcceptTcpClient(ClientConnection, tcpServer);

        var stream = tcpClientConnection.GetStream();
        var buffer = new byte[BufferSize];
        var clientData = new ClientReadData()
        {
            Buffer = buffer,
            Stream = stream
        };

        stream.BeginRead(buffer, 0, BufferSize, ClientRead, clientData);
    }

    private class ClientReadData
    {
        public byte[] Buffer { get; set; }
        public NetworkStream Stream { get; set; }
    }

    private static void ClientRead(IAsyncResult asyncResult)
    {
        var clientReadData = asyncResult.AsyncState as ClientReadData;
        var amountRead = clientReadData.Stream.EndRead(asyncResult);
        var buffer = new byte[BufferSize];            
        var clientData = new ClientReadData()
        {
            Buffer = buffer,
            Stream = clientReadData.Stream
        };

        clientReadData.Stream.BeginRead(buffer, 0, BufferSize, ClientRead, clientData);

        var message = Encoding.ASCII.GetString(clientReadData.Buffer, 0, amountRead);
        Console.WriteLine(&amp;quot;Client sent: {0}&amp;quot;, message);
    }
}&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=rSjg-GkLKEQ:NZM6D4hRrHs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=rSjg-GkLKEQ:NZM6D4hRrHs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=rSjg-GkLKEQ:NZM6D4hRrHs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=rSjg-GkLKEQ:NZM6D4hRrHs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/rSjg-GkLKEQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/tcp-servers-net-scenario-3-non-blocking-async-optimistic-servers</feedburner:origLink></item><item><title>TCP servers with .NET: Scenario 2 - Optimistic Blocking Servers</title><link>http://feedproxy.google.com/~r/Sadev/~3/5VRQbW0_cXM/tcp-servers-net-scenario-2-optimistic-blocking-servers</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Wed, 16 Nov 2011 22:24:53 PST</pubDate><guid isPermaLink="false">668 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;em&gt;&lt;small&gt;This post is part of a series, to see the other posts in the series go to the &lt;/small&gt;&lt;a href="/content/tcp-servers-net-series-index" target="_blank"&gt;&lt;em&gt;series index&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  
&lt;p&gt;&lt;a href="/files/image_214.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="/files/image_thumb_238.png" width="347" height="191" /&gt;&lt;/a&gt;In the &lt;a href="/content/tcp-servers-net-scenario-1-simple-tcp-servers" target="_blank"&gt;previous post&lt;/a&gt; we looked at the simplest of all TCP server scenarios, but what about the third issue highlighted in the post: It assumes your clients will connect, pass data and disconnect. What about for clients the connect optimistically so that they can send data at some point in the future? &lt;/p&gt;  &lt;p&gt;This is very common for games, where the client connection process is very slow or where even smallest of overhead should be eliminated.&lt;/p&gt;  &lt;p&gt;In this mode rather than read data and disconnect we add a loop on the reading and read until we get a end of message notice and will then end the connection. &lt;/p&gt;  &lt;p&gt;The problem with extending the simple model to this, is that we now have a blocking action, i.e. code can not continue until something happens, in both the server thread and in all the client connection threads. So now shutting down the server is not just related to the server, we need clients to disconnect properly first. &lt;/p&gt;  &lt;p&gt;What is common here, is to send a message to all clients saying it will shutdown and then having them do that. That assumes we have pretty smart clients and/or control them and in scenarios you do not control the TCP clients it could be a bit problem. We will look at a way to solve this in the next post, but for now the code below shows how this is done, and compared to scenario 1 it contains one small change:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;class Program
{
    private const int BufferSize = 4096;
    private static bool ServerRunning = true;

    static void Main(string[] args)
    {
        new Thread(RunTCPServer).Start();
        Console.WriteLine(&amp;quot;Press enter to shutdown&amp;quot;);
        Console.ReadLine();
        ServerRunning = false;
    }

    private static void RunTCPServer()
    {
        var tcpServer = new TcpListener(IPAddress.Any, 9000);
        try
        {
            tcpServer.Start();
            while (ServerRunning)
            {
                var tcpClientConnection = tcpServer.AcceptTcpClient();
                Console.WriteLine(&amp;quot;Client connection&amp;quot;);

                // spawn thread to deal with it     
                new Thread(ClientConnection).Start(tcpClientConnection);
            }
        }
        finally
        {
            tcpServer.Stop();
        }
    }

    private static void ClientConnection(object state)
    {
        var tcpClientConnection = state as TcpClient;
        var stream = tcpClientConnection.GetStream();
        var buffer = new byte[BufferSize];
        while (ServerRunning)  // new in scenario 2
        {
            var amountRead = stream.Read(buffer, 0, BufferSize);
            var message = Encoding.ASCII.GetString(buffer, 0, amountRead);
            Console.WriteLine(&amp;quot;Client sent: {0}&amp;quot;, message);
        }
    }
}&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5VRQbW0_cXM:hWZq8ctKIyU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5VRQbW0_cXM:hWZq8ctKIyU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=5VRQbW0_cXM:hWZq8ctKIyU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=5VRQbW0_cXM:hWZq8ctKIyU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/5VRQbW0_cXM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/tcp-servers-net-scenario-2-optimistic-blocking-servers</feedburner:origLink></item><item><title>TCP servers with .NET: Scenario 1 - Simple TCP servers</title><link>http://feedproxy.google.com/~r/Sadev/~3/nP8K3JlJff0/tcp-servers-net-scenario-1-simple-tcp-servers</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Wed, 16 Nov 2011 00:50:11 PST</pubDate><guid isPermaLink="false">667 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;em&gt;&lt;small&gt;This post is part of a series, to see the other posts in the series go to the &lt;/small&gt;&lt;a href="/content/tcp-servers-net-series-index" target="_blank"&gt;&lt;em&gt;series index&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_213.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_237.png" width="359" height="171" /&gt;&lt;/a&gt;Writing a TCP server is something that modern business .NET developers do not need to worry about, we have WCF which has abstracted us from understanding TCP servers &amp;amp; clients for business apps – but for some systems we still need to write a TCP server or client. &lt;/p&gt;  &lt;p&gt;Microsoft has optimised the .NET framework for common scenarios – for example doing something like SMTP where a server where it is always running and clients connect when they have data, provide the data and disconnect. So what you may do is start a server (in it’s own thread so you can still do other things in the app), and wait for client connections. At this point you are &lt;em&gt;blocking&lt;/em&gt; processing until a client connects. When a client connects, you get the data and process it (in a new thread, so you can allow more clients to connect). &lt;/p&gt;  &lt;p&gt;The advantage of this is this is a simple model and is fairly easy to setup, but there is a few problems with this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font face="Thread-00000e0c-Id-00000002"&gt;You have this blocking point while you wait for clients, so trying to shut it down is difficult. As the view of a server is that it should always be up, this is not an optimised path so there is no way. Basically you will need to deal with task manager to kill the process.&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;You have lots of threading and you must handle threads. Threads are hard to understand and easy to fail so we are opening up potential for problems. &lt;/li&gt;    &lt;li&gt;You assume the client will connect and send data at once and will go away. Once again this is the “normal” scenario (think HTTP or SMTP) but there are scenarios where this is not possible. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;Below is the sample to do this in a console application.&lt;/font&gt;&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;class Program
{
    private const int BufferSize = 4096;
    private static bool ServerRunning = true;

    static void Main(string[] args)
    {
        new Thread(RunTCPServer).Start();
        Console.WriteLine(&amp;quot;Press enter to shutdown&amp;quot;);
        Console.ReadLine();
        ServerRunning = false;
    }

    private static void RunTCPServer()
    {
        var tcpServer = new TcpListener(IPAddress.Any, 9000);
        try
        {
            tcpServer.Start();
            while (ServerRunning)
            {
                var tcpClientConnection = tcpServer.AcceptTcpClient();
                Console.WriteLine(&amp;quot;Client connection&amp;quot;);

                // spawn thread to deal with it     
                new Thread(ClientConnection).Start(tcpClientConnection);
            }
        }
        finally
        {
            tcpServer.Stop();
        }
    }

    private static void ClientConnection(object state)
    {
        var tcpClientConnection = state as TcpClient;
        var stream = tcpClientConnection.GetStream();
        var buffer = new byte[BufferSize];

        var amountRead = stream.Read(buffer, 0, BufferSize);
        var message = Encoding.ASCII.GetString(buffer, 0, amountRead);
        Console.WriteLine(&amp;quot;Client sent: {0}&amp;quot;, message);
    }
}&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=nP8K3JlJff0:pEnUBYkigvM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=nP8K3JlJff0:pEnUBYkigvM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=nP8K3JlJff0:pEnUBYkigvM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=nP8K3JlJff0:pEnUBYkigvM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/nP8K3JlJff0" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/tcp-servers-net-scenario-1-simple-tcp-servers</feedburner:origLink></item><item><title>Windows Phone 7 Apps: SA ID Number Tools &amp; AA Rates Calculator Updates</title><link>http://feedproxy.google.com/~r/Sadev/~3/i4pj7xL9_3k/windows-phone-7-apps-sa-id-number-tools-aa-rates-calculator-updates</link><category>Tools &amp; Apps</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Wed, 16 Nov 2011 00:42:47 PST</pubDate><guid isPermaLink="false">665 at http://www.sadev.co.za</guid><description>&lt;p&gt;I have a few &lt;a href="http://www.sadev.co.za/apps" target="_blank"&gt;Windows Phone 7 apps&lt;/a&gt;, and two of those are the &lt;a href="http://www.sadev.co.za/content/south-african-id-number-tools-windows-phone-7" target="_blank"&gt;SA ID Number Tools&lt;/a&gt; and the &lt;a href="http://www.sadev.co.za/content/aa-rates-calculator-windows-phone-7" target="_blank"&gt;AA Rates Calculator&lt;/a&gt; ones. You may be familiar with the AA Rates one from my friend, &lt;a href="http://www.rudigrobler.net/" target="_blank"&gt;Rudi Grobler&lt;/a&gt;, who used it in his TechEd talks to show a UI that did not follow the model correctly &lt;img class="wlEmoticon wlEmoticon-disappointedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Disappointed smile" src="http://www.sadev.co.za/files/wlEmoticon-disappointedsmile_0.png" /&gt;&lt;/p&gt;  &lt;p&gt;I took this and the Windows Phone UX training I attended to heart and put a lot of work into updating them and making them a lot more in line with the WP7 UI guidelines.&lt;/p&gt;  &lt;h3&gt;AA Rates Calculator&lt;/h3&gt;  &lt;p&gt;The first think is this application has dropped the yellow background, which made sense for an AA tool (being their colour is yellow), and now is black or white depending on your theme. All controls have been updated to reflect that too. I have also fixed the alignment things Rudi was so quick to point out. &lt;/p&gt;  &lt;p&gt;I use the highlight colour now and larger typography to really make the key information stand out from the rest – this is something I learnt at the UX camp.&lt;/p&gt;  &lt;p&gt;In addition I have some other new features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;About to share your rate via email or social networks (twitter, facebook etc…)&lt;/li&gt;    &lt;li&gt;The yellow branding is used in a position bar to give you an idea of how much is in the app.&lt;/li&gt;    &lt;li&gt;I also added a fuel price page so you can always have the latest fuel price information!&lt;/li&gt;    &lt;li&gt;The information pickers have also had an update and the selection is much larger now, so easier for people with big hands like me.&lt;/li&gt;    &lt;li&gt;Fuel price can be displayed on a live tile too!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_29_695.png"&gt;&lt;img title="aa-1.3_10-27-2011_11.37.29.695" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_11.37.29.695" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_29_695_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_33_281.png"&gt;&lt;img title="aa-1.3_10-27-2011_11.37.33.281" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_11.37.33.281" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_33_281_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_37_515.png"&gt;&lt;img title="aa-1.3_10-27-2011_11.37.37.515" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_11.37.37.515" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_11_37_37_515_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;SA ID Number Tools&lt;/h3&gt;  &lt;p&gt;Once again I dropped the background green (which was a photo of my ID book cover) and that also meant being able to move to a pivot control rather than a (heavy) panorama control. The green/gold theme has been mostly lost, with gold being used in selective places in the application. Also a careful use of font sizes and colours in the application to make the information stand out more.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_34_627.png"&gt;&lt;img title="aa-1.3_10-27-2011_18.26.34.627" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_18.26.34.627" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_34_627_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_39_767.png"&gt;&lt;img title="aa-1.3_10-27-2011_18.26.39.767" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_18.26.39.767" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_39_767_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_45_727.png"&gt;&lt;img title="aa-1.3_10-27-2011_18.26.45.727" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="aa-1.3_10-27-2011_18.26.45.727" src="http://www.sadev.co.za/files/aa-1_3_10-27-2011_18_26_45_727_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hopefully these changes make these apps feel faster, easier to use and more part of your phone than before!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=i4pj7xL9_3k:8_fW2Kjw-qU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=i4pj7xL9_3k:8_fW2Kjw-qU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=i4pj7xL9_3k:8_fW2Kjw-qU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=i4pj7xL9_3k:8_fW2Kjw-qU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/i4pj7xL9_3k" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-apps-sa-id-number-tools-aa-rates-calculator-updates</feedburner:origLink></item><item><title>Windows Phone 7: Professional Tips - Press and hold</title><link>http://feedproxy.google.com/~r/Sadev/~3/Ys3TJnqmzuA/windows-phone-7-professional-tips-press-and-hold</link><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 27 Oct 2011 23:51:29 PDT</pubDate><guid isPermaLink="false">664 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/Robert.png"&gt;&lt;img title="Robert" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Robert" align="right" src="http://www.sadev.co.za/files/Robert_thumb.png" width="243" height="403" /&gt;&lt;/a&gt;The keyboard on WP7 is an amazing area which you will be often exposed to, so it is not surprising it contains some hidden gems to make the experience better, like &lt;a href="http://www.sadev.co.za/content/windows-phone-7-professional-tips-double-tap" target="_blank"&gt;double tap&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Today the hidden gem is the ability to press and hold keys to get pop ups with other options, which could save you navigating to the symbols/number section or even give you access to options that you never had anywhere else.&lt;/p&gt;  &lt;p&gt;If you have a look at the screen shot you will see the dot key has been pressed and held and the popup has dash, exclamation, colon, question mark and dot in it. Much easier to find than going to the symbols section.&lt;/p&gt;  &lt;p&gt;Other keys with this. Letters shown in lower case support this on upper case too:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;e – ê è ë é &lt;/li&gt;    &lt;li&gt;t – þ &lt;/li&gt;    &lt;li&gt;y – ý ÿ &lt;/li&gt;    &lt;li&gt;u – ù ú û ü &lt;/li&gt;    &lt;li&gt;i – ì í î ï &lt;/li&gt;    &lt;li&gt;o – ò ó ô ö ø œ &lt;/li&gt;    &lt;li&gt;a – ä á â à å æ &lt;/li&gt;    &lt;li&gt;s – ß § &lt;/li&gt;    &lt;li&gt;d – ð &lt;/li&gt;    &lt;li&gt;c – ç © &lt;/li&gt;    &lt;li&gt;n – ñ &lt;/li&gt;    &lt;li&gt;m – ɥ &lt;/li&gt;    &lt;li&gt;1 – ⅓ ¼ ½ &lt;/li&gt;    &lt;li&gt;2 – ² ⅔ &lt;/li&gt;    &lt;li&gt;3 – ¾ ³ &lt;/li&gt;    &lt;li&gt;0 – ° &lt;/li&gt;    &lt;li&gt;£ – $ ¢ € ¥ ¤ &lt;/li&gt;    &lt;li&gt;( – &amp;lt; { [ &lt;/li&gt;    &lt;li&gt;) – &amp;gt; } ] &lt;/li&gt;    &lt;li&gt;- - _ ~ ¬ · &lt;/li&gt;    &lt;li&gt;! – ¡ &lt;/li&gt;    &lt;li&gt;' – ´ ` &lt;/li&gt;    &lt;li&gt;&amp;quot; – « » “ ” &lt;/li&gt;    &lt;li&gt;? - ¿ &lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=Ys3TJnqmzuA:lKcXIpXtIm8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=Ys3TJnqmzuA:lKcXIpXtIm8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=Ys3TJnqmzuA:lKcXIpXtIm8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=Ys3TJnqmzuA:lKcXIpXtIm8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/Ys3TJnqmzuA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-professional-tips-press-and-hold</feedburner:origLink></item><item><title>Windows Phone 7: Professional Tips &amp; Dismiss notifications</title><link>http://feedproxy.google.com/~r/Sadev/~3/wfBCrbQYzKs/windows-phone-7-professional-tips-dismiss-notifications</link><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 27 Oct 2011 03:11:56 PDT</pubDate><guid isPermaLink="false">663 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/Windows_Phone_7_Toast_Notification.jpg"&gt;&lt;img title="" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="source http://www.windowsphoneitaly.com/news/eventi/3123-mix11-windows-phone-7-con-larrivo-di-mango-sara-revisionato-il-sistema-delle-live-tiles.html" align="right" src="http://www.sadev.co.za/files/Windows_Phone_7_Toast_Notification_thumb.jpg" width="239" height="396" /&gt;&lt;/a&gt;Windows Phone 7 supports little pop up notifications, which are called toasts (cause they pop up like bread in a toaster). You will see these when you get a text message (SMS) or from games (like &lt;a href="http://www.windowsphone.com/en-GB/apps/3b48efd3-9fc8-4bb0-adeb-c4f85fe803a3" target="_blank"&gt;Tanks&lt;/a&gt;) or in chat programs like &lt;a href="http://www.windowsphone.com/en-GB/apps/218a0ebb-1585-4c7e-a9ec-054cf4569a79" target="_blank"&gt;WhatsApp&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;These can linger around for a little bit, but you can get rid of them quickly – just swipe across them, like you were flicking them away and they will rush off your screen.&lt;/p&gt;  &lt;p&gt;I use this a lot with WhatsApp when I get multiple messages quickly so I can clear the first and see the second toast which is under it or when I am playing a game and I want to get that SMS off screen so I can continue to play.&lt;/p&gt;  &lt;p&gt;It’s another example of the UX in the phone having great little touches.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=wfBCrbQYzKs:kKKyjid15Kg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=wfBCrbQYzKs:kKKyjid15Kg:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=wfBCrbQYzKs:kKKyjid15Kg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=wfBCrbQYzKs:kKKyjid15Kg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/wfBCrbQYzKs" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-professional-tips-dismiss-notifications</feedburner:origLink></item><item><title>The Arturo Grid for Windows Phone 7 in PNG &amp; GIMP</title><link>http://feedproxy.google.com/~r/Sadev/~3/bwqm7jpaiBY/arturo-grid-windows-phone-7-png-gimp</link><category>ALM</category><category>Development</category><category>Tools &amp; Apps</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 25 Oct 2011 22:38:56 PDT</pubDate><guid isPermaLink="false">662 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://ux.artu.tv/" target="_blank"&gt;&lt;img title="layout" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="layout" align="right" src="/files/layout.png" width="211" height="352" /&gt;Arturo Toledo&lt;/a&gt; works at Microsoft on the Windows Phone Design Studio team, and last week I had the chance to attend phone training with him. In that training he showed a grid he used for layout so that his apps match the layout of Windows Phone 7 apps – I call this the Arturo Grid.&lt;/p&gt;  &lt;p&gt;Yesterday he &lt;a href="http://ux.artu.tv/?p=165" target="_blank"&gt;posted about it&lt;/a&gt; and released an Expression Design version of it, which is great if you have Expression Design… but if you don’t it can be a problem. So I recreated it using the free graphics tool, &lt;a href="http://www.gimp.org/" target="_blank"&gt;The GIMP&lt;/a&gt;, and produced a transparent PNG version so that it can work in just about anything!&lt;/p&gt;  &lt;h3&gt;Downloads&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/files/layout_0.png" target="_blank"&gt;Layout.png&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/files/wp7grid.xcf" target="_blank"&gt;layout.xcf&lt;/a&gt; (GIMP version)&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;How I did it?&lt;/h3&gt;  &lt;p&gt;GIMP is a fantastic tool and I thought I would share how I created this layout. First I started with a new image, with the resolution of 480 x 800 and a transparent background.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_202.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_226.png" width="211" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Next run &lt;em&gt;Filters&lt;/em&gt; ► &lt;em&gt;Render&lt;/em&gt; ► &lt;em&gt;Pattern&lt;/em&gt; ► &lt;em&gt;Grid &lt;/em&gt;and set the parameters as in the screen shot below. Note the offset horizontal &amp;amp; vertical lines are not linked. What we are doing here are creating grids of 37x37 (25 + 12 based off the Arturo Grid) with line width of 12 (so the space that is left is 25x25). The offset is +6 so that it pushes out, because the line widths are based on the middle of the line and not the edge.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_203.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_227.png" width="168" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now add two layers, another transparent one and a white backed layer.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_204.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_228.png" width="212" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Place the new transparent at the bottom and the white in second place.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_205.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_229.png" width="64" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and now merge down the grid layer onto the white layer.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_206.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_230.png" width="64" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now drag on guides:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Vertical: 24px&lt;/li&gt;    &lt;li&gt;Vertical: 456px&lt;/li&gt;    &lt;li&gt;Horizontal: 56px&lt;/li&gt;    &lt;li&gt;Horizontal: 784px&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;and select that region.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_207.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_231.png" width="151" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Create a new &lt;/p&gt;  &lt;p&gt;Then use &lt;em&gt;Select ►&lt;/em&gt;&lt;em&gt; Invert &lt;/em&gt;and press delete. This removes the area around the grid for the &lt;a href="http://en.wikipedia.org/wiki/Bleed_(printing)" target="_blank"&gt;bleed&lt;/a&gt; (padding) area that your app shouldn’t use. &lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_208.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_232.png" width="151" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now use the Fuzzy Select Tool (aka the magic wand selector tool) and click on the black.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_209.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_233.png" width="151" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now hit delete to remove those black lines leaving just the white squares.&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_210.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_234.png" width="151" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can tweak the colours using the colour exchange tool (&lt;em&gt;Colors ►&lt;/em&gt;&amp;#160;&lt;em&gt;Map&lt;/em&gt; &lt;em&gt;Color ► Exchange&lt;/em&gt;) and you can tweak the transparency using the &lt;em&gt;Opacity&lt;/em&gt; option on the layer tool to make it more transparent. &lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_211.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_235.png" width="114" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There you go, now you are done &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="/files/wlEmoticon-smile_29.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/image_212.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/files/image_thumb_236.png" width="151" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/layout_0.png"&gt;layout.png&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2.62 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="even"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/wp7grid.xcf"&gt;wp7grid.xcf&lt;/a&gt;&lt;/td&gt;&lt;td&gt;465.82 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=bwqm7jpaiBY:7eq93EO1IM4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=bwqm7jpaiBY:7eq93EO1IM4:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=bwqm7jpaiBY:7eq93EO1IM4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=bwqm7jpaiBY:7eq93EO1IM4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/bwqm7jpaiBY" height="1" width="1"/&gt;</description><enclosure url="http://www.sadev.co.za/files/layout_0.png" length="2684" type="image/png" /><feedburner:origLink>http://www.sadev.co.za/content/arturo-grid-windows-phone-7-png-gimp</feedburner:origLink></item><item><title>Windows Phone 7: Professional Tips - Double tap</title><link>http://feedproxy.google.com/~r/Sadev/~3/pDT8c3ZUbJc/windows-phone-7-professional-tips-double-tap</link><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 25 Oct 2011 05:12:53 PDT</pubDate><guid isPermaLink="false">661 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/D04.jpg"&gt;&lt;img title="D04" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="D04" align="right" src="http://www.sadev.co.za/files/D04_thumb.jpg" width="116" height="191" /&gt;&lt;/a&gt;When you want to make sure something is dead (finished), you shoot it twice – also known as a double tap. Windows Phone 7 supports this too… for sentences. &lt;/p&gt;  &lt;p&gt;When typing, double tap the space key and it will insert a full stop and a space!&lt;/p&gt;  &lt;p&gt;Considering the size of the space key and how easy it is to double tap, rather than find the smaller dot key and move to the space key it can save you a little. &lt;/p&gt;  &lt;p&gt;This is just one of the many awesome UX features in the phone!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=pDT8c3ZUbJc:zzAVwhi03gY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=pDT8c3ZUbJc:zzAVwhi03gY:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=pDT8c3ZUbJc:zzAVwhi03gY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=pDT8c3ZUbJc:zzAVwhi03gY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/pDT8c3ZUbJc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-professional-tips-double-tap</feedburner:origLink></item><item><title>Tech·Ed Africa: Slides, Scripts &amp; Thoughts</title><link>http://feedproxy.google.com/~r/Sadev/~3/BNU5p7WZTIE/teched-africa-slides-scripts-thoughts</link><category>.NET</category><category>ALM</category><category>Development</category><category>Microsoft</category><category>Presentations, Posters &amp; Cheat Sheets</category><category>Tools &amp; Apps</category><category>Windows</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Wed, 19 Oct 2011 01:46:28 PDT</pubDate><guid isPermaLink="false">660 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/WP_000405_0.jpg"&gt;&lt;img title="WP_000405" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WP_000405" align="right" src="http://www.sadev.co.za/files/WP_000405_thumb_0.jpg" width="244" height="184" /&gt;&lt;/a&gt;WOW! I am sitting here under s a fake tree in a fake city that is Micropolis (also known as the Tech·Ed Africa 2011 expo, and it is AMAZING!). I have just finished my third and final presentation at Tech·Ed Africa 2011 and I just wanted to say THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU to all the people who attended my talks!&lt;/p&gt;  &lt;p&gt;This year not only has an amazing expo, but the audiences have been by far the BEST EVER! A special thanks to those who braved 8am to see my .NET 4 talk – 2min before I started I thought “I need sleep”, 2min after the energy from the audience was flowing and I never looked back at what I felt was a great talk, so thank you! &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_28.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/f0_0.jpg"&gt;&lt;img title="what it looks like from the presenter at #techedafrica" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="what it looks like from the presenter at #techedafrica" align="left" src="http://www.sadev.co.za/files/f0_thumb_0.jpg" width="244" height="184" /&gt;&lt;/a&gt;A special work of thanks to Suliman and &lt;a href="http://blogs.msdn.com/b/southafrica" target="_blank"&gt;DPE&lt;/a&gt; (it is their fake tree I am sitting under) for arranging this and the opportunity to present! I also want to say thanks to the technical team at the event, without who you would not see or hear me, and they were fantastic this year!&lt;/p&gt;  &lt;p&gt;For those who attended my talks, or those who couldn’t &lt;strong&gt;&lt;u&gt;below are the slides, scripts and misc files used in the talks!&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;(for those in an RSS reader or on the home page, click read more)&lt;/p&gt;
&lt;!--break--&gt;
&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Power features in .NET 4: Investigating the features of .NET 4 which you don’t know about&lt;/h3&gt;  &lt;div id="__ss_9765661" style="width: 425px"&gt;&lt;iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/9765661" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;h4&gt;File downloads&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/files/NET 4 Demo Script.docx" target="_blank"&gt;Script&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/files/zunedemo.snippet" target="_blank"&gt;Zune demo snippet&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Extend Visual Studio 2010&lt;/h3&gt;  &lt;div id="__ss_9765673" style="width: 425px"&gt;&lt;iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/9765673" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;h4&gt;File downloads&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/files/Extending Script.docx" target="_blank"&gt;Script&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/files/boring editor sdk demo.snippet" target="_blank"&gt;Extension snippet used for the BIG demo&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/1541eff6-00fa-421a-8ce2-52e8b810ed9b" target="_blank"&gt;Dispose Snippet&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="/files/StructC.Snippet" target="_blank"&gt;Complete Struct Snippet&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Building Business Applications with Microsoft Visual Studio LightSwitch&lt;/h3&gt;  &lt;div id="__ss_9765667" style="width: 425px"&gt;&lt;iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/9765667" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;h4&gt;File downloads&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/files/Lightswitch Demo Script_0.docx" target="_blank"&gt;Script&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/br/&gt;&lt;/br/&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/NET 4 Demo Script.docx"&gt;NET 4 Demo Script.docx&lt;/a&gt;&lt;/td&gt;&lt;td&gt;22.45 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="even"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/zunedemo.snippet"&gt;zunedemo.snippet&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.64 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/Extending Script.docx"&gt;Extending Script.docx&lt;/a&gt;&lt;/td&gt;&lt;td&gt;21.69 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="even"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/boring editor sdk demo.snippet"&gt;boring editor sdk demo.snippet&lt;/a&gt;&lt;/td&gt;&lt;td&gt;1.92 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/StructC.Snippet"&gt;StructC.Snippet&lt;/a&gt;&lt;/td&gt;&lt;td&gt;3.62 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class="even"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/Lightswitch Demo Script_0.docx"&gt;Lightswitch Demo Script.docx&lt;/a&gt;&lt;/td&gt;&lt;td&gt;24.3 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=BNU5p7WZTIE:9_WLC9YpvZU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=BNU5p7WZTIE:9_WLC9YpvZU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=BNU5p7WZTIE:9_WLC9YpvZU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=BNU5p7WZTIE:9_WLC9YpvZU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/BNU5p7WZTIE" height="1" width="1"/&gt;</description><enclosure url="http://www.sadev.co.za/files/NET 4 Demo Script.docx" length="22992" type="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /><feedburner:origLink>http://www.sadev.co.za/content/teched-africa-slides-scripts-thoughts</feedburner:origLink></item><item><title>Tech·Ed Africa 2011 for Windows Phone 7 - 1.1 released</title><link>http://feedproxy.google.com/~r/Sadev/~3/0OThw3XQEP4/teched-africa-2011-windows-phone-7-1.1-released</link><category>Events</category><category>Microsoft</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 13 Oct 2011 01:12:08 PDT</pubDate><guid isPermaLink="false">658 at http://www.sadev.co.za</guid><description>&lt;blockquote&gt;Update: This application has been retired - it was for TechEd 2011 and used the website a lot, the moment the site changes the app will break. It's goal &amp; use are done, so I am happy to retire it.&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/icon_0.png"&gt;&lt;img title="icon" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="icon" align="right" src="http://www.sadev.co.za/files/icon_thumb_0.png" width="244" height="244" /&gt;&lt;/a&gt;I’m very happy to announce the 1.1 version of the Tech·Ed Africa app for Windows Phone 7 is now out with a TON of new features:&lt;/p&gt;  &lt;p&gt;First up is dedicated in app pages for speakers. This means no more browsing to the website for speaker info. There is also options to view their Twitter, website etc… and since we not on Mango it supports saving the contact details to the device.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_27_591.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.9.27.591" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.9.27.591" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_27_591_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Second&amp;#160; is similar, dedicated pages for the sessions too!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_47_75.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.7.47.75" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.7.47.75" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_47_75_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Third improvement is on the sessions list page – a lot of cleanup and bug fixing there plus lots of options for the grouping (level, audience etc..). This should help finding session info very easily.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_31_361.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.7.31.361" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.7.31.361" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_31_361_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The MVP page got a BIG facelift too, with buttons for contact details for each MVP, and a cleaner more bold experience. Of the whole application I am most happy with the UI on this page. I also added a community tweets page that has tweets searched by hash tags!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_41_901.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.9.41.901" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.9.41.901" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_41_901_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The welcome page got a cleanup with more focus on the news tweets and the removal of the refresh option, since it refreshes in a lot of ways manual isn’t really needed. It also allows you to launch the BIG new feature…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_22_575.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.7.22.575" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.7.22.575" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_7_22_575_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Session planner! You can now browse and book sessions on your phone! And your phone will give you reminders to attend the sessions!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_55_431.png"&gt;&lt;img title="teched-1.2_10-6-2011_16.9.55.431" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="teched-1.2_10-6-2011_16.9.55.431" src="http://www.sadev.co.za/files/teched-1_2_10-6-2011_16_9_55_431_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There is also a lot of UI tweaks – first the background was swopped to the latest UI from Tech·Ed and made a lot darker, so the contrast to the white stands out more the readability is WAY better. I also spent a lot of time with &lt;a href="http://www.rudigrobler.net/" target="_blank"&gt;Rudi Grobler&lt;/a&gt; getting some of the smaller UI things right, so a big thanks to him! It even has a new and MUCH nicer icon &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_26.png" /&gt; So what are you waiting for, go update NOW!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsphone.com/s?appid=326ebe78-ff7a-4aa6-a803-8a57cf1ad405"&gt;&lt;img title="wp7_278x92_blue" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="wp7_278x92_blue" src="/files/Windows-Phone-7-Download-Button_3.png" width="240" height="79" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=0OThw3XQEP4:-cAun6nS_1g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=0OThw3XQEP4:-cAun6nS_1g:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=0OThw3XQEP4:-cAun6nS_1g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=0OThw3XQEP4:-cAun6nS_1g:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/0OThw3XQEP4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/teched-africa-2011-windows-phone-7-1.1-released</feedburner:origLink></item><item><title>SharePoint Saturday: Lab Rooms</title><link>http://feedproxy.google.com/~r/Sadev/~3/4sfGWALVhrM/sharepoint-saturday-lab-rooms</link><category>.NET</category><category>Development</category><category>Events</category><category>Microsoft</category><category>Presentations, Posters &amp; Cheat Sheets</category><category>SharePoint</category><category>Virtualisation</category><category>Windows</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Fri, 07 Oct 2011 04:24:44 PDT</pubDate><guid isPermaLink="false">657 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_201.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 0px 10px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_225.png" width="37" height="276" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/logo_wp75-h_web.jpg"&gt;&lt;img title="logo_wp75-h_web" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="logo_wp75-h_web" align="left" src="http://www.sadev.co.za/files/logo_wp75-h_web_thumb.jpg" width="61" height="291" /&gt;&lt;/a&gt;Next weekend (15th Oct) Cape Town is hosting the &lt;a href="http://www.sharepointsaturday.org/capetown/default.aspx" target="_blank"&gt;SharePoint Saturday&lt;/a&gt; conference and myself and fellow &lt;a href="http://www.bbd.co.za/" target="_blank"&gt;BBD&lt;/a&gt;er &lt;a href="http://www.rudigrobler.net/" target="_blank"&gt;Rudi Grobler&lt;/a&gt; will be there and will be and we are running a very special event in conjunction with the main event: Lab Rooms!&lt;/p&gt;  &lt;p&gt;There will be two special rooms available and in one Rudi will presenting and training on Windows Phone 7 and in the other I will be presenting and training on the Windows Azure Platform!&lt;/p&gt;  &lt;p&gt;The cost for this? FREE! It is being sponsored by BBD &amp;amp; the SharePoint Saturday event &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_25.png" /&gt;&lt;/p&gt;  &lt;p&gt;Space in both rooms is VERY VERY limited, so you need to register NOW!&lt;/p&gt;  &lt;p&gt;Windows Phone Registration: &lt;a href="http://wp7camp.eventbrite.com/"&gt;http://wp7camp.eventbrite.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure Registration: &lt;a title="http://windowsazurecpt.eventbrite.com/" href="http://windowsazurecpt.eventbrite.com/"&gt;http://windowsazurecpt.eventbrite.com/&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=4sfGWALVhrM:_80CywCaS2w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=4sfGWALVhrM:_80CywCaS2w:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=4sfGWALVhrM:_80CywCaS2w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=4sfGWALVhrM:_80CywCaS2w:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/4sfGWALVhrM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/sharepoint-saturday-lab-rooms</feedburner:origLink></item><item><title>Tech·Ed Africa 2011 Survival Guide</title><link>http://feedproxy.google.com/~r/Sadev/~3/7btjd_kRXZ8/teched-africa-2011-survival-guide</link><category>Events</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 06 Oct 2011 06:04:51 PDT</pubDate><guid isPermaLink="false">656 at http://www.sadev.co.za</guid><description>&lt;p&gt;Last year I posted a Tech·Ed Africa related post titled: &lt;a href="/content/teched-africa-how-find-gems-sessions" target="_blank"&gt;How to find the gems in the sessions?&lt;/a&gt;,&amp;#160; which included a slide deck of a presentation I did at &lt;a href="http://www.bbd.co.za/" target="_blank"&gt;BBD&lt;/a&gt; for the staff attending Tech·Ed to help them prepare for the event. It was a VERY popular slide deck and this year I am doing the same thing. Below is the 2011 survival guide for Tech·Ed Africa! &lt;/p&gt;  &lt;p&gt;If you find it useful please let me know on &lt;a href="http://twitter.com/rmaclean" target="_blank"&gt;@rmaclean&lt;/a&gt;&amp;#160;&lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_24.png" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div id="__ss_9573597" style="width: 425px"&gt;&lt;object id="__sse9573597" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tech-ed2011fieldguide-public-111006075314-phpapp02&amp;amp;stripped_title=teched-2011-survival-guide&amp;amp;userName=rmaclean" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed name="__sse9573597" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=tech-ed2011fieldguide-public-111006075314-phpapp02&amp;amp;stripped_title=teched-2011-survival-guide&amp;amp;userName=rmaclean" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;  &lt;p&gt;if you looking for more info on the slides, then please download the slide deck and check the notes. There is also a Easter egg slide with interesting information for those who download the slide deck &lt;img class="wlEmoticon wlEmoticon-winkingsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Winking smile" src="http://www.sadev.co.za/files/wlEmoticon-winkingsmile_12.png" /&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7btjd_kRXZ8:nOV03gRpKjI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7btjd_kRXZ8:nOV03gRpKjI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7btjd_kRXZ8:nOV03gRpKjI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7btjd_kRXZ8:nOV03gRpKjI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/7btjd_kRXZ8" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/teched-africa-2011-survival-guide</feedburner:origLink></item><item><title>Tech·Ed Africa 2011 for Windows Phone 7</title><link>http://feedproxy.google.com/~r/Sadev/~3/CwiTgq1S6MU/teched-africa-2011-windows-phone-7</link><category>Events</category><category>Tools &amp; Apps</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Fri, 30 Sep 2011 02:35:31 PDT</pubDate><guid isPermaLink="false">655 at http://www.sadev.co.za</guid><description>&lt;blockquote&gt;Update: Check out the info on the &lt;a href="/content/teched-africa-2011-windows-phone-7-1.1-released" target="_blank"&gt;1.1 version&lt;/a&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;Update: This application has been retired - it was for TechEd 2011 and used the website a lot, the moment the site changes the app will break. It's goal &amp; use are done, so I am happy to retire it.&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="/files/icon.png"&gt;&lt;img title="icon" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="icon" align="right" src="/files/icon_thumb.png" width="244" height="244" /&gt;&lt;/a&gt;I am passionate about Microsoft Tech·Ed Africa, not because I’m a speaker there (and have been many times in the past) but because it is an awesome event. Now in this mobile world every awesome event needs an equally awesome mobile app. Since Microsoft isn’t releasing one for Tech·Ed, I decided to put my skills to use and build a Windows Phone 7 app for the event &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="/files/wlEmoticon-smile_23.png" /&gt;&lt;/p&gt;  &lt;p&gt;This app is a little different from my other apps as I didn’t have the data, and it is a constantly moving target so I am doing some very smart (and maybe a little sneaky) things to get the content from the &lt;a href="http://www.teched.co.za"&gt;www.teched.co.za&lt;/a&gt; website! &lt;/p&gt;  &lt;p&gt;Version 1 allows you to browse sessions, speakers, get pro tips, see who the awesome MVP’s are, and get official news!&lt;/p&gt;  &lt;p&gt;I am working on version 1.1 which include community tweets, proper speaker &amp;amp; session pages and will update with more info as it is released so keep an eye on those updates!&lt;/p&gt;  &lt;p&gt;&lt;a href="/files/teched-1_0_9-26-2011_15_3_42_322.png"&gt;&lt;img title="teched-1.0_9-26-2011_15.3.42.322" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="teched-1.0_9-26-2011_15.3.42.322" src="/files/teched-1_0_9-26-2011_15_3_42_322_thumb.png" width="128" height="211" /&gt;&lt;/a&gt;&lt;a href="/files/teched-1_0_9-26-2011_15_3_46_594.png"&gt;&lt;img title="teched-1.0_9-26-2011_15.3.46.594" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="teched-1.0_9-26-2011_15.3.46.594" src="/files/teched-1_0_9-26-2011_15_3_46_594_thumb.png" width="128" height="211" /&gt;&lt;/a&gt;&lt;a href="/files/teched-1_0_9-26-2011_15_3_56_67.png"&gt;&lt;img title="teched-1.0_9-26-2011_15.3.56.67" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="teched-1.0_9-26-2011_15.3.56.67" src="/files/teched-1_0_9-26-2011_15_3_56_67_thumb.png" width="128" height="211" /&gt;&lt;/a&gt;&lt;a href="/files/teched-1_0_9-26-2011_15_4_8_664.png"&gt;&lt;img title="teched-1.0_9-26-2011_15.4.8.664" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="teched-1.0_9-26-2011_15.4.8.664" src="/files/teched-1_0_9-26-2011_15_4_8_664_thumb.png" width="128" height="211" /&gt;&lt;/a&gt;&lt;a href="/files/teched-1_0_9-26-2011_15_4_11_309.png"&gt;&lt;img title="teched-1.0_9-26-2011_15.4.11.309" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="teched-1.0_9-26-2011_15.4.11.309" src="/files/teched-1_0_9-26-2011_15_4_11_309_thumb.png" width="128" height="211" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=CwiTgq1S6MU:x4D8bHfHh3U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=CwiTgq1S6MU:x4D8bHfHh3U:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=CwiTgq1S6MU:x4D8bHfHh3U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=CwiTgq1S6MU:x4D8bHfHh3U:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/CwiTgq1S6MU" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/teched-africa-2011-windows-phone-7</feedburner:origLink></item><item><title>Tech·Ed Pro Tip: DevIdols</title><link>http://feedproxy.google.com/~r/Sadev/~3/1xMWiDYsqq4/teched-pro-tip-devidols</link><category>Events</category><category>Presentations, Posters &amp; Cheat Sheets</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Mon, 26 Sep 2011 01:10:26 PDT</pubDate><guid isPermaLink="false">654 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="/files/devidols.png"&gt;&lt;img title="devidols" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="devidols" align="right" src="http://www.sadev.co.za/files/devidols_thumb.png" width="157" height="240" /&gt;&lt;/a&gt;Tech·Ed Africa 2010 introduced a new feature, DevIdols, which was one of the TOP highlights of Tech·Ed, and I am VERY PROUD to announce that it is back this year again!&lt;/p&gt;  &lt;p&gt;DevIdols is a special competition only open to attendees (no speakers or staff) where you get to present on stage for a few minutes to an audience and panel of judges! &lt;/p&gt;  &lt;p&gt;The prize? a chance to be a speaker at Tech·Ed 2012! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now I know for most people the thought of public speaking is scary but this event is different, you have so little time most of it is just a blur and everyone there is in a very friendly mood (normally audience and speakers get a beer or two) so even if you tank no one takes it too seriously and we all have a good laugh.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you are not a speaker, and I cannot convince you to speak, then let me convince you to come along and watch. You see a bunch of topics, presented in a variety of ways and I promise you that you will have a GREAT time. Keep an eye out on the &lt;a href="http://blogs.msdn.com/b/southafrica/archive/2011/09/23/dev-idols-2011-coming-to-teched.aspx"&gt;DPE Blog&lt;/a&gt; for more details.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=1xMWiDYsqq4:qzzhy5LTQts:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=1xMWiDYsqq4:qzzhy5LTQts:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=1xMWiDYsqq4:qzzhy5LTQts:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=1xMWiDYsqq4:qzzhy5LTQts:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/1xMWiDYsqq4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/teched-pro-tip-devidols</feedburner:origLink></item><item><title>Windows Phone 7 Weekend - Feedback, slides etc...</title><link>http://feedproxy.google.com/~r/Sadev/~3/GEuCyN2OWsM/windows-phone-7-weekend-feedback-slides-etc</link><category>Events</category><category>Presentations, Posters &amp; Cheat Sheets</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 20 Sep 2011 08:06:53 PDT</pubDate><guid isPermaLink="false">653 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/wp7logo_web.jpg"&gt;&lt;img title="wp7logo_web" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="wp7logo_web" align="right" src="http://www.sadev.co.za/files/wp7logo_web_thumb.jpg" width="304" height="145" /&gt;&lt;/a&gt;This past Saturday myself &amp;amp; &lt;a href="http://www.rudigrobler.net" target="_blank"&gt;Rudi Grobler&lt;/a&gt; presented a full day workshop on Windows Phone 7 development and we were BLOWN away with the event!&lt;/p&gt;  &lt;p&gt;We had a great turn out, easily over hundred people were there and they&amp;#160; were one of the most amazing audiences I’ve ever had the honour to present to – they were insanely engaged in the discussion and really brought up all the tough issues that we love to discuss &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_21.png" /&gt;&lt;/p&gt;  &lt;p&gt;In addition to that Microsoft, Nokia &amp;amp; BBD were awesome sponsors, but I have to single out Nokia who put up the most amazing prizes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;3 x Microsoft Xbox 360 for the first people to get 100 downloads for their WP7 app!&lt;/li&gt;    &lt;li&gt;10 x Nokia Windows Phone 7 (when available) for the first people to get 1 000 downloads for their WP7 app!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;JUST WOW!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;As we stated on the day you need to email both Dave Russell (&lt;a href="mailto:drussell@microsoft.com"&gt;drussell@microsoft.com&lt;/a&gt;) &amp;amp; Derrick Kotze (&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;(&lt;a href="mailto:derrick.kotze@nokia.com"&gt;derrick.kotze@nokia.com&lt;/a&gt;) now to register and let them know when you reach your 100 or 1 000!&lt;/p&gt;  &lt;p&gt;My big disappointment was the lab room, which never really got any traction, but with awesome presentations all day can you blame it &lt;img class="wlEmoticon wlEmoticon-winkingsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Winking smile" src="http://www.sadev.co.za/files/wlEmoticon-winkingsmile_11.png" /&gt;&lt;/p&gt;  &lt;p&gt;If you are looking for the slides, we have shared them using BitBucket so you can grab them at: &lt;a href="https://bitbucket.org/rudigrobler/windows-phone-weekend-workshop-v2"&gt;https://bitbucket.org/rudigrobler/windows-phone-weekend-workshop-v2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=GEuCyN2OWsM:JTZysdXzNdU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=GEuCyN2OWsM:JTZysdXzNdU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=GEuCyN2OWsM:JTZysdXzNdU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=GEuCyN2OWsM:JTZysdXzNdU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/GEuCyN2OWsM" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-weekend-feedback-slides-etc</feedburner:origLink></item><item><title>Windows 8 Keyboard Shortcuts</title><link>http://feedproxy.google.com/~r/Sadev/~3/SYxL85xb0TA/windows-8-keyboard-shortcuts</link><category>Windows</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Fri, 16 Sep 2011 01:26:34 PDT</pubDate><guid isPermaLink="false">648 at http://www.sadev.co.za</guid><description>&lt;a href="http://www.sadev.co.za/files/image_183.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_207.png" width="357" height="225" /&gt;&lt;/a&gt;   &lt;p&gt;Note: This relates to the Windows 8 Developer Preview, your mileage may vary and this may change.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Updated: 20 Sept 2011 – included four new shortcuts!&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;New in Windows 8&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Windows Key (WIN): In Start page toggles between the last app and the start page. For example if you have a Weather open it will toggle between that and the start page. In desktop mode it jumps to the start page. &lt;/li&gt;    &lt;li&gt;Win+Z: &lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;(NEW)&lt;/font&gt;&lt;/strong&gt; Brings up the UI on the Metro Style application. So for the browser this brings up the address bar and tabs while on Copper it brings up the in game menu. Very useful keyboard shortcut to use. Some apps support this on right click too. &lt;/li&gt;    &lt;li&gt;Win+PgDn or Win+PgUp: &lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;(NEW) &lt;/font&gt;&lt;/strong&gt;Toggles the “main” screen when you have multi monitors. Like clicking the white monitor icon. Very useful to toggle the location of the Start page.       &lt;ul&gt;       &lt;li&gt;The white monitor icon: &lt;a href="http://www.sadev.co.za/files/image_184.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_208.png" width="64" height="53" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+C: Brings up the clock &amp;amp; start menu:      &lt;ul&gt;       &lt;li&gt;&amp;#160;&lt;a href="http://www.sadev.co.za/files/image_185.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_209.png" width="244" height="82" /&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://www.sadev.co.za/files/image_186.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_210.png" width="86" height="107" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+F: Brings up the start file search, this is very useful to find an app quickly:      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_187.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_211.png" width="105" height="131" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+I: Brings up the settings pane (i.e. the bar on the right hand side for settings) for the current application:      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_188.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_212.png" width="45" height="147" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+Q: Brings up contextual search app, for example if you in desktop mode you get the BUILD search where in the start page it brings up the app search      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_189.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_213.png" width="133" height="145" /&gt;&lt;/a&gt; &lt;a href="http://www.sadev.co.za/files/image_190.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_214.png" width="83" height="144" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+W: Brings up the settings search:      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_191.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_215.png" width="130" height="125" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Other ones – most from Windows 7 that still work&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Win+B : Focus on the system tray . If you are on the Start page then you jump to desktop mode.      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_192.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_216.png" width="240" height="52" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+D or Win+M: Minimize to desktop – if you are on the start page then you will be taken to desktop mode. &lt;/li&gt;    &lt;li&gt;Win+E: Launch Explorer - if you are on the start page then you will be taken to desktop mode. &lt;/li&gt;    &lt;li&gt;Win+L: Locks your screen &lt;/li&gt;    &lt;li&gt;Win+P: Brings up your multi-monitor options. This requires two or monitors + drivers that supports it:      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_193.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_217.png" width="68" height="115" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+R: Run dialog:      &lt;ul&gt;       &lt;li&gt;&amp;#160;&lt;a href="http://www.sadev.co.za/files/image_194.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_218.png" width="244" height="128" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+T: Focus on the task bar. If you are on the start page then you jump to desktop mode      &lt;ul&gt;       &lt;li&gt;&amp;#160;&lt;a href="http://www.sadev.co.za/files/image_195.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_219.png" width="244" height="19" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+U: Brings up the Ease Of Access options      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_196.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_220.png" width="244" height="154" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+X: Brings up the mobility center      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_197.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_221.png" width="244" height="124" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Win+Y: Does the Aero Peek of your desktop &lt;/li&gt;    &lt;li&gt;Win+Number: Launches the app in that task bar position, for example: &lt;a href="http://www.sadev.co.za/files/image_198.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_222.png" width="244" height="19" /&gt;&lt;/a&gt; Win+1 will launch IE, Win+2 explorer, Win+3 chrome etc… &lt;/li&gt;    &lt;li&gt;Win+Home: &lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;(NEW)&lt;/font&gt;&lt;/strong&gt; Minimizes everything except the current app, which is very useful in multi monitors. Keep hitting it to cycle windows. &lt;/li&gt;    &lt;li&gt;Win+Pause: Brings up the system dialog      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.sadev.co.za/files/image_199.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_223.png" width="244" height="213" /&gt;&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=SYxL85xb0TA:52sJHd_WxE0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=SYxL85xb0TA:52sJHd_WxE0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=SYxL85xb0TA:52sJHd_WxE0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=SYxL85xb0TA:52sJHd_WxE0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/SYxL85xb0TA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-8-keyboard-shortcuts</feedburner:origLink></item><item><title>Windows 8: How to get it working</title><link>http://feedproxy.google.com/~r/Sadev/~3/PsvQePpLGUI/windows-8-how-get-it-working</link><category>.NET</category><category>Annoyances</category><category>Development</category><category>Microsoft</category><category>Windows</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 15 Sep 2011 05:09:52 PDT</pubDate><guid isPermaLink="false">647 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;font color="#000000"&gt;(Update 1)&lt;/font&gt; Note: This relates to the Windows 8 Developer Preview, your mileage may vary and this may change. &lt;/p&gt;  &lt;p&gt;This post is here to help you, and me, by sharing solutions that I am finding while trying to get Windows 8 running for a professional developer. I am using a HP 8510w laptop so some things maybe specific. This will be updated randomly and will be more like a live blog than a polished post.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffc000"&gt;&lt;font color="#000000"&gt;(Update 1)&lt;/font&gt; &lt;/font&gt;As I update this I will prefix new content with (Update #) where # is the update number. The latest ones will be in bold.&lt;/p&gt;  &lt;h2&gt;Problems &amp;amp; Solutions&lt;/h2&gt;  &lt;h3&gt;Graphics&lt;/h3&gt;  &lt;p&gt;I have a NVidia Quatro graphics card and to get it working correctly with Win8 (rather than the basic graphic driver) I needed to use the BETA driver from: &lt;a title="Beta and Older Driver Versions" href="http://www.nvidia.com/page/link_beta_archive_drivers.html"&gt;Beta and Older Driver Versions&lt;/a&gt; – I used the &lt;a href="http://www.nvidia.com/object/notebook-win7-winvista-64bit-285.27-beta-driver.html"&gt;Verde 285.27 Driver&lt;/a&gt; and that worked just fine, everything else was broken in one way or another.&lt;/p&gt;  &lt;h3&gt;.NET 3.5&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_180.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_204.png" width="244" height="214" /&gt;&lt;/a&gt;A bunch of apps use .NET 3.5 or earlier so I needed that. To install it you must install it via the &lt;em&gt;Turn Windows Features On/Off&lt;/em&gt;&amp;#160; option in the control panel (it’s under Programs). I had a BUNCH of issues (error 0x800F0906) getting it to work as it needs to download it which I think are proxy related. Once I downloaded via 3g it finally came down (took an hour &lt;img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sad smile" src="http://www.sadev.co.za/files/wlEmoticon-sadsmile_11.png" /&gt;).&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;(UPDATE 2)&lt;/font&gt; Tried this via a transparent proxy and it worked too. Seems it is related to proxy servers that require basic authentication.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;(UPDATE 4) Finally found a solution &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_22.png" /&gt; Thanks to Zayd Kara for helping me with this:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Copy the SXS folder from the Windows 8 ISO to the C:\Temp folder. &lt;/p&gt;  &lt;p&gt;Then run: &lt;em&gt;dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:c:\temp\sxs /LimitAccess&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/pic.png"&gt;&lt;img title="pic" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="pic" src="http://www.sadev.co.za/files/pic_thumb.png" width="341" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Metro Style Apps Don’t Run&lt;/h3&gt;  &lt;p&gt;Details: &lt;a title="http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/cd6df64d-737d-40e0-b999-03e654204448" href="http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/cd6df64d-737d-40e0-b999-03e654204448"&gt;http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/cd6df64d-737d-40e0-b999-03e654204448&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffc000"&gt;&lt;font color="#000000"&gt;(Update 1)&lt;/font&gt; &lt;/font&gt;Found the error message in the Event Log (&lt;em&gt;Application and Services Logs –&amp;gt; Microsoft –&amp;gt; Windows –&amp;gt; WwaHost –&amp;gt; Admin&lt;/em&gt;)&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Windows Web Application Host has encountered an unexpected exception. The error is number 0x8007000E.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_181.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_205.png" width="244" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;(UPDATE 2)&lt;/font&gt; One of the best new features in Windows 8 is the ability to reset your machine without affecting your files. I did this and this solved all my issues &lt;a href="http://www.sadev.co.za/files/image_182.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_206.png" width="244" height="72" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffff00"&gt;(&lt;/font&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;UPDATE 4)&lt;/font&gt; &lt;/strong&gt;The cause of this is the DLink modem software for my 3G modem. It is screwing up com. No idea why, and no way around it. That’ll teach me to use a 3g modem that doesn’t work with the natively Windows 7/8 mobile internet support.&lt;/p&gt;  &lt;h3&gt;Windows Phone Developer Tools&lt;/h3&gt;  &lt;p&gt;The 7.0 RTM release will NOT install at all. The 7.1 RC will install so you may need to get that one.&lt;/p&gt;  &lt;p&gt;YOU MUST install .NET 3.5 first (see above). Once installed I didn’t have any emulator options and trying to run it would cause: HRESULT: 0x89721800&lt;/p&gt;  &lt;p&gt;I resolved this by deleting “%LOCALAPPDATA%\Microsoft\Phone Tools\CoreCon\10.0” (source for that &lt;a href="http://forums.create.msdn.com/forums/p/82372/497101.aspx"&gt;App Hub Forums&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;The emulator option appeared but now when I try to run it, it crashes Windows 8 with a BSOD related to vmm.sys – no solution yet.&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;(UPDATE 2)&lt;/font&gt;&lt;strong&gt; &lt;/strong&gt;I have tried everything and nothing seems to help. Resorted to using a Windows 7 boot from VHD to be able to run these tools &lt;img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sad smile" src="http://www.sadev.co.za/files/wlEmoticon-sadsmile_11.png" /&gt;&lt;/p&gt;  &lt;h3&gt;Microsoft Security Essentials&lt;/h3&gt;  &lt;p&gt;&lt;s&gt;It would not install because of a compatibility issue &lt;img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sad smile" src="http://www.sadev.co.za/files/wlEmoticon-sadsmile_11.png" /&gt; Downloaded it again from the &lt;a href="http://www.microsoft.com/en-za/security_essentials/default.aspx"&gt;website&lt;/a&gt;, which doesn’t tell you version numbers and the file size looked the same, but this newer one did work fine.&lt;/s&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;(UPDATE 2) &lt;/font&gt;&lt;a href="http://www.identit.ca" target="_blank"&gt;Paul Adare&lt;/a&gt; pointed out on the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/587fa1f2-40f4-4a61-a9ce-5ebd3e5130ed/" target="_blank"&gt;forums&lt;/a&gt; that this is included now out of the box, so not needed &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_19.png" /&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Switch to Live ID&lt;/h3&gt;  &lt;p&gt;Not working, error 0xD00000072 – suspecting proxy again.&lt;/p&gt;  &lt;h3&gt;Install of Visual Studio 2010 Offline Documentation&lt;/h3&gt;  &lt;p&gt;Completely failed, no idea why.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/Capture_0.png"&gt;&lt;img title="Capture" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Capture" src="http://www.sadev.co.za/files/Capture_thumb_0.png" width="244" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;D-Link 3G Modem&lt;/h3&gt;  &lt;p&gt;It could not find the drivers, so I had to go to device manager, select the unknown devices –&amp;gt; Right click –&amp;gt;&amp;#160; Update Driver –&amp;gt; Browse my computer –&amp;gt; C:\Program Files (x86)\D-Link Connection Manager\drivers\64bit\WIN7&lt;/p&gt;  &lt;p&gt;Then it found and installed the drivers for the 3G modem&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000000"&gt;(Update 1)&lt;/font&gt;&lt;font style="font-weight: normal"&gt; &lt;/font&gt;Visual Studio 11 Express for Windows Developer Preview&lt;/h3&gt;  &lt;p&gt;Cannot build or run Metro Style apps. &lt;/p&gt;  &lt;p&gt;Designer is failing with &lt;em&gt;Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;And running them fails with &lt;em&gt;Unable to activate Windows Tailored application&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I suspect this is related to the Metro app issue above.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/Capture5_0.png"&gt;&lt;img title="Capture5" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Capture5" src="http://www.sadev.co.za/files/Capture5_thumb_0.png" width="364" height="152" /&gt;&lt;/a&gt;&lt;a href="http://www.sadev.co.za/files/Capture6_0.png"&gt;&lt;img title="Capture6" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Capture6" src="http://www.sadev.co.za/files/Capture6_thumb_0.png" width="704" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;&lt;font color="#000000"&gt;(Update 1) &lt;/font&gt;&lt;/strong&gt;Internet Explorer 10&lt;/h3&gt;  &lt;p&gt;Two interesting issues, one browsing our intranet which runs on HTTPS any content from HTTP fails to load and there is NO option to allow it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/Capture3_0.png"&gt;&lt;img title="Capture3" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Capture3" src="http://www.sadev.co.za/files/Capture3_thumb_0.png" width="244" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Second issue is in the IE desktop mode there is no tooltips &lt;img class="wlEmoticon wlEmoticon-confusedsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Confused smile" src="http://www.sadev.co.za/files/wlEmoticon-confusedsmile_2.png" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/ie-desktop_0.png"&gt;&lt;img title="ie-desktop" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="ie-desktop" src="http://www.sadev.co.za/files/ie-desktop_thumb_0.png" width="175" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However the solution is to run the Metro Style Internet Explorer, and it shows tooltips… and they are LOVELY:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/ie-metro_0.png"&gt;&lt;img title="ie-metro" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="ie-metro" src="http://www.sadev.co.za/files/ie-metro_thumb_0.png" width="336" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font style="font-weight: normal; background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="font-weight: normal"&gt;(Update 3)&lt;/font&gt; SharePoint&lt;/h3&gt;  &lt;p&gt;I am referring to connecting to SharePoint server using IE 10, in short – it is horrid for anything other than basic browsing. I have installed Chrome to get around this.&lt;/p&gt;  &lt;h3&gt;&lt;font style="font-weight: normal; background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="font-weight: normal"&gt;(Update 3)&lt;/font&gt;&lt;font style="font-weight: normal; background-color: #ffff00"&gt;&lt;/font&gt; Windows Server AppFabric&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_200.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_224.png" width="263" height="82" /&gt;&lt;/a&gt;I needed Windows Server AppFabric installed so I could do development, however AppFabric does not install on Windows 8 &lt;img class="wlEmoticon wlEmoticon-sadsmile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sad smile" src="http://www.sadev.co.za/files/wlEmoticon-sadsmile_12.png" /&gt;&lt;/p&gt;  &lt;p&gt;To work around this I waited for the error to appear, then browsed to the extracted files (the moment you click ok on the error it cleans itself up) and used the &lt;a href="http://technet.microsoft.com/en-us/library/cc722332(WS.10).aspx" target="_blank"&gt;expand&lt;/a&gt; command to extract the msu file which you can find in the packages folder.&lt;/p&gt;    &lt;p&gt;That gets me a cab file which I extract again and that produces another 1 996 files. In there I used the file search to find the assemblies I needed to get the code to build, won’t run but at least I can code &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_20.png" /&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font style="background-color: #ffff00"&gt;(Update 4)&lt;/font&gt; HP LaserJet 4250 Printer&lt;/h3&gt;  &lt;p&gt;I have this printer on the network but it was horrid trying to get Windows to see and work with it. The trick was to download the actual PCL6 drivers from the HP website. This has all the options to set it up and it works fine now &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_22.png" /&gt;&lt;/p&gt;  &lt;h2&gt;Things that just worked&lt;/h2&gt;  &lt;p&gt;For balance here are application that have been installed with no issue.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2010 + SP1 &lt;/li&gt;    &lt;li&gt;Firefox 6 &lt;/li&gt;    &lt;li&gt;Chrome (what ever the latest is) &lt;/li&gt;    &lt;li&gt;Windows Live Writer &lt;/li&gt;    &lt;li&gt;TweetDeck &lt;/li&gt;    &lt;li&gt;Office 2010 + SP 1 &lt;/li&gt;    &lt;li&gt;&lt;font color="#ffc000"&gt;&lt;font color="#000000"&gt;(Update 1)&lt;/font&gt; &lt;/font&gt;VLC &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font style="style"&gt;(Update 3)&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/strong&gt; &lt;a href="http://pull.codeplex.com" target="_blank"&gt;Pull&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There is also some more info in the comments!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=PsvQePpLGUI:jf47N7i9L5Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=PsvQePpLGUI:jf47N7i9L5Y:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=PsvQePpLGUI:jf47N7i9L5Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=PsvQePpLGUI:jf47N7i9L5Y:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/PsvQePpLGUI" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-8-how-get-it-working</feedburner:origLink></item><item><title>Windows Phone 7 Weekend Workshop</title><link>http://feedproxy.google.com/~r/Sadev/~3/qOuv2Zr_b-g/windows-phone-7-weekend-workshop</link><category>Development</category><category>Events</category><category>Windows Phone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 08 Sep 2011 07:00:32 PDT</pubDate><guid isPermaLink="false">645 at http://www.sadev.co.za</guid><description>&lt;p&gt;I have mentioned an awesome event that is being run by Microsoft before, the &lt;a href="/content/important-windows-phone-news" target="_blank"&gt;Windows Phone 7 Weekend Workshop&lt;/a&gt; and I just want to highlight it again (it is about 70% full already so you need to hurry up).&lt;/p&gt;  &lt;p&gt;It is a &lt;strong&gt;&lt;u&gt;FREE &lt;/u&gt;&lt;/strong&gt;full day event with TWO tracks available. There is a lecture/presentation style track where you learn about the phone and a developer room track where you can build your phone apps with expert guidance or do some hands on labs.&amp;#160; &lt;/p&gt;  &lt;p&gt;I am most excited about the developer room, because if you want to get an up out to the market place THIS IS THE BEST PLACE TO BE. Expert help, focused time and who knows, maybe some prizes for those who get them up! &lt;/p&gt;  &lt;p&gt;The event is being run in conjunction with a number of groups&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft – Being just after //BUILD may be a GREAT time to get some extra insight or clarity. &lt;/li&gt;    &lt;li&gt;Nokia – You know the phone guys, they are sponsoring this event and will have someone there to answer questions. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.bbd.co.za" target="_blank"&gt;BBD&lt;/a&gt; &amp;amp; MVP – Both myself &amp;amp; Rudi Grobler are speaking and we both work at BBD &amp;amp; are both Microsoft MVP’s. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Details:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Calibri"&gt;When: Saturday, 17 September 2011&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;Time: 9am to 4pm&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;Where: Microsoft office in Bryanston.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/b/southafrica/archive/2011/08/25/windows-phone-weekend-warrior-weekend-17th-september-2011.aspx" target="_blank"&gt;More info and registration&lt;/a&gt;!&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=qOuv2Zr_b-g:Ic-_4pnXM2M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=qOuv2Zr_b-g:Ic-_4pnXM2M:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=qOuv2Zr_b-g:Ic-_4pnXM2M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=qOuv2Zr_b-g:Ic-_4pnXM2M:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/qOuv2Zr_b-g" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/windows-phone-7-weekend-workshop</feedburner:origLink></item><item><title>Do you work for Microsoft?</title><link>http://feedproxy.google.com/~r/Sadev/~3/tNvZJFEo7Ys/do-you-work-microsoft</link><category>Personal</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 08 Sep 2011 01:34:43 PDT</pubDate><guid isPermaLink="false">644 at http://www.sadev.co.za</guid><description>&lt;p&gt;I was communicating over email with recently and they assumed that I worked for or at Microsoft, when questioned why they think that (this wasn’t a technical email or any other factors) they pointed out my email signature which has (highlighted in image) that I am a Microsoft MVP and a Microsoft Ranger.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_162.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.sadev.co.za/files/image_thumb_186.png" width="773" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you aren’t in the Microsoft ecosystem I can see how you may assume that means I am an employee. So let’s clear this up:&lt;/p&gt;  &lt;p&gt;I AM NOT A MICROSOFT EMPLOYEE. What I say cannot and should not be assumed to be related, endorsed or sanctioned by Microsoft. &lt;/p&gt;  &lt;p&gt;So what are those two things in my email signature?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Microsoft MVP:&lt;/strong&gt; This is an award from Microsoft for service to the community. You can read more about it &lt;a href="/content/what-alm-mvp" target="_blank"&gt;here&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft Ranger:&lt;/strong&gt; This is a team of Microsoft staff and external people that work together to produce content and tools to help people. I have worked with Microsoft and even at their offices, but not as an employee. You can read more about the Rangers &lt;a href="/content/rangers-sabbatical-part-1-prologue" target="_blank"&gt;here&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=tNvZJFEo7Ys:_sItFhkD5_w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=tNvZJFEo7Ys:_sItFhkD5_w:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=tNvZJFEo7Ys:_sItFhkD5_w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=tNvZJFEo7Ys:_sItFhkD5_w:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/tNvZJFEo7Ys" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/do-you-work-microsoft</feedburner:origLink></item><item><title>.NET 4, do you know the new features? - Top 10 most useful features</title><link>http://feedproxy.google.com/~r/Sadev/~3/7S35Q8P3NAA/net-4-do-you-know-new-features-top-10-most-useful-features</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Thu, 08 Sep 2011 01:05:00 PDT</pubDate><guid isPermaLink="false">643 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_161.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_185.png" width="416" height="212" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;small&gt;More in this series can be found in the &lt;a href="http://www.sadev.co.za/content/net-4-do-you-know-new-features-introduction"&gt;introduction&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;  &lt;p&gt;In the past two posts we have looked at the negative (&lt;a href="/content/net-4-do-you-know-new-features-top-10-least-known-features" target="_blank"&gt;top 10 least known&lt;/a&gt;, &lt;a href="/content/net-4-do-you-know-new-features-12-features-majority-thinks-are-useless" target="_blank"&gt;top 12 most useless&lt;/a&gt;) so lets switch to the positive side and see what is on the list for top 10 most useful features. &lt;/p&gt;  &lt;p&gt;This is worked out by those who knew the feature and indicated it was useful using the same ratio as explained in the in top 12 most useless post.&lt;/p&gt;  &lt;h4&gt;CLR/BCL: IsNullOrWhiteSpace&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 21 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; We have had IsNullOrEmpty on string for a while but in .NET 4 we have the added IsNullOrWhiteSpace which checks for Nulls, empty strings or strings of just white space.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;Easy to see why this is useful, it covers more scenarios than the old one, it is easily discoverable and it solves a difficult problem (I do not think many people understand all the white space charters).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string" href="http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Stream.CopyTo&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio: &lt;/strong&gt;19 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; You have two streams, you want to copy from one stream to another one, which previously took 6 lines of code, a loop and 3 variables now uses 1 line of code and always works.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;A common problem and a great solution and is easily discoverable because the method name is exactly what you would be looking for.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-ix-stream" href="http://www.sadev.co.za/content/net-4-baby-steps-part-ix-stream"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-ix-stream&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Enum.HasFlag&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 17 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Enumerator has support for bitwise operations but previously has &lt;a href="/content/dynamically-working-enums" target="_blank"&gt;involved a fairly unintuitive calculation&lt;/a&gt;. I think that it was so unintuitive that some people have never even realised bitwise operations were supported. Now we have a single method which makes it VERY easy. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;Making the hard easy and making it very discoverable – the factors of all these top useful functions!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum" href="http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Enum.TryParse&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio: &lt;/strong&gt;7.6 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Going from a string to an enum has been possible in the past but it has never been a fluid experience. No support for generics and not easy to to handle bad data easily. TryParse solves those by brining generics into it and providing a response to tell you if it succeeds.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I think this is a BIG problem for many developers and this is a great and useful solution.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum" href="http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-iii-enum&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: TimeSpan parsing improvements&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 5.7 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Parsing strings into timespans is not easy, there is many ways to type in time ranges and it has been difficult for people to get right constantly… until .NET 4!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I am surprised at how highly this is up the list, it is useful but ranked this high surprises me as I do not think many people use TimeSpan’s in business systems.&lt;/p&gt;&lt;p&gt;&lt;blockquote&gt;Update: Mark Stacey on Twitter provided some good business use cases I didn't think of (&lt;a href="http://twitter.com/#!/MarkGStacey/statuses/111735806359650304" target="_blank"&gt;Tweet 1&lt;/a&gt;, &lt;a href="http://twitter.com/#!/MarkGStacey/statuses/111736373253382145" target="_blank"&gt;Tweet 2&lt;/a&gt;): "Absolutely. Business process stuff ~ loan applications, time since call was logged, tons of others. Especially where multiple applications work in process."&lt;/blockquote&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-i-timespan" href="http://www.sadev.co.za/content/net-4-baby-steps-part-i-timespan"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-i-timespan&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: MemoryCache&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 5 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; MemoryCache is a per process in memory cache for your application which is VERY easy to use regardless of application type – prior to .NET 4 only ASP.NET had an in memory cache. There is also some low plumbing that makes it possible to have the cache stored to other locations, like files or SQL.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;This is one of only two features in this list that also appeared in another list, in both cases the top 10 unknown features. This brings joy to me since it means that the issue here is discoverability because once you know it – you find big value in it &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.sadev.co.za/files/wlEmoticon-smile_18.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-baby-steps-part-vii-caching" href="http://www.sadev.co.za/content/net-baby-steps-part-vii-caching"&gt;http://www.sadev.co.za/content/net-baby-steps-part-vii-caching&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: string.Join&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio: &lt;/strong&gt;4.7 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; &lt;em&gt;Join&lt;/em&gt; allows us to concatenate an array of strings together with a specific separator character in place.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;This is very useful, as there is often times you need to loop over strings and build up another string. Think of in line SQL generation with a WHERE clause! Very useful stuff.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string" href="http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-ii-string&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;Parallel: Parallel Extensions&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 3.7 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Writing code that runs across cores has not been easy and the parallel extensions make it easy to understand how when thinking about normal for or foreach looping structures as it provides implementations of those looping structures which do run across multiple cores.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;A fantastic edition to the framework and a much needed one to help solve the issue of having multi-core machines but the complexity of threading not being worth the effort. Why this is came in so high compared to the other two new additions in parallel (TPL was ranked 14th most useful &amp;amp; PLINQ 22nd) is odd but maybe because this is the easiest of the three to understand.&lt;/p&gt;  &lt;p&gt;As a side not this is the only one of the most useful top 11 that I didn’t cover in my &lt;a href="/content/net-4-baby-steps-series-index" target="_blank"&gt;.NET 4 Baby Steps&lt;/a&gt; series which really makes me proud since it shows I was on target for that series.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/pulled-apart-part-vii-plinq-not-easy-first-assumed" href="http://www.sadev.co.za/content/pulled-apart-part-vii-plinq-not-easy-first-assumed"&gt;http://www.sadev.co.za/content/pulled-apart-part-vii-plinq-not-easy-first-assumed&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: 64bit identification on Environment class&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 3.5 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; The environment class has been enhanced to have two new properties which help if the OS is 64bit and the process running is 64bit. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;This also appeared on the top 10 unknown feature list, so really highlights that developers are either not thinking about 64bit at all but when they do, the tools they need are available.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps" href="http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Lazy&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 3.2 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Lazy allows you to wrap a class (target class) in another class (Lazy&amp;lt;T&amp;gt; class) and gain lazy constructor calling on the target class. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;Very nice feature, but I am surprised it did this well on the useful list as I see this as a bandage to a bad design solution. Proper use of patterns and planning in code should prevent usage – but I’ve been known to be wrong so tell me in the comments why you see this as useful!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-v-lazy" href="http://www.sadev.co.za/content/net-4-baby-steps-part-v-lazy"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-v-lazy&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7S35Q8P3NAA:Dju0dBqy_2M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7S35Q8P3NAA:Dju0dBqy_2M:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=7S35Q8P3NAA:Dju0dBqy_2M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=7S35Q8P3NAA:Dju0dBqy_2M:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/7S35Q8P3NAA" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/net-4-do-you-know-new-features-top-10-most-useful-features</feedburner:origLink></item><item><title>.NET 4, do you know the new features? - The 12 features the majority thinks are useless.</title><link>http://feedproxy.google.com/~r/Sadev/~3/NHF0QEs32Bc/net-4-do-you-know-new-features-12-features-majority-thinks-are-useless</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 06 Sep 2011 23:59:01 PDT</pubDate><guid isPermaLink="false">642 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_160.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_184.png" width="394" height="186" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;small&gt;More in this series can be found in the &lt;a href="http://www.sadev.co.za/content/net-4-do-you-know-new-features-introduction"&gt;introduction&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;  &lt;p&gt;Another interesting statistic was that only 12 of the 61 features are rated useless, in other words more people thought those features were useless than useful. &lt;/p&gt;  &lt;p&gt;This is really good, because this really means that about 80% of the new features are seen to be useful and thus that was a good spend of resources for Microsoft.&lt;/p&gt;  &lt;p&gt;I am measuring this in a &lt;em&gt;Useful Ratio&lt;/em&gt; – Number of people who think it is useful compared to number of people who think it is useless. For examples:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Thread-000018cc-Id-0000000a"&gt;1 : 1 – For every one person who thinks it is useful, one person thinks it is useless&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;2 : 1 – Two people think it is useful for everyone that thinks it isn’t. &lt;/li&gt;    &lt;li&gt;0.5 : 1 – Half a person thinks a feature is useful compared for everyone who thinks it is useless. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;CLR/BCL: Addition &amp;amp; Subtraction with IntPtr &amp;amp; UIntPtr&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio:&lt;/strong&gt; 0.3 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Adds an offset to the value of a pointer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;The first feature to appear on more than one list, as it also appeared on the top 10 least known. So this brings up an interesting though – you either don’t know of this or you think it is shit. My views of why this is useless is the same as why it is unknown, the use case for this is TINY!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx" href="http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Complex Number Support&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.3 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;Complex numbers are a specific mathematical concept especially for doing graphs, vector calculus and other things that are pretty specialised. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;.NET 4 also included another new construct called &lt;a href="http://msdn.microsoft.com/en-us/library/system.tuple.aspx" target="_blank"&gt;Tuple&lt;/a&gt; and .NET has had KeyValuePair for ages and this seems very similar to those (from the perspective of someone without university math). All it gives compared to the other two are some easier math functions. So easy to see why it is not that useful as it is easy to implement those on Tuple or KeyValuePair.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-xii-numbers" href="http://www.sadev.co.za/content/net-4-baby-steps-part-xii-numbers"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-xii-numbers&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;WPF: Touch Support&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.4 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;WPF now supports input from touch, like you can touch buttons and text boxes etc…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;This feels very similar to System.Device.Location which is hampered by the lack of hardware that supports the feature.&amp;#160; WPF is doubly hurt because Silverlight is competing with it and has touch support already.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://blogs.msdn.com/b/jaimer/archive/2009/11/04/introduction-to-wpf-4-multitouch.aspx" href="http://blogs.msdn.com/b/jaimer/archive/2009/11/04/introduction-to-wpf-4-multitouch.aspx"&gt;http://blogs.msdn.com/b/jaimer/archive/2009/11/04/introduction-to-wpf-4-multitouch.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Side by Side (SxS) CLR's in the same process&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.6 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;Prior to .NET 4 you could not allow two different CLRs (i.e: 1.0, 1.1 or 2.0) in exist in the same process. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I hit this a few times with ASP.NET where two sites ran in the same AppPool and one site was running 1.1 and the other 2.0 and there would be a failure. &lt;/p&gt;  &lt;p&gt;This was primarily put in also to allow plug-ins built in different CLR’s run in the same application. &lt;/p&gt;  &lt;p&gt;Besides the ASP.NET issue I’ve not seen a need for this, it really feels like plumbing for future applications.&lt;/p&gt; &lt;p&gt;&lt;Blockquote&gt;Update: Mike &lt;a href="#comment-2176"&gt;posted in the comments&lt;/a&gt; a great use case I didn't think of, which adds more value for this feature.&lt;/blockquote&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://msdn.microsoft.com/en-us/magazine/ee819091.aspx" href="http://msdn.microsoft.com/en-us/magazine/ee819091.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/ee819091.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;WPF: Text Rendering Stack&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.6 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;WPF previously rendered text differently to how Windows did, this is where the perception of it being blurry comes from. As part of Visual Studio 2010 they used WPF and spent considerable time improving the text rendering. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I don’t get this, it means that WPF is better looking and it costs nothing for you. Maybe the issue is because it costs nothing people see the value as nothing?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.hanselman.com/blog/WPFAndTextBlurrinessNowWithCompleteClarity.aspx" href="http://www.hanselman.com/blog/WPFAndTextBlurrinessNowWithCompleteClarity.aspx"&gt;http://www.hanselman.com/blog/WPFAndTextBlurrinessNowWithCompleteClarity.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;ASP.NET: CDN Support&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.7 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;Microsoft has a large content delivery network which contains many scripts that web sites use, like jQuery. Using a CDN can significantly improve performance of your website.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;Reasons why I think people don’t like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Thread-000018cc-Id-0000000a"&gt;Internal only applications cannot benefit from this.&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;People prefer other CDN’s – as there are a few BIG ones now. &lt;/li&gt;    &lt;li&gt;People don’t trust a CDN &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;If you can use this this, you should, it is a simple switch to turn it on.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.asp.net/ajaxlibrary/cdn.ashx" href="http://www.asp.net/ajaxlibrary/cdn.ashx"&gt;http://www.asp.net/ajaxlibrary/cdn.ashx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: ETW Support&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.8 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; ETW, Event Tracing for Windows, is a feature of Windows for doing logging at the kernel level. It is brilliant as you can do THOUSANDS of messages per second with VERY low CPU usage. With .NET 4 we have CLR support for this so understanding what is happening in the CLR along with our applications becomes very easy.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;We have been able to write to ETW since .NET 3.0 – all this is is support for the CLR events, so really you need to be debugging performance issues in the CLR.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/" href="http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/"&gt;http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;ASP.NET: Grid &amp;amp; List Row Selection Persistence&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.8 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;Allows the selected row in a list or grid to be persisted automatically over post backs.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;Simple for why this is not seen as useful: People who care use ASP.NET MVC&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.asp.net/aspnet-4/videos/aspnet-4-quick-hit-persistent-gridview-row-selection" href="http://www.asp.net/aspnet-4/videos/aspnet-4-quick-hit-persistent-gridview-row-selection"&gt;http://www.asp.net/aspnet-4/videos/aspnet-4-quick-hit-persistent-gridview-row-selection&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Primary Interop Assembly Embedding&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.9 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;PIA’s (Primary Interop Assemblies) are mappings between COM+ API’s and .NET. Similar to header files in C. These are exposed as separate assemblies and in .NET 4 you can embed just the code you use in your assembly as part of the build rather than requiring the separate assemblies.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I don’t think this is important at all – we have learnt to include the assemblies we need with our solution so embedding code is just a solution to a problem that didn’t exist.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;&lt;a title="http://www.hanselman.com/blog/CLRAndDLRAndBCLOhMyWhirlwindTourAroundNET4AndVisualStudio2010Beta1.aspx" href="http://www.hanselman.com/blog/CLRAndDLRAndBCLOhMyWhirlwindTourAroundNET4AndVisualStudio2010Beta1.aspx"&gt;http://www.hanselman.com/blog/CLRAndDLRAndBCLOhMyWhirlwindTourAroundNET4AndVisualStudio2010Beta1.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: SortedSet&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio: &lt;/strong&gt;0.9 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;SortedSet is a class for doing sorting, similar to SortedList or SortedDictionary. However where the old ones internally use a hash table, this uses a binary tree and thus gets some FANTASIC performance in many situations where the others would have bad perf.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I don’t think there is enough understanding of patterns with .NET developers – we are too quick to just use what Microsoft gives us and move along. So there isn’t enough people thinking about the pattern for their data structures so they see this as a solution to a solved problem. Those that do care, already have built their own code for this problem.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-vi-sortedset" href="http://www.sadev.co.za/content/net-4-baby-steps-part-vi-sortedset"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-vi-sortedset&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;WPF: Windows 7 Integration (System.Windows.Shell)&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Useful Ratio: &lt;/strong&gt;0.9 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;Building a WPF application and want to take advantage of new Windows 7 features like the taskbar, quick launch or overlays? It is easy with the System.Windows.Shell.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;I don’t get why this isn’t more popular, it is a VERY useful set of tools. Maybe people just don’t like WPF?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info: &lt;/strong&gt;Rudi Grobler has a series on this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar-thumbnailtoolbarbutton" href="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar-thumbnailtoolbarbutton"&gt;http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar-thumbnailtoolbarbutton&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--overlays" href="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--overlays"&gt;http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--overlays&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.rudigrobler.net/make-your-wpf-buttons-color-hot-track" href="http://www.rudigrobler.net/make-your-wpf-buttons-color-hot-track"&gt;http://www.rudigrobler.net/make-your-wpf-buttons-color-hot-track&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar---progress" href="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar---progress"&gt;http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar---progress&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-1" href="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-1"&gt;http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-2" href="http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-2"&gt;http://www.rudigrobler.net/anatomy-of-the-windows-7-taskbar--tabbedthumbnail-part-2&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;ASP.NET: Routing for WebForms&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;Useful &lt;/strong&gt;Ratio:&lt;/strong&gt; 0.9 : 1 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction: &lt;/strong&gt;ASP.NET MVC brought us routing support so that we can direct URL’s to specific content based on a convention or a configuration. With .NET 4 we get support for this in WebForms. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts: &lt;/strong&gt;WebForm developers don’t care about this, they have never needed it and don’t need it now. I see the big market for this is actually hybrid scenarios where you using WebForms and MVC in the same system… a VERY small market. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Info:&lt;/strong&gt; &lt;a title="http://msdn.microsoft.com/en-us/magazine/dd347546.aspx" href="http://msdn.microsoft.com/en-us/magazine/dd347546.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/dd347546.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=NHF0QEs32Bc:PGusfZVkuto:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=NHF0QEs32Bc:PGusfZVkuto:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=NHF0QEs32Bc:PGusfZVkuto:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=NHF0QEs32Bc:PGusfZVkuto:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/NHF0QEs32Bc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/net-4-do-you-know-new-features-12-features-majority-thinks-are-useless</feedburner:origLink></item><item><title>.NET 4, do you know the new features? - Top 10 Least Known Features</title><link>http://feedproxy.google.com/~r/Sadev/~3/n_lToZf7DM4/net-4-do-you-know-new-features-top-10-least-known-features</link><category>.NET</category><category>Development</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Tue, 06 Sep 2011 03:20:08 PDT</pubDate><guid isPermaLink="false">641 at http://www.sadev.co.za</guid><description>&lt;small&gt;More in this series can be found in the &lt;a href="/content/net-4-do-you-know-new-features-introduction" target="_blank"&gt;introduction&lt;/a&gt;.&lt;/small&gt;
&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_thumb2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[2]" border="0" alt="image_thumb[2]" align="right" src="http://www.sadev.co.za/files/image_thumb2_thumb.png" width="386" height="256" /&gt;&lt;/a&gt;We start off with the features that people just did not know about. I measured this on percentage, i.e. percentage of people who answered that they did not know about feature X. &lt;/p&gt;  &lt;p&gt;The top 10 features in the dark are:&lt;/p&gt;  &lt;h4&gt;CLR/BCL: Microsoft.Win32.RegistryView&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Percentage of People that Didn’t Know (PPDK): &lt;/strong&gt;90%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; On the 64-bit version of Windows, portions of the registry are stored separately for 32-bit and 64-bit applications. There is a 32-bit view for 32-bit applications and a 64-bit view for 64-bit applications.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; If you just write to or read from the registry in your application you do not need to specify this. This means this feature is really only needed by people opening registry values for Windows or other applications, a very specific usage, so not surprised by this finding.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/microsoft.win32.registryview.aspx" href="http://msdn.microsoft.com/en-us/library/microsoft.win32.registryview.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.win32.registryview.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Addition &amp;amp; Subtraction with IntPtr &amp;amp; UIntPtr&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;PPDK: &lt;/strong&gt;85%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Adds an offset to the value of a pointer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; I can’t think of a scenario for the usage of this that most business application devs would care about – maybe it is useful doing interop or game dev. So not surprising it very unknown.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx" href="http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.intptr.op_addition.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: System.Device.Location&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;84%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; Allows you to talk to GPS sensors that Windows 7 supports. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; Most Windows 7 machines, laptops, desktops etc… do not have a built in GPS yet so not surprising this isn’t well known. It is a pity since it is an awesome feature to include in applications and can work with a software GPS like &lt;a href="http://geosenseforwindows.com/" target="_blank"&gt;GeoSense for Windows&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail:&lt;/strong&gt; &lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-x-location-location-location" href="http://www.sadev.co.za/content/net-4-baby-steps-part-x-location-location-location"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-x-location-location-location&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: 64bit identification on Environment class&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;83%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; There is two new Boolean properties on System.Environment, one tells if the OS is 64bit and the if the process is 64bit.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; Not sure why this isn’t better known – maybe people just don’t care about 64bit vs. 32bit or maybe people are not optimising for the operating system.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps" href="http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-xiii-tiny-steps&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: Improved NGen sub-system&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;82%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; NGen is the sub-system or command line which compiles your assemblies from IL to machine code and can result in start up performance improvements.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; This is a very specialised system and I have never seen anyone except Microsoft use it. So not surprised at all that people do not know of it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://blogs.msdn.com/b/clrcodegeneration/archive/2009/05/03/improvements-to-ngen-in-.net-framework-4.aspx" href="http://blogs.msdn.com/b/clrcodegeneration/archive/2009/05/03/improvements-to-ngen-in-.net-framework-4.aspx"&gt;http://blogs.msdn.com/b/clrcodegeneration/archive/2009/05/03/improvements-to-ngen-in-.net-framework-4.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: New options in Environment.SpecialFolder&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;80%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; This is used to help find the path to those special folders (think &lt;em&gt;My Documents&lt;/em&gt;, which changes from profile to profile for example) and is used in conjunction with the GetFolderPath (see below).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; There 25 new options, and some are just useless (&lt;em&gt;Windows&lt;/em&gt; &amp;amp; &lt;em&gt;Fonts &lt;/em&gt;for example: if you know the System drive they are ALWAYS &lt;em&gt;&amp;lt;system drive&amp;gt;:\Windows&lt;/em&gt; &amp;amp; &lt;em&gt;&amp;lt;system drive&amp;gt;:\Windows\Font &lt;/em&gt;respectively this is because Windows is &lt;a href="http://channel9.msdn.com/Shows/The-Defrag-Show/Defrag-How-to-make-a-Win7-thumbdrive-Running-old-games-on-Win7-Imaging-old-laptop-for-XP-Mode#time=06m30s" target="_blank"&gt;has to be installed to a folder called Windows&lt;/a&gt;), but many others are very good and useful especially the x86 specific folders if you on a x64 OS &amp;amp; support for new Windows 7 features, like common folders. &lt;/p&gt;  &lt;p&gt;So why it is so unknown is beyond me – this is GOOD STUFF!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders" href="http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: ETW Support&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;80%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; ETW, Event Tracing for Windows, is a feature of Windows for doing logging at the kernel level. It is brilliant as you can do THOUSANDS of messages per second with VERY low CPU usage. With .NET 4 we have support for this in our applications and support to log information from the framework, like garbage collections.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; Even though this is brilliant and powerful but logging is solved problem. So this really is only used or needed by people with some massive performance issues and I do not believe most developers are working on solutions at that scale.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/" href="http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/"&gt;http://naveensrinivasan.com/2010/03/17/using-clr-4-0-event-tracing-for-windows-etw-along-with-application-etw/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: GetFolderPath improvements&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;80%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; GetFolderPath is used with Environment.SpecialFolder (above) and the improvements to create the folder and control verification if the folder is created. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; The GetFolderPath additions are a new overload so if you were using it prior to .NET 4 it may look the exact same, so this could just be a discoverability issue.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders" href="http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders"&gt;http://www.sadev.co.za/content/net-4-baby-steps-part-xi-special-folders&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: MemoryCache&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;PPDK&lt;/strong&gt;: &lt;/strong&gt;79%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; MemoryCache is a per process in memory cache for your application which is VERY easy to use regardless of application type. There is also some low plumbing that makes it possible to have the cache stored to other locations, like files or SQL.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; WHAT THE HELL PEOPLE!? Don’t you people use caching?! I don’t get this at all, not even slightly. If you have an idea why this is so unknown, please share with me in the comment.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://www.sadev.co.za/content/net-baby-steps-part-vii-caching" href="http://www.sadev.co.za/content/net-baby-steps-part-vii-caching"&gt;http://www.sadev.co.za/content/net-baby-steps-part-vii-caching&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h4&gt;&lt;tr&gt;&lt;td width="411"&gt;CLR/BCL: GUID Parsing Improvements&lt;/td&gt;&lt;/tr&gt;&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_159.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_183.png" width="252" height="260" /&gt;&lt;/a&gt;&lt;strong&gt;PPDK&lt;/strong&gt;&lt;strong&gt;: &lt;/strong&gt;77%&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt; This is a way to parse a string in and have it converted to a GUID, regardless of the format of the GUID.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thoughts:&lt;/strong&gt; I just don’t think people need to do parsing of GUID’s that much and so it isn’t needed that much.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More detail: &lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx" href="http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=n_lToZf7DM4:hFovkfpMBL0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=n_lToZf7DM4:hFovkfpMBL0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=n_lToZf7DM4:hFovkfpMBL0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=n_lToZf7DM4:hFovkfpMBL0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/n_lToZf7DM4" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.sadev.co.za/content/net-4-do-you-know-new-features-top-10-least-known-features</feedburner:origLink></item><item><title>.NET 4, do you know the new features? - Introduction</title><link>http://feedproxy.google.com/~r/Sadev/~3/ggRZpY8Hsgc/net-4-do-you-know-new-features-introduction</link><category>.NET</category><category>ALM</category><category>Development</category><category>Microsoft</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert MacLean</dc:creator><pubDate>Mon, 05 Sep 2011 00:27:31 PDT</pubDate><guid isPermaLink="false">640 at http://www.sadev.co.za</guid><description>&lt;p&gt;&lt;a href="http://www.sadev.co.za/files/image_158.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://www.sadev.co.za/files/image_thumb_182.png" width="347" height="182" /&gt;&lt;/a&gt;As part of my work ahead of &lt;a href="http://www.teched.co.za" target="_blank"&gt;Microsoft Tech·Ed Africa 2011&lt;/a&gt; I did a online, anonymous &lt;a href="http://twtpoll.com/php/goto_results.php?tt=zw607m" target="_blank"&gt;poll&lt;/a&gt; to see how well known are the new features in .NET 4, and over the next few days I thought I would share my findings.&lt;/p&gt;  &lt;p&gt;The poll asked you to state for feature X: Do you know it? And if you do know it, is it a useful feature? &lt;/p&gt;  &lt;p&gt;I listed 61 features that are new in .NET 4 – which pretty much covered the length and breadth of it. There is some consolidation, like ALL of Workflow is one item but WF4 is a rewrite so pretty much is one BIG new feature and some other aspects of consolidation.&lt;/p&gt;  &lt;p&gt;I suspected a fairly high rate of known features because .NET 4 was released 16 months ago (12 April 2010) and it has been demo’d and talked about a lot - even I have &lt;a href="/content/devdays-durban-slides-and-bits" target="_blank"&gt;done a talks&lt;/a&gt; on the new features. However the ratio of unknown to known is 1.2 : 1 – so while there is a close parity, there are more are unknown than known, which surprised me a bit.&lt;/p&gt;  &lt;p&gt;I have broken up talking about the results into a series, because I want to talk about each feature briefly so a single post would have been MASSIVE. &lt;/p&gt;  &lt;p&gt;Below are links to the other parts of the series:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a target="_blank" href="/content/net-4-do-you-know-new-features-top-10-least-known-features"&gt;Top 10 least known features.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/content/net-4-do-you-know-new-features-12-features-majority-thinks-are-useless"&gt;The 12 features the majority thinks are useless.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="/content/net-4-do-you-know-new-features-top-10-most-useful-features" target="_blank"&gt;Top 10 most useful features.&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;  &lt;p&gt;Finally I want to say a BIG thanks to everyone who answered and those who shared links on social networks and with friends! &lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;The raw data can be found below.&lt;/font&gt;&lt;/p&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://www.sadev.co.za/files/NET 4 Feature Data.xlsx"&gt;NET 4 Feature Data.xlsx&lt;/a&gt;&lt;/td&gt;&lt;td&gt;12.99 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ggRZpY8Hsgc:_YkrIm5Xz48:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ggRZpY8Hsgc:_YkrIm5Xz48:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?i=ggRZpY8Hsgc:_YkrIm5Xz48:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Sadev?a=ggRZpY8Hsgc:_YkrIm5Xz48:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Sadev?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Sadev/~4/ggRZpY8Hsgc" height="1" width="1"/&gt;</description><enclosure url="http://www.sadev.co.za/files/NET 4 Feature Data.xlsx" length="13301" type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /><feedburner:origLink>http://www.sadev.co.za/content/net-4-do-you-know-new-features-introduction</feedburner:origLink></item></channel></rss>

