<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1244620698678714236</id><updated>2012-01-27T18:19:19.023Z</updated><category term='Automated Testing'/><category term='Visual Studio'/><category term='Testing'/><category term='.Net'/><title type='text'>Dave Clarke's Blog</title><subtitle type='html'>Unintelligible posts on .Net, Usability and web technology</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4139275417048879031</id><published>2011-10-14T08:52:00.007+01:00</published><updated>2011-10-14T09:19:12.075+01:00</updated><title type='text'>Enable Shut down prompt in Windows 7</title><content type='html'>One of the things that's bugged me since upgrading to Windows 7 is the lack of "confirmation dialog" when selecting the shut down button. A number of times members of our family have shut the machine down by accident, when switching users for example (shared family machine). Not really sure why Microsoft removed the confirmation for such a major task, but hey, not my call.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyhow, if you (like me) want a confirmation, you can do this very easily via the local group policy editor:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Select start and enter gpedit.msc into search box and run the editor&lt;/li&gt;&lt;li&gt;Go to Computer Configuration/Administrative Templates/System&lt;/li&gt;&lt;li&gt;Then choose Display Shutdown Event Tracker and Enable.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-BP-ph5LYYgM/Tpfv9fH5FUI/AAAAAAAAAvQ/thBsIU_GoB8/s1600/gpcedit.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 336px; height: 400px;" src="http://4.bp.blogspot.com/-BP-ph5LYYgM/Tpfv9fH5FUI/AAAAAAAAAvQ/thBsIU_GoB8/s400/gpcedit.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5663258896047347010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now when you select Shut down you have to confirm and put some text in a comment box (server ops styleee). The comment is overkill for a desktop really but way better than not having any confirmation at all.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4139275417048879031?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4139275417048879031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4139275417048879031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4139275417048879031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4139275417048879031'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2011/10/enable-shut-down-prompt-in-windows-7.html' title='Enable Shut down prompt in Windows 7'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BP-ph5LYYgM/Tpfv9fH5FUI/AAAAAAAAAvQ/thBsIU_GoB8/s72-c/gpcedit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-663908613346595077</id><published>2011-07-08T09:07:00.004+01:00</published><updated>2011-07-08T10:35:15.733+01:00</updated><title type='text'>Monitoring WiFi channels</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-I1iCIVS6DPE/Tha_9YrOIvI/AAAAAAAAAtU/xzN0d36grYY/s1600/inSSIDer2Screenshot.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 289px;" src="http://4.bp.blogspot.com/-I1iCIVS6DPE/Tha_9YrOIvI/AAAAAAAAAtU/xzN0d36grYY/s320/inSSIDer2Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5626895845762671346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;Our home WiFi is pretty good, with a decent signal across the house, but there are occasions in the evening where performance is a bit inconsistent compared with the daytime. Not normally a major problem as we use &lt;a href="http://www.homeplug.org/home/"&gt;homeplug&lt;/a&gt; for devices like TVs, PVRs, Blu-ray  (iPlayer, YouTube etc) and music. &lt;/span&gt;&lt;span class="Apple-style-span"&gt;We save WiFi for laptop/tablet browsing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;This got me thinking... why the WiFi performance inconsistency? We live in a cul-de-sac so surely not 'that much' interference from fellow neighbours? I needed to check, so downloaded &lt;a href="http://www.metageek.net/products/inssider/"&gt;inSSIDer 2&lt;/a&gt;, a free open source tool that 'scans the waves' for WiFi points in your area.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I installed it and ran for a few minutes (you can leave it running over 24 hours if you want and see all access points that have been switched on over that period). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see from the screenshot, we are not on our own. Our access point is the one in red (PoorSignal, yes that is the SSID ho ho) and you can see that we are competing with 7 or so other access points in our spectrum - although we run on channel 4, that actually spans into neighbouring channels, see the graph, namely channels 1, 4, 6 and 7 in this case.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll leave it running for a while and then I will try changing my channel to a less congested area. Of course there are lots of other factors that affect performance (other devices, walls, mirrors etc) but lets see how it goes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Give it a go!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-663908613346595077?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/663908613346595077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=663908613346595077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/663908613346595077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/663908613346595077'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2011/07/monitoring-wifi-channels.html' title='Monitoring WiFi channels'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-I1iCIVS6DPE/Tha_9YrOIvI/AAAAAAAAAtU/xzN0d36grYY/s72-c/inSSIDer2Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2717326139661540619</id><published>2011-06-22T08:01:00.002+01:00</published><updated>2011-06-22T08:06:01.730+01:00</updated><title type='text'>Visual Studio 2010 SP1 installed</title><content type='html'>&lt;div&gt;Finally found a convenient time to install VS 2010 SP1 (often difficult when you have several key projects on the go and you do not want to break your "known good" VS 2010 / TFS build). Anyhow, it is well worth installing... here's the info you need:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Web Installer:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691"&gt;http://www.microsoft.com/download/en/details.aspx?id=23691&lt;/a&gt;&lt;/div&gt;&lt;div&gt;List of changes:&lt;/div&gt;&lt;div&gt;&lt;a href="http://support.microsoft.com/kb/983509"&gt;http://support.microsoft.com/kb/983509&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Full readme:&lt;/div&gt;&lt;div&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=210711"&gt;http://go.microsoft.com/fwlink/?LinkId=210711&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since the install I've had no issues so far - looking promising :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I need to upgrade the TFS server next. I'll try it on our dev TFS box first and see how that pans out first.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2717326139661540619?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2717326139661540619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2717326139661540619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2717326139661540619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2717326139661540619'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2011/06/visual-studio-2010-sp1-installed.html' title='Visual Studio 2010 SP1 installed'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-92033336956300835</id><published>2011-06-21T16:40:00.004+01:00</published><updated>2011-06-21T16:50:35.642+01:00</updated><title type='text'>Web Designer and Content Manager - ideal for recent IT graduate</title><content type='html'>&lt;div&gt;We are looking for someone to work on a dedicated project for one of our clients, which is a large multi-national company.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You will be required to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-       Create, design and administer sites in SharePoint&lt;/div&gt;&lt;div&gt;-       Migrate content from existing web sites to SharePoint&lt;/div&gt;&lt;div&gt;-       Discuss with users their requirements and design/implement sites accordingly&lt;/div&gt;&lt;div&gt;-       Provide SharePoint technical support&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have no experience in SharePoint, cross-training will be provided by your team colleague(s).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may also have the opportunity to do some ASP.Net/C#/SQL  work depending upon your experience and interests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are looking for someone who has an IT related qualification at degree level or equivalent, with both web and design experience.  You will also need to be proficient in using HTML and CSS.  Excellent communication and organisational skills are essential, and you should be able to use your initiative whilst being flexible to the demands of the users.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Experience of Sharepoint 2007/2010 (or similar CMS) and Javascript would be an advantage but is not essential.  In addition, any Visual Studio 2008/2010, ASP.Net, C# coding and SQL database experience may also be beneficial if you wish to get involved with web development activities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This contract is initially for 6 months (£14 to £16/hr, 37.5 hour week) but there may be the possibility of further work after this time, and would ideally suit a recent graduate or someone looking to broaden their IT skills.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To apply, please send your CV to lisa@visualizehr.co.uk and a covering email detailing your interest in this role by 28th June 2011.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-92033336956300835?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/92033336956300835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=92033336956300835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/92033336956300835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/92033336956300835'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2011/06/web-designer-and-content-manager-ideal.html' title='Web Designer and Content Manager - ideal for recent IT graduate'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4403310438894098423</id><published>2011-05-29T20:08:00.000+01:00</published><updated>2011-06-21T11:35:48.566+01:00</updated><title type='text'>UK Tech Days 2011 - sessions now available online</title><content type='html'>We had a great time at the May 2011 UK Tech Days Conference in Fulham, London (held in the Vue cinema complex with popcorn and 'everything'!). For those that could not make it, Microsoft have now published the sessions on the web:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://uktechdays.cloudapp.net/home.aspx"&gt;http://uktechdays.cloudapp.net/home.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next best thing to being there, enjoy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4403310438894098423?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4403310438894098423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4403310438894098423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4403310438894098423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4403310438894098423'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2011/05/uk-tech-days-2011-sessions-now.html' title='UK Tech Days 2011 - sessions now available online'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-8448718085592678905</id><published>2010-05-27T16:07:00.001+01:00</published><updated>2010-05-27T16:26:34.508+01:00</updated><title type='text'>Corporate Intranet Web App – Browser Statistics May 2010</title><content type='html'>&lt;p&gt;As in &lt;a href="http://daveclarkesblog.blogspot.com/2009/03/corporate-intranet-web-app-some-sample.html" target="_blank"&gt;previous posts&lt;/a&gt;, I like to annually report on browser stats that I collect via the Intranet web apps that I develop. Knowing your target browser platform is crucial when developing web sites, affecting your designs, client side functionality and testing criteria. So here are May 2010’s stats, taken from a 1229 user global application (across 87 countries), all of whom have logged on in the last 12 months (Corporate desktop for the company concerned is still IE6 as I write this, sigh…):&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="401"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th valign="top" width="152"&gt;Browser Version &lt;/th&gt;        &lt;th valign="top" width="136"&gt;User Count 2010 (1229 users) &lt;/th&gt;        &lt;th valign="top" width="111"&gt;User Count 2009 (1017 users) &lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="152"&gt;IE6 &lt;/td&gt;        &lt;td valign="top" width="136"&gt;1116&lt;/td&gt;        &lt;td valign="top" width="111"&gt;973&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="152"&gt;IE7 &lt;/td&gt;        &lt;td valign="top" width="136"&gt;77&lt;/td&gt;        &lt;td valign="top" width="111"&gt;33&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="152"&gt;IE8 &lt;/td&gt;        &lt;td valign="top" width="136"&gt;27&lt;/td&gt;        &lt;td valign="top" width="111"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="152"&gt;Firefox &lt;/td&gt;        &lt;td valign="top" width="136"&gt;7&lt;/td&gt;        &lt;td valign="top" width="111"&gt;8&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="152"&gt;Chrome &lt;/td&gt;        &lt;td valign="top" width="145"&gt;2 (new entry!)&lt;/td&gt;        &lt;td valign="top" width="141"&gt;NA&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;IE5 no longer shows thank goodness and a high count for IE6 is expected (default desktop install remember). Great to see IE8 in there which should rapidly rise by 2011 as it is likely to be adopted globally soon in the Company concerned. Firefox has gone down and in my opinion will continue to drop with it offering little over Chrome/IE8 for day to day browsing (gone too bloaty). Reminder: these stats are from what the user used for a particular web app only - the user may well have other browsers installed for general browsing.&lt;/p&gt;  &lt;p&gt;Window sizes:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th valign="top" width="142"&gt;Viewable window size (pixel width) &lt;/th&gt;        &lt;th valign="top" width="136"&gt;User Count 2010 &lt;/th&gt;        &lt;th valign="top" width="120"&gt;User Count 2009 &lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;less than 800&lt;/td&gt;        &lt;td valign="top" width="136"&gt;18&lt;/td&gt;        &lt;td valign="top" width="120"&gt;23&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;800 exactly&lt;/td&gt;        &lt;td valign="top" width="136"&gt;28&lt;/td&gt;        &lt;td valign="top" width="120"&gt;63&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;801 to 899&lt;/td&gt;        &lt;td valign="top" width="136"&gt;22&lt;/td&gt;        &lt;td valign="top" width="120"&gt;28&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;900 to 999&lt;/td&gt;        &lt;td valign="top" width="136"&gt;26&lt;/td&gt;        &lt;td valign="top" width="120"&gt;22&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1000 to 1099&lt;/td&gt;        &lt;td valign="top" width="136"&gt;492&lt;/td&gt;        &lt;td valign="top" width="120"&gt;489&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1100 to 1199&lt;/td&gt;        &lt;td valign="top" width="136"&gt;51&lt;/td&gt;        &lt;td valign="top" width="120"&gt;35&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1200 to 1299&lt;/td&gt;        &lt;td valign="top" width="136"&gt;272&lt;/td&gt;        &lt;td valign="top" width="120"&gt;135&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1300 to 1399&lt;/td&gt;        &lt;td valign="top" width="136"&gt;21&lt;/td&gt;        &lt;td valign="top" width="120"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1400 to 1499&lt;/td&gt;        &lt;td valign="top" width="136"&gt;68&lt;/td&gt;        &lt;td valign="top" width="120"&gt;52&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;1500+&lt;/td&gt;        &lt;td valign="top" width="148"&gt;15&lt;/td&gt;        &lt;td valign="top" width="152"&gt;5&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://www.visualize.uk.com/blogspotfiles/browserstats2010.gif" /&gt; &lt;/p&gt;  &lt;p&gt;These figures were captured at logout time (assuming that by then the user would have their browser sized/maximised to their preference for the application). Looking at the figures, clearly larger windows sizes are on the up and smaller sizes are on the down (surprise surprise). The “design for 1024” philosophy still seems to hold to a point but the “1200+ size” users are on the increase. There are still 94 users viewing windows at less than 1000 though, something the web application concerned, it has to said, does not look its best at! Hey ho, something to ponder on…&lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-8448718085592678905?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/8448718085592678905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=8448718085592678905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8448718085592678905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8448718085592678905'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2010/05/corporate-intranet-web-app-browser.html' title='Corporate Intranet Web App – Browser Statistics May 2010'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6309408857281339842</id><published>2010-02-23T09:32:00.001Z</published><updated>2010-02-23T09:32:56.192Z</updated><title type='text'>Two upcoming events – Agile Anti-Patterns and DevWeek 2010</title><content type='html'>&lt;p&gt;I enjoy seminars, conferences etc. Whether presenting or attending, chosen carefully, they provide a great way of sparking interest in new methods and technologies, putting aside some time for training/education (essential if you work for yourself as I do) and meeting other like-minded individuals.&lt;/p&gt;  &lt;p&gt;Here are a couple of upcoming events I’ve recently registered for:&lt;/p&gt; &lt;strong&gt;&lt;a href="http://www.bcs-spa.org/cgi-bin/view/SPA/AgileAdoptionAntiPatterns" target="_blank"&gt;SPA-237 - Agile Adoption Anti-Patterns&lt;/a&gt;     &lt;br /&gt;&lt;/strong&gt;Wednesday 3rd March 2010 6.30pm, at the BCS in London   &lt;br /&gt;Presenter: James Lewis, ThoughtWorks   &lt;p&gt;“… focuses on the things that you shouldn't do when trying to introduce Agile practices to an organisation”&lt;/p&gt;  &lt;p&gt;This is a free evening session and is being presented by James Lewis from the well respected consultancy &lt;a href="http://www.thoughtworks.com/" target="_blank"&gt;Thoughtworks&lt;/a&gt;. I’m a big fan of Agile approaches, but there are issues you have to watch out for and hopefully this event will get some of these aired.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.devweek.com/" target="_blank"&gt;&lt;strong&gt;DevWeek 2010&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;15th to 19th March 2010, London&lt;/p&gt;  &lt;p&gt;The conference blurb… “DevWeek is Europe’s leading independent conference for software developers, database professionals and IT architects, and features expert speakers on a wide range of topics, including .NET 4.0, Silverlight 3, WCF 4, Visual Studio 2010, REST, Windows Workflow 4, Thread Synchronization, ASP.NET 4.0, SQL Server 2008 R2, LINQ, Unit Testing, CLR &amp;amp; C# 4.0, .NET Patterns, WPF 4, F#, Windows Azure, ADO.NET, Entity Framework, Debugging, T-SQL Tips &amp;amp; Tricks, and more”&lt;/p&gt;  &lt;p&gt;I’ve been to one of these previously and from what I remember they are slick and very well organised, with the sessions containing some great material. Although clearly Microsoft centric, if you use (or intend to use) such technologies, you could do a lot worse than attend this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6309408857281339842?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6309408857281339842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6309408857281339842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6309408857281339842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6309408857281339842'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2010/02/two-upcoming-events-agile-anti-patterns.html' title='Two upcoming events – Agile Anti-Patterns and DevWeek 2010'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1576303567058638888</id><published>2009-11-10T10:05:00.001Z</published><updated>2009-11-10T10:05:03.365Z</updated><title type='text'>Installing Windows 7 Ultimate on an Old Dell Dimension 8250</title><content type='html'>&lt;p&gt;Further to my post on &lt;a href="http://daveclarkesblog.blogspot.com/2009/08/upgrading-dell-xps-m1710-laptop-from.html" target="_blank"&gt;upgrading a Dell XPS M1710 to Windows 7&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;My old XP based Dell 8250 desktop (1GB RAM) crashed recently and became unusable. Luckily backups were all in place (although I still had access to the hard drives anyway) so rather than simply put XP back on it, I decided to go for Windows 7 Ultimate. The machine had got slower and slower anyway due to all the usual nonsense you install over time, so I thought this was an opportunity to freshen the OS and test whether Win 7 would run ok on old hardware. One of those Sunday eve type jobs…&lt;/p&gt;  &lt;p&gt;I first repartitioned and formatted the main drive (I was unhappy with the current partition set up and wanted a truly fresh start anyway). I then booted from the Windows 7 DVD. After a long wait (be patient on an Dell 8250, the initial “windows starting” then “blank screen with mouse cursor” took over 10mins to come to life; it was much faster on my M1710). I then went through the various steps as per the M1710 install except this time I selected Custom (advanced) at the appropriate point to get a full fresh install. &lt;/p&gt;  &lt;p&gt;All seemed to go pretty smoothly. Ran some windows updates afterwards, again all went well. I then installed AVG free edition, no worries.&lt;/p&gt;  &lt;p&gt;Then I realised I’d got no sound (how many times have you had this happen…). Hmm. I’ve got an old Creative Sound Blaster 5.1 card and a quick look in device manager confirmed that this had not been recognised. A search for an official Windows 7 or Vista driver on the Net was to no avail, so I took a long shot and downloaded the old XP driver off Dell support (&lt;a href="http://support.euro.dell.com/support/downloads/download.aspx?c=uk&amp;amp;l=en&amp;amp;s=gen&amp;amp;releaseid=R69382&amp;amp;formatcnt=1&amp;amp;libid=0&amp;amp;typeid=-1&amp;amp;dateid=-1&amp;amp;formatid=-1&amp;amp;fileid=90207" target="_blank"&gt;R69382.exe&lt;/a&gt;)&amp;#160; from 2003!.&lt;/p&gt;  &lt;p&gt;I then tried running the driver install… it started to run and then started to extract the files and then… it auto-closed! No wizard no nothing. I tried again this time right clicking and running “as administrator” to be sure. Same again. &lt;/p&gt;  &lt;p&gt;Not giving up, this time I right clicked the almighty R69382.exe again and selected “troubleshoot compatibility”. It recommended using Windows XP SP2 mode. I went for the recommendation (this is on the installer remember) and hey presto it all ran a treat. The driver is now installed correctly and sound and microphone are back in action.&lt;/p&gt;  &lt;p&gt;So how is the PC generally? Well I’ve not installed ‘all’ my regular apps yet, but so far the machine is ticking along nicely and certainly faster than when I had the, albeit fully bloated, XP on it. &lt;/p&gt;  &lt;p&gt;DC.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1576303567058638888?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1576303567058638888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1576303567058638888' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1576303567058638888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1576303567058638888'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/11/installing-windows-7-ultimate-on-old.html' title='Installing Windows 7 Ultimate on an Old Dell Dimension 8250'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2632491100311341896</id><published>2009-09-15T09:35:00.001+01:00</published><updated>2009-09-15T09:35:42.086+01:00</updated><title type='text'>Telerik release TFS Dashboard/Work Item Manager</title><content type='html'>&lt;p&gt;Telerik have released a beta version of a work item manager/dashboard in WPF for TFS:    &lt;br /&gt;&lt;a href="http://www.telerik.com/products/tfsmanager-and-tfsdashboard.aspx"&gt;http://www.telerik.com/products/tfsmanager-and-tfsdashboard.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I installed it briefly this morning (free in beta form) and first impressions are I like it. Seems pretty quick in use and flexible in that it works with the various process templates. My guess is they will charge for the full version when it arrives but it is worth watching. &lt;/p&gt;  &lt;p&gt;Note this is a WPF application that you install on your machine (not web based). 4.9Mb install. &lt;/p&gt;  &lt;p&gt;Now if they do a browser-based Silverlight version that would really hit the spot…&lt;/p&gt;  &lt;p&gt;Mr C&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2632491100311341896?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2632491100311341896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2632491100311341896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2632491100311341896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2632491100311341896'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/09/telerik-release-tfs-dashboardwork-item.html' title='Telerik release TFS Dashboard/Work Item Manager'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-226904272202815940</id><published>2009-08-17T08:06:00.001+01:00</published><updated>2009-08-17T08:06:03.153+01:00</updated><title type='text'>Upgrading a Dell XPS M1710 laptop from Vista to Windows 7</title><content type='html'>&lt;p&gt;I’ve been looking forward to installing Windows 7. My experience with Vista Ultimate on my Dell M1710 laptop (T7400 processor, 4Gig RAM) has been average at best if I’m honest, with sluggish performance being my biggest disappointment. Yes I know you can “disable this and uninstall that”, but that is not the point. Out of the box, a clean Vista installation should perform well and in my opinion it was only just acceptable.&lt;/p&gt;  &lt;p&gt;I therefore welcomed Windows 7 RTM with open arms. I went for the 32bit Windows 7 Ultimate (x86) and having Vista Ultimate (x86) installed already meant I could do an in-place upgrade (Whoa there Clarkey! everyone shouts. A clean install is surely best. Yes you are right and normally I would whole heartily agree but my life is pretty busy right now and the thought of digging out all my old software install disks, rightly or wrongly so, was enough for me to give an in-place install a try, on a laptop that was pretty clean anyway). If you are upgrading from XP then you cannot do an in-place upgrade although you can use &lt;a href="http://technet.microsoft.com/en-us/library/dd446674(WS.10).aspx#BKMK_UpgradeFromXP" target="_blank"&gt;Windows Easy Transfer&lt;/a&gt; to migrate some of your settings (see &lt;a href="http://www.hanselman.com/blog/StepByStepHowToUpgradeFromWindowsXPToWindows7.aspx" target="_blank"&gt;Scott Hanselman’s XP to WIndows 7&lt;/a&gt; post). You also cannot in-place upgrade Vista 32bit to Windows 7 64bit (and vice versa).&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Before I started&lt;/h3&gt;  &lt;p&gt;Below was my starting point (System window) which shows a pretty typical Vista M1710 set up.:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr0.gif" /&gt; &lt;/p&gt;  &lt;p&gt;I backed up my laptop&amp;#160; (data only) to an external drive and unplugged it to play safe. &lt;/p&gt;  &lt;p&gt;I ran the Windows 7 setup.exe and got this screen:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr1.gif" /&gt; &lt;/p&gt;  &lt;p&gt;I’d already researched whether my laptop “could cope” so I clicked “Install now” and got the message &amp;quot;Setup is starting...&amp;quot;&lt;/p&gt;  &lt;p&gt;I then selected &amp;quot;Go on line to get the latest updates&amp;quot;. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr2.gif" /&gt; &lt;/p&gt;  &lt;p&gt;I accepted terms and conditions. For reasons I mentioned earlier, I then selected &amp;quot;Upgrade&amp;quot; to do an in-place upgrade:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr3.gif" /&gt; &lt;/p&gt;  &lt;p&gt;Then got told that certain apps might not work:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr4.gif" /&gt; &lt;/p&gt;  &lt;p&gt;I cancelled the install and uninstalled all of the listed apps including itunes (not really used much on this laptop anyway). Did the obligatory reboot. Then ran setup.exe again... &amp;quot;setup is starting...&amp;quot; and had several déjà vu moments (same steps as above). This time, once past the compatibility checks I selected &amp;quot;go online to get latest updates&amp;quot; as recommended.&lt;/p&gt;  &lt;p&gt;Next was a familiar upgrading windows screen:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr5.gif" /&gt; &lt;/p&gt;  &lt;p&gt;This step took 2hrs 15mins (including several auto reboots) and some 540513 files were “transferred”. Umm… a fair few then.&lt;/p&gt;  &lt;p&gt;You will then be prompted for the product key. I selected “Use recommended settings” for automatic updates. &lt;/p&gt;  &lt;p&gt;Set region and time zones.&lt;/p&gt;  &lt;p&gt;Skipped join WiFi network at this point.&lt;/p&gt;  &lt;p&gt;Selected Home Network (ie for my local LAN).&lt;/p&gt;  &lt;p&gt;Finally, I got the logon screen with my family usernames nicely appearing on the desktop. Logged on with my account and hey presto, it seemed to have worked! Why do I sound surprised… not a single service error…&lt;/p&gt;  &lt;p&gt;Although the GeForce Go 7950 GTX graphics card seemed to be performing fine I upgraded the NVIDIA control panel version to 2.2.275 and driver to 179.48 via the &lt;a href="http://www.nvidia.co.uk/Download/index.aspx" target="_blank"&gt;NVIDIA download site&lt;/a&gt; anyway, just to make sure. &lt;/p&gt;  &lt;p&gt;To prove I’m not making all this up, here’s that System window again (I had also clicked the Rate this computer button as this point to get a Windows Experience Index):&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;img src="http://www.visualize.uk.com/blogspotfiles/win7upgrade/scr6.gif" /&gt; &lt;/p&gt;  &lt;p&gt;That’s it for now. It’s early days but based on the short usage last night, it all appears fine and the machine is much much snappier (a relief). I’ve not done anything to really test it yet though… I’ve got cameras to connect, video editing to try etc at some point. &lt;/p&gt;  &lt;p&gt;Any issues, I’ll add a comment here.&lt;/p&gt;  &lt;p&gt;Dave&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-226904272202815940?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/226904272202815940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=226904272202815940' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/226904272202815940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/226904272202815940'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/08/upgrading-dell-xps-m1710-laptop-from.html' title='Upgrading a Dell XPS M1710 laptop from Vista to Windows 7'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1777380088937565400</id><published>2009-07-09T15:19:00.001+01:00</published><updated>2009-07-09T15:19:46.961+01:00</updated><title type='text'>TFS 2008 – VM performance tweaks</title><content type='html'>&lt;p&gt;I’ve been doing a few tweaks on our TFS 2008 VMWare VM recently to improve performance. We host both the application and data tiers on the same VM so we are never going to get blistering performance (especially when the host is essentially a desktop!)&amp;#160; but the performance through Team System Web Access (TSWA) has been noticeably clunky of late, so we thought a little tweaking was in order. Interestingly, source control through Visual Studio has been fine though.&lt;/p&gt;  &lt;p&gt;Here’s the list of mods I did:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;changed the virtual disk (vmdk file) from variable to fixed size (in our case 80Gb). Although this uses more disk space on the host, allocating it all in advance provides better disk I/O performance. I simply used the command line tool vmware-vdiskmanager.exe with the –r and –t 2 switches. &lt;/li&gt;    &lt;li&gt;excluded antivirus scanning of the VM files on the host &lt;/li&gt;    &lt;li&gt;installed the latest VMWare Tools (take care, when I did this, upon reboot the drive letters D: (DVD) and E: (partition) switched, causing service failures at startup. Easy to fix but&amp;#160; something to watch out for) &lt;/li&gt;    &lt;li&gt;stopped any obvious unneeded services on both host and guest &lt;/li&gt;    &lt;li&gt;resized the partitions inside the guest to give the OS more breathing space &lt;/li&gt;    &lt;li&gt;defragged the guest and host disks &lt;/li&gt;    &lt;li&gt;disabled ‘shutdown worker processes after being idle for 20 mins’ option on the web app pools in IIS (see web app pool properties, performance tab). I left the recycling tab options at the default settings though. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, I also set up WebWatchBot (a site monitor we use) to ping the key eScrum and TSWA TFS services we use with a http request every hour, to keep the old TFS ‘engine’ alive. As I’m sure everyone who uses TSWA will have noticed, there is a big start up cost on many of the functions if left dormant and any caching is lost, so pinging the box occasionally keeps it all alive, especially when TFS is under little/no usage periods. Of course, we also now have the additional benefit of knowing when TFS is down too ;-)&lt;/p&gt;  &lt;p&gt;Lets see how it goes… I’ve not done any formal timings but the results so far (and comments from users) indicate a much more responsive system.&lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1777380088937565400?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1777380088937565400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1777380088937565400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1777380088937565400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1777380088937565400'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/07/tfs-2008-vm-performance-tweaks_09.html' title='TFS 2008 – VM performance tweaks'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6370092559803167990</id><published>2009-04-22T09:18:00.001+01:00</published><updated>2009-04-22T09:18:59.541+01:00</updated><title type='text'>Speeding up the online MSDN Library</title><content type='html'>&lt;p&gt;For developers, the MSDN library is a regular place to drop into. Whether you visit the site directly, via the VS IDE or end up there after an enthralling Google excursion, no matter, once arrived I usually find the experience slower than I’d like.&lt;/p&gt;  &lt;p&gt;Enter the low bandwidth version. For example:&lt;/p&gt;  &lt;p&gt;Standard view: &lt;a title="http://msdn.microsoft.com/en-us/library/bb384398.aspx" href="http://msdn.microsoft.com/en-us/library/bb384398.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb384398.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Low bandwidth version: &lt;a title="http://msdn.microsoft.com/en-us/library/bb384398.aspx" href="http://msdn.microsoft.com/en-us/library/bb384398(loband).aspx"&gt;http://msdn.microsoft.com/en-us/library/bb384398(loband).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Depending upon the time of day and size of article, the differences in load times are considerable! &lt;/p&gt;  &lt;p&gt;Anal URL examiners amongst you will have noticed the word &lt;strong&gt;loband&lt;/strong&gt; in the above link. In fact this “device” name can be added to any of the MSDN library links to render the low bandwidth version of the page in hand. &lt;/p&gt;  &lt;p&gt;See &lt;a href="http://weblogs.asp.net/jgalloway/archive/2008/08/30/msdn-low-bandwidth-bookmarklet.aspx" target="_blank"&gt;Jon Galloway’s original blog entry&lt;/a&gt; for further info (including a bookmarklet to make the switching easy) and also &lt;a href="http://www.hanselman.com/blog/LowBandwidthViewAndOtherHiddenAndFutureFeaturesOfMSDN.aspx" target="_blank"&gt;Scott Hanselman’s more recent post&lt;/a&gt; which delves a little deeper, discussing page size differences, other “devices” (including the up and coming VS 2010 IDE view “dev10ide”) and how the URL routing works behind the scenes.&lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6370092559803167990?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6370092559803167990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6370092559803167990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6370092559803167990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6370092559803167990'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/04/speeding-up-online-msdn-library_22.html' title='Speeding up the online MSDN Library'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6979728521559794369</id><published>2009-03-19T10:17:00.001Z</published><updated>2009-03-19T10:17:16.315Z</updated><title type='text'>Corporate Intranet Web App - Some Sample Browser Stats</title><content type='html'>&lt;p&gt;A lot of the work I do is on Intranet based web applications, in large Corporates with locked down desktops and recommended browsers etc.&lt;/p&gt;  &lt;p&gt;Here are some browser statistics collected via an ASP.Net data entry and reporting application that I worked on a while ago, collected from users whom logon regularly. System is global and figures are based on 1017 active users:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="446" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th valign="top" width="133"&gt;Browser version&lt;/th&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;th valign="top" width="301"&gt;User Count&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;IE5&lt;/td&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="294"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;IE6&lt;/td&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="291"&gt;973&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;IE7&lt;/td&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="289"&gt;33 (up from 18 in 2008)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;IE8&lt;/td&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="287"&gt;2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Firefox 3&lt;/td&gt;        &lt;td valign="top" width="10"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;8 (up from 4 in 2008)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;IE6 is the Corporate standard, so nothing really of interest here ;-)&lt;/p&gt;  &lt;p&gt;More interesting I think is window sizes. Here's a sample:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="450" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th valign="top" width="152"&gt;Viewable window size (width)&lt;/th&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;th valign="top" width="286"&gt;User Count&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;less than 800 wide&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;23&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;800 exactly&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;63&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;801 to 899&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;28&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;900 to 999&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;22&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1000 to 1099&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;489&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1100 to 1199&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;35&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1200 to 1299&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;135&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1300 to 1399&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1400 to 1499&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;52&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="151"&gt;1500+&lt;/td&gt;        &lt;td valign="top" width="11"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="286"&gt;5&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;These figures were captured at logout time (assuming that by then the user would have their browser sized/maximised to their preference for the application). The 800x600ish sizes are still very popular despite this being the bare minimum that this web application is designed for (1024x768+ is recommended). It just shows that we cannot always assume that users are running 1024 or above. &lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6979728521559794369?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6979728521559794369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6979728521559794369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6979728521559794369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6979728521559794369'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/03/corporate-intranet-web-app-some-sample.html' title='Corporate Intranet Web App - Some Sample Browser Stats'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-8290326462112293738</id><published>2009-03-11T08:34:00.001Z</published><updated>2009-03-11T08:34:24.620Z</updated><title type='text'>Quest to provide Oracle support for Visual Studio 2010</title><content type='html'>&lt;p&gt;This could be useful - Quest , makers of TOAD, are working on a &lt;a href="http://msdn.microsoft.com/en-us/library/aa833285.aspx#CoreComponentsOfDatabaseSchemaProviders" target="_blank"&gt;database schema provider (DSP)&lt;/a&gt; for VSTS 2010.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/terryclancy/archive/2009/02/24/quest-software-announces-oracle-database-schema-provider-for-visdual-studio-team-system-2010.aspx" href="http://blogs.msdn.com/terryclancy/archive/2009/02/24/quest-software-announces-oracle-database-schema-provider-for-visdual-studio-team-system-2010.aspx" target="_blank"&gt;http://blogs.msdn.com/terryclancy/archive/2009/02/24/quest-software-announces-oracle-database-schema-provider-for-visdual-studio-team-system-2010.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Further info can be found on their community &lt;a href="http://www.teamfuze.net/index.jspa" target="_blank"&gt;TeamFuze site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-8290326462112293738?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/8290326462112293738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=8290326462112293738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8290326462112293738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8290326462112293738'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/03/quest-to-provide-oracle-support-for.html' title='Quest to provide Oracle support for Visual Studio 2010'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4583299879089643018</id><published>2009-03-06T16:10:00.001Z</published><updated>2009-03-06T16:10:13.623Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Automated Testing'/><title type='text'>Automating Web UI Testing</title><content type='html'>&lt;p&gt;Over the last day or so I've been researching to see if I could find a decent tool for automating Web UI tests. I work on a number of projects where automating the (currently manual) regression web tests would prove to be a great time saver and rescue our testers from the repetitive boredom that is inevitably part and parcel of such a task. You can only run that historical trends report so many times before you nod off in your chair...&lt;/p&gt;  &lt;p&gt;This was my wish list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Must be usable by those who are not necessarily developers. Many testers do not come from a formal geeky coding background :-) &lt;/li&gt;    &lt;li&gt;Able to record browser sessions. Once the test recording is complete, the ability to modify the various steps is needed &lt;/li&gt;    &lt;li&gt;Test case reusability - e.g. set up the user logon process once and reuse across tests &lt;/li&gt;    &lt;li&gt;Must be browser DOM based (and give me easy access to it please) &lt;/li&gt;    &lt;li&gt;Have a usable 'learnable by exploration' IDE &lt;/li&gt;    &lt;li&gt;Allow me to add/drop into custom code should I need to - work at various levels of abstraction &lt;/li&gt;    &lt;li&gt;Support what we now class as standard web app features such as javascript usage, pop-ups, AJAX, DHTML bla bla. &lt;/li&gt;    &lt;li&gt;Ideally integrate with Visual Studio 2008 &lt;/li&gt;    &lt;li&gt;Multi-browser support, although admittedly a lot of the Intranet front-ends I work on are Corporate IE6+ standardised ones (I know slapped hands...) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are plenty out there and not being a dedicated tester/QA guru I do not pretend to have done an exhaustive search!&lt;/p&gt;  &lt;h4&gt;Initial thoughts - VSTS TE&lt;/h4&gt;  &lt;p&gt;We had a license for &lt;a href="http://msdn.microsoft.com/en-us/library/ms182409.aspx" target="_blank"&gt;Visual Studio Team System Test Edition&lt;/a&gt; (VSTS TE), so I thought it made sense to start with that. I set up a VM, installed VSTS TE and recorded my first web test:&lt;/p&gt;  &lt;p&gt;&lt;img alt="web recording" src="http://www.visualize.uk.com/blogspotfiles/autotest1.gif" /&gt; &lt;/p&gt;  &lt;p&gt;It nicely recorded the http requests, preserved session state etc (bit like the old ACT), and the steps that it went through to complete the test were all clearly shown:&lt;/p&gt;  &lt;p&gt;&lt;img alt="http request tree view" src="http://www.visualize.uk.com/blogspotfiles/autotest2.gif" /&gt; &lt;/p&gt;  &lt;p&gt;but after some experimenting for an hour or so, I stopped. Why? Well, the whole set up is clearly aimed at techies which is not necessarily a bad thing, but I really couldn't see any of our QA testers using this in a hurry. Shame - an undoubtedly powerful tool for developer level testers but it felt more like a testing&amp;#160; framework than an integrated Web UI testing tool. It's all there (see &lt;a href="http://msdn.microsoft.com/en-us/library/ms182536.aspx" target="_blank"&gt;web test overview on MSDN&lt;/a&gt;), but it needs some sort of abstraction and nice UI over the top of it.&lt;/p&gt;  &lt;p&gt;Back to the drawing board then...but don't stop reading yet... after some digging I found what I think could be a solution and one that plugs nicely into the VSTS I had already installed, namely &lt;a href="http://www.artoftest.com/webaiidcproduct.aspx" target="_blank"&gt;ArtOfTest's WebAii Automation Design Canvas&lt;/a&gt; (built on top of its free &lt;a href="http://www.artoftest.com/webaiifxproduct.aspx" target="_blank"&gt;WebAii .Net Automation Framework&lt;/a&gt;). &lt;/p&gt;  &lt;h4&gt;WebAii Automation Design Canvas&lt;/h4&gt;  &lt;p&gt;Lets cut to the chase. Watch the following 4 minute WebAii demo which shows how you construct a simple web recorded test:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.artoftest.com/VideoPlayer.aspx?video/CreateTest.swf" target="_blank"&gt;&lt;img alt="watch the 4 minute demo video" src="http://www.visualize.uk.com/blogspotfiles/autotest3.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A simple example I know but this is more like it. I particularly like the element highlighting and the ability to do 'quick verifications' on those elements during the recording. You can also be as specific as you wish, having full access to the browser DOM tree:&lt;/p&gt;  &lt;p&gt;&lt;img alt="locate in DOM tree" src="http://www.visualize.uk.com/blogspotfiles/autotest4.gif" /&gt; &lt;/p&gt;  &lt;p&gt;and from there you can examine/compare individual attributes using the verification builder:&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;img alt="verification" src="http://www.visualize.uk.com/blogspotfiles/autotest5.gif" /&gt; &lt;/p&gt;  &lt;p&gt;this gives you pretty good control. For example, to compare an entire HTML table of results use (notice it is already populated with the relevant markup from the recorded web page):&lt;/p&gt;  &lt;p&gt;&lt;img alt="verification of table markup" src="http://www.visualize.uk.com/blogspotfiles/autotest6.gif" /&gt; &lt;/p&gt;  &lt;p&gt;I like the way the cancel and OK buttons are reversed in the above too, nice anti-usability touch ;-)&lt;/p&gt;  &lt;p&gt;Another useful feature is the storyboard view which shows small screen shots from each page taken during the web recording:&lt;/p&gt;  &lt;p&gt;&lt;img alt="storyboard view" src="http://www.visualize.uk.com/blogspotfiles/autotest7.gif" /&gt; &lt;/p&gt;  &lt;p&gt;This makes a great (albeit simple) documentation tool for each step. The screen shots also show which control is being actioned upon.&lt;/p&gt;  &lt;h4&gt;Other nice features&lt;/h4&gt;  &lt;p&gt;Here's a run down of some of the other bits I have tried so far:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can play back your tests against IE or Firefox. &lt;/li&gt;    &lt;li&gt;You can do simple data driven tests, for example, run the same test multiple times, but use different usernames/passwords for the logon on each iteration. &lt;/li&gt;    &lt;li&gt;supports AJAX and Silverlight but not tried this in anger yet. &lt;/li&gt;    &lt;li&gt;You can call other tests (e.g. a logon test) as a single test step. &lt;/li&gt;    &lt;li&gt;You can convert a step to .Net code (a one way thing). This is a nice feature and allows you to use recording to capture the main outline of the test and then drill down into various tests by using the &amp;quot;convert step to code&amp;quot; option and hand crank any .Net code you need. &lt;/li&gt;    &lt;li&gt;Web elements can be identified in various ways, including by attribute matching and XPath queries. This is useful for picking up any dynamically 'added on the fly' controls. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;System requirements and cost&lt;/h4&gt;  &lt;p&gt;You need Visual Studio Team Edition 2008 (or Pro edition). &lt;/p&gt;  &lt;p&gt;The WebAii Automation Design Canvas cost itself is around &amp;#163;1700 ($2499) per machine (&lt;a href="http://www.artoftest.com/pricing.aspx" target="_blank"&gt;see price list&lt;/a&gt;). I think this is pretty good value for a &lt;strong&gt;machine license&lt;/strong&gt; as you can then share usage across different users. VMs and VPC images are also ok to use. A common sense licensing model from ArtOfTest, nice.&lt;/p&gt;  &lt;h4&gt;What next&lt;/h4&gt;  &lt;p&gt;Next step for me is to trial this on a project before the trial license expires to ensure it covers all that we need. I want to integrate it into an existing project, TFS it up and use it in anger with some of our main web UI regression tests we already have in place. I'll bring in the QA guys too, to assess its usage and usability from a less technical perspective. &lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4583299879089643018?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4583299879089643018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4583299879089643018' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4583299879089643018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4583299879089643018'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/03/automating-web-ui-testing.html' title='Automating Web UI Testing'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6400987260825537295</id><published>2009-02-25T08:29:00.001Z</published><updated>2009-02-25T08:29:17.211Z</updated><title type='text'>Visual Studio 2010 - WPF screen shots</title><content type='html'>&lt;p&gt;As you probably know by now, VS 2010 will use WPF (the version to be shipped with .Net 4) for its new editor. If you want to see its cool new look, pop over to Jason Zander's blog:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx" href="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx"&gt;http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nice. Just hope the WPF UI is responsive on lower spec machines...&lt;/p&gt;  &lt;p&gt;See also the &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank"&gt;VS 2010&amp;#160; 'brochure' page&lt;/a&gt; for a summarised feature list of what you can expect to see forthcoming (there is a CTP download too).&lt;/p&gt;  &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6400987260825537295?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6400987260825537295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6400987260825537295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6400987260825537295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6400987260825537295'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/02/visual-studio-2010-wpf-screen-shots_25.html' title='Visual Studio 2010 - WPF screen shots'/><author><name>Dave Clarke</name><uri>http://www.blogger.com/profile/08436482998702804499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6586722076880440151</id><published>2009-02-10T16:25:00.001Z</published><updated>2009-02-10T16:25:10.317Z</updated><title type='text'>Keeping myself in the cloud</title><content type='html'>&lt;p&gt;I love the Internet. Whether it's to catch up on email, pick up some geeky blog feeds, check out the latest on BBC News, upload some photos or simply update my facebook status, I like to be connected. When I am not in the office or at home, my mobile phone is pretty good for very simple browsing, but my netbook (Acer Aspire One, excellent bit of kit) is what I really like to use when I am out and about.&lt;/p&gt;  &lt;p&gt;So... I have my trendy netbook... but hey... how do I get access to my beloved 'cloud'? Oh yes, use a Wi-Fi hot spot everyone crys. Wi-Fi is indeed getting better and most hotels/cafes now offer some sort of sign up style of access. I've no problem with that except most charge silly figures for a measly 30 mins or so of access. Grrrr. Also, I find there is never a hot spot nearby when I need one.&lt;img style="margin: 10px 0px 10px 10px" alt="t-mobile broadband usb key" src="http://www.visualize.uk.com/blogspotfiles/tmobile.jpg" align="right" /&gt; &lt;/p&gt;  &lt;p&gt;I think I've found a better solution for when Wi-Fi is not suitable - a 3G USB stick. Mobile broadband is not new of course, but up until recently most services have been contract based and/or too expensive for my adhoc, occasional style of usage. What I really needed was a reasonable PAYG one. After a bit of searching around, &lt;a href="http://www.t-mobile.co.uk/shop/mobile-broadband/" target="_blank"&gt;this t-mobile package&lt;/a&gt; (&amp;#163;2/day) fitted my situation nicely. You basically pay &amp;#163;2 when you first connect and then you have 24hours of usage (you can connect/disconnect as many times as you wish within that period). There is a 3GB/month fair use policy. &lt;/p&gt;  &lt;p&gt;It uses the well known &lt;a href="http://en.wikipedia.org/wiki/High-Speed_Downlink_Packet_Access" target="_blank"&gt;HSDPA&lt;/a&gt; 3G protocol (see &lt;a href="http://www.t-mobile.co.uk/services/coverage/street-check/?ref=quick" target="_blank"&gt;t-mobile's coverage checker&lt;/a&gt; for 3G in your area), but it also gracefully drops down to the (albeit slow) 2G &lt;a href="http://en.wikipedia.org/wiki/General_Packet_Radio_Service" target="_blank"&gt;GPRS&lt;/a&gt; where there is no 3G signal. Even in GPRS mode, it gives acceptable results. Of course, in 3G mode is where the device excels... with a theoretical down-link speed of 3.6 MBit/s (this is what it 'connects as'), in practice with a low/medium signal I've been getting around 1 Mbit/s down-link speeds and 300kbit/s uplink. Not bad at all. &lt;/p&gt;  &lt;p&gt;At &amp;#163;39 notes for the USB stick, if you use the Net in an adhoc way like I do, it's a no brainer and definitely worth a look.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6586722076880440151?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6586722076880440151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6586722076880440151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6586722076880440151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6586722076880440151'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2009/02/keeping-myself-in-cloud.html' title='Keeping myself in the cloud'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1496184742969455958</id><published>2008-12-22T16:17:00.001Z</published><updated>2008-12-22T16:17:22.977Z</updated><title type='text'>Scrum and eScrum/TFS Feedback</title><content type='html'>&lt;p&gt;We adopted Scrum and eScrum/TFS (Team Foundation Server 2008) back in June this year for a pilot project. As we are a few days before Xmas, when all is beginning to quieten down, now seems a suitable point to dot down a few observations. Here we go.&lt;/p&gt;  &lt;h4&gt;The Scrum Method&lt;/h4&gt;  &lt;p&gt;First of all, I'm converted! Scrum is one of the few processes/methods (I'm not a big process person myself generally) that excites me, in that it focuses the team on delivering good working software and encourages a good relationship between the IT Team and the business. Since adopting it on a small project, I can happily [subjectively] report back that it works, and it works well. We used 3 or 4 week sprints, monthly sprint review/planning meetings, and daily scrums (sometimes missing a day if one was not felt necessary, but we still touched base to confirm this). We also had scheduled weekly &amp;quot;product owner update meetings&amp;quot; to ensure we had a regular slot in a busy &amp;quot;product owner's life&amp;quot;, where we always scanned down the sprint backlog to see how things were progressing.&lt;/p&gt;  &lt;p&gt;Here's are some observations.&lt;/p&gt;  &lt;h5&gt;1) The business loved it because:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Transparency and business ownership. They enjoyed being a big part of the project, seeing the parts that went well as well as those that did not! &lt;/li&gt;    &lt;li&gt;Focus on delivery of key features. Having the control of what goes in and what does not, via strict prioritisation &lt;/li&gt;    &lt;li&gt;Explicitly clear what is being delivered in each iteration and by when &lt;/li&gt;    &lt;li&gt;Productivity. Business often surprised by the &amp;quot;amount&amp;quot; delivered &lt;/li&gt;    &lt;li&gt;Regular releases. This often resulted in less impact on the business at go live time (&amp;quot;little and often&amp;quot; approach) &lt;/li&gt;    &lt;li&gt;Gets everyone focused, especially on testing! &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;2) The development team liked it because:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Clear whom is doing what &lt;/li&gt;    &lt;li&gt;Regular daily Scrums picked up any niggling issues very early &lt;/li&gt;    &lt;li&gt;Test earlier and focus on producing tested, &amp;#8220;packaged up&amp;#8221; work. Although we are not yet adopting TDD (test driven development), as we are doing shorter development cycles, this necessitates earlier testing to ensure all is tested before the end of a sprint. What we did find though was that during the final few days of each sprint, we found it beneficial to focus purely on wrapping up what we had done and &amp;quot;test/fix only&amp;quot; in order to deliver a fully tested product even if it meant removing a sprint item or two in order to achieve this. &lt;/li&gt;    &lt;li&gt;System deliverables improved. Smaller increments and closer links with business definitely has resulted in better work being produced ('better' being a system that matches what the business wants). &lt;/li&gt; &lt;/ul&gt;  &lt;li&gt;All OK so far. Any problems?    &lt;h5&gt;3) A few Issues:&lt;/h5&gt;    &lt;ul&gt;     &lt;li&gt;Multiple product owners (we had three distinct areas thus 3 owners). Needed a gatekeeper PO to help manage this &lt;/li&gt;      &lt;li&gt;Trying to fit too much into a sprint. Call it eager to please, naivety or lack of experience, but the first couple of sprints resulted in the development team working their socks off to finish the sprints on time. Looking back, this was purely due to underestimating effort and not allowing enough time for feedback/testing. &lt;/li&gt;      &lt;li&gt;New requirements coming in during a sprint. This is something we are now getting better at but early on we were drawn by the temptation of squeezing in &amp;quot;important&amp;quot; new requirements into an existing sprint (slapped hands I know!). We live and learn. &lt;/li&gt;      &lt;li&gt;Some requirements not clear during sprint. We tried to start development on requirements that were changing or not really known. Ouch. &lt;/li&gt;      &lt;li&gt;Keep control of the number of meetings. With 3 product owners we found we had quite a few meetings each week, some of which the development team did not always need to attend. &lt;/li&gt;      &lt;li&gt;Keep eScrum work items up to date. Whichever tool you use, it is only as good as the information in it. Hence encourage your team to keep it up to date. &lt;/li&gt;   &lt;/ul&gt;    &lt;h4&gt;eScrum and TFS &lt;/h4&gt;    &lt;p&gt;As mentioned in an &lt;a href="http://daveclarkesblog.blogspot.com/2008/07/installing-team-foundation-server-2008.html" target="_blank"&gt;earlier TFS/eScrum post&lt;/a&gt;, not only did we switch to Scrum for this pilot project, but we also adopted some new tools namely:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;TFS 2008 for source control and work item tracking &lt;/li&gt;      &lt;li&gt;eScrum Process Template. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Here's my brief thoughts:&lt;/p&gt;    &lt;h5&gt;1) TFS Generally&lt;/h5&gt;    &lt;p&gt;I like it. Once you get over the clunky, heavyweight feeling of the various MS products working together to give you what you want (SQL Server, Sharepoint, Reporting Services, TFS Web Services) and sorted out all the security goings on (you've essentially 3 products to set up security for), then you are away. The customisation is very flexible (especially once you have installed various power tools) and adopting &lt;a href="http://daveclarkesblog.blogspot.com/2008/07/backing-up-vmware-workstation-vms.html" target="_blank"&gt;a VM as a backup strategy&lt;/a&gt; has served us well. Well worth the move from VSS!&lt;/p&gt;    &lt;h5&gt;2) eScrum 1.0 Process Template&lt;/h5&gt;    &lt;p&gt;I looked at a few templates for managing the Scrum project (including Conchango's SFTS and MSFAgile) but in the end, eScrum had the best web interface for us. It is not without its short comings though.&lt;/p&gt;    &lt;p&gt;Here's some of my thoughts on the eScrum web interface:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;The interface is fixed and &amp;quot;hard coded&amp;quot; as it runs as a separate web site (it does not use the generic Team System Web Access). The advantage of this is that is gives a focused interface, geared towards the eScrum template, but its drawback is that if you customise the template, add new fields etc, although they appear in TSWA and in Team Explorer on the client, they will not be seen in the eScrum web site. Shame. &lt;/li&gt;      &lt;li&gt;You cannot add attachments through the web interface. Not a deal breaker for me, but as users often submit bugs in the form of &amp;quot;screen shots&amp;quot; this would make a useful addition. &lt;/li&gt;      &lt;li&gt;No &amp;quot;show history of changes&amp;quot; option on a product backlog or sprint backlog item. &lt;/li&gt;      &lt;li&gt;The &amp;quot;all items disappearing in sprint backlog&amp;quot; bug needs fixing. Opening a new browser session or switching projects brings them back for now. &lt;/li&gt;      &lt;li&gt;The AJAX driven web interface is pretty lightweight/quick, especially compared to TSWA. Updating work items is fast and slick. &lt;/li&gt;      &lt;li&gt;PBI and Sprint pages have too big a header and section at the top. I would like to be able to fit more viewable item lines per page. e.g. with the product backlog page, 2 thirds of the screen is taken up with a header, menu tabs, and first three sections which are rarely expanded once product set up. The bottom third is the bit we use all the time! &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Overall,&amp;#160; a nice interface but we are getting to a point where a version 2.0 is long overdue. I can't see this happening for a while though.... maybe MS should make it open source ;-)&lt;/p&gt;    &lt;p&gt;Merry Xmas      &lt;br /&gt;Clarkey&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/li&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1496184742969455958?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1496184742969455958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1496184742969455958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1496184742969455958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1496184742969455958'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/12/scrum-and-escrumtfs-feedback.html' title='Scrum and eScrum/TFS Feedback'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-9178365425719305255</id><published>2008-11-28T10:36:00.001Z</published><updated>2008-11-28T10:36:35.558Z</updated><title type='text'>Clone Detective</title><content type='html'>&lt;p&gt;Ever had that deja vu feeling when coding in a project? Ever thought, hang on, I've seen something similar to this code block before? Are you keen to factor out duplicate code from your systems? Of course you are, so take a peek at this:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.codeplex.com/CloneDetectiveVS" href="http://www.codeplex.com/CloneDetectiveVS"&gt;http://www.codeplex.com/CloneDetectiveVS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Clone Detective is a free add-in (built on &lt;a href="http://conqat.cs.tum.edu/index.php/What_is_ConQAT%3F" target="_blank"&gt;ConQAT&lt;/a&gt;) for Visual Studio that analyses your C# projects for 'duplicate source', that is, similar code once any 'noise' has been removed (normalisation) and tokenised. Whether this is from sloppy copy &amp;amp; paste activities in your team or simply properties in N-Tier DTOs, BDOs etc, as professional software engineers (eh?!) we want to know about such things. It's then up to you to decide if the clones are ok or if further action is required, considering any refactoring costs involved.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/CloneDetectiveVS/Wiki/View.aspx?title=Videos" target="_blank"&gt;Watch the 10min video&lt;/a&gt; as a starting point to see if this tickles you in the right places. It did me :-)&lt;/p&gt;  &lt;p&gt;I ran it past one of my projects:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/clonedetective.gif" /&gt; &lt;/p&gt;  &lt;p&gt;The figures in brackets are the percentages of code cloned. The coloured bars indicate where in the file the potentially pikey coding is. Some of the source identified in this case was simply properties in my BDOs but there were other cases where it did point out areas of my code where some refactoring could take place. Nice (the add-in that is, not my coding).&lt;/p&gt;  &lt;p&gt;_mrC&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-9178365425719305255?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/9178365425719305255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=9178365425719305255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/9178365425719305255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/9178365425719305255'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/11/clone-detective.html' title='Clone Detective'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-7154683180122360210</id><published>2008-09-26T12:10:00.001+01:00</published><updated>2008-09-26T12:14:31.096+01:00</updated><title type='text'>TFS 2008 - Installing SP1</title><content type='html'>&lt;p&gt;Here's what i did:&lt;/p&gt; &lt;p&gt;1) Installed Visual Studio 2008 SP1 &lt;strong&gt;first&lt;/strong&gt;,&lt;strong&gt; &lt;/strong&gt;as we have team explorer on the TFS server (useful for admin use). Remember for our relatively small setup we've put both the app tier and data tier on the same VM. SP1 install time 1hr 15mins (Oooh!). Reboot required.&lt;/p&gt; &lt;p&gt;2) &lt;strong&gt;then&lt;/strong&gt; installed Team Foundation Server SP1. Install time 15 mins. No reboot needed but I did one anyway, just to see those services start up nice and cleanly :-)&lt;/p&gt; &lt;p&gt;If you do it in this order you should be assured of a pain free installation. Well OK then... at least a 'reduced risk' one anyway.&lt;/p&gt; &lt;h4&gt;What do you gain by installing SP1?&lt;/h4&gt; &lt;p&gt;Here's two useful links showing what you get with this upgrade:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/bharry/archive/2008/09/16/team-foundation-server-2008-sp1-bug-fixes.aspx" target="_blank"&gt;List of the 227 bug fixes in SP1&lt;/a&gt;. Also provides an interesting account of how the bugs were discovered.  &lt;li&gt;&lt;a href="http://blogs.msdn.com/bharry/archive/2008/04/28/team-foundation-server-2008-sp1.aspx" target="_blank"&gt;New features in SP1&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If I come across any issues I'll post them here.&lt;/p&gt; &lt;h4&gt;Useful Links&lt;/h4&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en" target="_blank"&gt;Visual Studio 2008 SP1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9E40A5B6-DA41-43A2-A06D-3CEE196BFE3D&amp;amp;displaylang=en" target="_blank"&gt;Team Foundation Server SP1&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-7154683180122360210?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/7154683180122360210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=7154683180122360210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7154683180122360210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7154683180122360210'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/09/tfs-2008-installing-sp1.html' title='TFS 2008 - Installing SP1'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-3737633285179758798</id><published>2008-09-03T13:00:00.001+01:00</published><updated>2008-09-03T13:00:50.194+01:00</updated><title type='text'>Upgrading TFS 2008 Workgroup Edition to the full version</title><content type='html'>&lt;p&gt;We've been evaluating TFS 2008 workgroup edition the last couple of months, are pretty happy with it and have hence now purchased a license for the full version (thus unlocking the 5 user limit). &lt;/p&gt; &lt;p&gt;Upgrading is pretty straightforward, see &lt;a title="http://msdn.microsoft.com/en-us/library/ms404848.aspx" href="http://msdn.microsoft.com/en-us/library/ms404848.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms404848.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Basically you run the TFS installer in maintenance mode by going to add/remove programs, locating TFS and selecting Change/Remove:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/tfsupgrade1.gif"&gt;  &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You should then get the maintenance mode page. Great I thought, I simply need to copy/paste in the sparkling new product key I'd been given... umm, wait a minute, the boxes appear to be disabled...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/tfsupgrade2.gif"&gt;  &lt;/p&gt; &lt;p&gt;My heart sank... so much for the 5 mins upgrade then. Of course, after digging around on various forums, there was a workaround. The problem is down to the fact that the MSDN version I'd downloaded and originally installed, pre-fills the key with a work group ed key and makes them read only. Nice, thanks, a great feature. The solution is to find where the key is stored in setup.stb and remove it. Go to:&lt;/p&gt; &lt;p&gt;C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Microsoft Visual Studio 2008 Team Foundation Server - ENU\Setup.stb&lt;/p&gt; &lt;p&gt;edit it in notepad (backup up the file first) and remove the offending lines:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/tfsupgrade3.gif"&gt;  &lt;/p&gt; &lt;p&gt;Save it. Re-run maintenance mode via "change/remove" and the fields are enabled:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/tfsupgrade4.gif"&gt;  &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Paste in your full product key, click next, some services are restarted and hey presto, you have now transformed workgroup edition into the full version. &lt;/p&gt; &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-3737633285179758798?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/3737633285179758798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=3737633285179758798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3737633285179758798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3737633285179758798'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/09/upgrading-tfs-2008-workgroup-edition-to.html' title='Upgrading TFS 2008 Workgroup Edition to the full version'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6732625868158624666</id><published>2008-08-01T09:33:00.002+01:00</published><updated>2008-10-23T17:15:28.200+01:00</updated><title type='text'>Browsershots.org</title><content type='html'>&lt;p&gt;Ever wanted to see what your web site looks like in over 60 different browser versions/platforms? Of course you have ;-)&lt;/p&gt;  &lt;p&gt;"Browsershots makes screenshots of your Web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your Web address, it will be added to the job queue. A number of distributed computers will open your Web site in their browser. Then they will make screenshots and upload them to the central server here."&lt;/p&gt; &lt;p&gt;&lt;a href="http://browsershots.org/" target="_blank"&gt;browsershots.org&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Simply enter your web address and tick the browsers you are interested in:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/browsershot1.gif" /&gt; &lt;/p&gt; &lt;p&gt;and within a few mins you get your screenshots:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/browsershot2.gif" /&gt; &lt;/p&gt; &lt;p&gt;You can then drill down into each screenshot and take a peek. Nice.&lt;/p&gt; &lt;p&gt;Obviously this won't work for Intranet pages (inside the firewall) but useful for Internet sites.&lt;/p&gt; &lt;p&gt;Clarkey&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6732625868158624666?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6732625868158624666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6732625868158624666' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6732625868158624666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6732625868158624666'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/08/browsershotsorg.html' title='Browsershots.org'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-5813258285000165192</id><published>2008-07-30T08:45:00.001+01:00</published><updated>2008-07-30T08:45:13.144+01:00</updated><title type='text'>Mojave - the next "better" OS after Vista</title><content type='html'>&lt;p&gt;If you think Vista is slow and love to moan about its shortcomings then you'll be glad to know Microsoft are gathering feedback on its 'next' OS, code named &lt;strong&gt;Mojave&lt;/strong&gt;. Some users have been shown an early version - to hear what they think, headphones on and have a listen to some of the short video clips:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.mojaveexperiment.com/" target="_blank"&gt;The Mojave Experiment&lt;/a&gt;&lt;/p&gt; &lt;p&gt;:-)&lt;/p&gt; &lt;p&gt;Mr C&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-5813258285000165192?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/5813258285000165192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=5813258285000165192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5813258285000165192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5813258285000165192'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/07/mojave-next-os-after-vista.html' title='Mojave - the next &amp;quot;better&amp;quot; OS after Vista'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4564646060138350534</id><published>2008-07-24T08:33:00.001+01:00</published><updated>2008-07-24T08:33:03.232+01:00</updated><title type='text'>TFS 2008/eScrum: adding new categories to a product backlog item</title><content type='html'>&lt;p&gt;Further to &lt;a href="http://daveclarkesblog.blogspot.com/2008/07/installing-team-foundation-server-2008.html" target="_blank"&gt;this post on installing TFS 2008 and eScrum&lt;/a&gt;, here's how you add new "product backlog item" categories to the TFS process template (which can then be chosen for a "product backlog item" in eScrum).&lt;/p&gt; &lt;p&gt;Open up Team Explorer and choose Process Template Manager:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/processtemplate1.gif"&gt;  &lt;/p&gt; &lt;p&gt;Choose the eScrum process template and select download. Choose a local folder and this will create a tree of folders containing all the template information. Go to eScrum\WorkItemTracking\TypeDefinitions\&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/processtemplate2.gif"&gt;  &lt;/p&gt; &lt;p&gt;Edit &lt;strong&gt;ProductBacklogItem.xml&lt;/strong&gt; and modify the FIELD name="category" section. We added two new items.&lt;/p&gt; &lt;p&gt;&amp;lt;FIELD name="Category" refname="Microsoft.eScrum.Common.Category" type="String" reportable="dimension"&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HELPTEXT&amp;gt;Category of the Product Backlog Item&amp;lt;/HELPTEXT&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ALLOWEDVALUES expanditems="true"&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="Overhead" /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="Document" /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="External" /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="Feature" /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="Deployment" /&amp;gt; &lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="Defect" /&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LISTITEM value="New to discuss" /&amp;gt;&lt;/strong&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ALLOWEDVALUES&amp;gt; &lt;br&gt;&amp;lt;/FIELD&amp;gt;&lt;/p&gt; &lt;p&gt;Save the file, select team explorer - process template manager again and upload the new template dir to the server (when prompted just choose your local escrum folder to upload from). Your new product backlog item categories will now appear in all &lt;strong&gt;new&lt;/strong&gt; projects you create.&lt;/p&gt; &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4564646060138350534?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4564646060138350534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4564646060138350534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4564646060138350534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4564646060138350534'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/07/tfs-2008escrum-adding-new-categories-to.html' title='TFS 2008/eScrum: adding new categories to a product backlog item'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-7383377912478662855</id><published>2008-07-10T10:31:00.002+01:00</published><updated>2008-12-04T09:34:05.963Z</updated><title type='text'>Installing Team Foundation Server 2008 and eScrum 1.0</title><content type='html'>&lt;p&gt;I've been getting into &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank"&gt;Agile methods&lt;/a&gt; quite a bit recently, especially &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank"&gt;Scrum&lt;/a&gt;, which I am finding an excellent approach for managing projects and teams. We began initially using excel spreadsheets for the product and sprint backlogs, which worked quite well, but I'd heard about &lt;a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=55A4BDE6-10A7-4C41-9938-F388C1ED15E9&amp;amp;displaylang=en" target="_blank"&gt;eScrum&lt;/a&gt; (process template for TFS) and, from what I'd read and seen at various seminars, looked to be a promising tool for providing a nice integrated tool for managing the various Scrum artifacts and processes. &lt;/p&gt; &lt;p&gt;Secondly, for some time I've been meaning to investigate &lt;a href="http://msdn.microsoft.com/en-us/tfs2008/default.aspx" target="_blank"&gt;TFS 2008&lt;/a&gt; for team portal features, version control, item tracking and management of our builds. &lt;/p&gt; &lt;p&gt;We were about to start a new phase of a project so we discussed the pros/cons of piloting both TFS and eScrum, and decided this would be a good opportunity to try them both out. Were we biting off more than we could chew? Would it all be painful and a massive waste of resource?&lt;/p&gt; &lt;p&gt;This first post is all about the install and set up. Feedback on experience of using the tools can come in a later post ;-)&lt;/p&gt; &lt;h4&gt;Installation of TFS&lt;/h4&gt; &lt;p&gt;&lt;strong&gt;Top essential (and I mean essential) tip:&lt;/strong&gt; read and follow the supplied &lt;strong&gt;TFSInstall.chm&lt;/strong&gt; install guide file. This is key - if you are new to the TFS install and do not follow the supplied "checklists" for your chosen set up, you will endure pain, agony and spend many (mostly avoidable) dark hours in MSDN forums and KBs. We've all been there and it's not nice.&lt;/p&gt; &lt;p&gt;I pretty much tried to follow the install guide by the book, but below points out some specifics of our set up and the issues I came across. &lt;/p&gt; &lt;h4&gt;Installation - What I did&lt;/h4&gt; &lt;p&gt;Note, as this was a pilot, the install I chose was the (free) workgroup based &lt;strong&gt;Single Server&lt;/strong&gt; TFS Install (i.e. TFS, SQL server, sharepoint and eScrum all installed on one box). TFS example project name in this case was called &lt;strong&gt;os-env&lt;/strong&gt;, on a VM with hostname KSGV-TFS.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Created a VMWare virtual machine hosted (based on a previous web windows 2003 server VM we have) on a VM hosting box. VM was called KSGV-TFS. Allocated 1.5 gig of RAM. C: system drive 20 gig. F@ drive data 60Gig.  &lt;/li&gt;&lt;li&gt;Disabled indexing service via computer management.  &lt;/li&gt;&lt;li&gt;Installed .Net 2 and 3 framework. IIS was already present on this VM image, tested and working. Uninstalled front page extensions (otherwise, as I found out (see in a bit), it halted the TFS install later).  &lt;/li&gt;&lt;li&gt;Ran windows update etc to bring the OS up to date.  &lt;/li&gt;&lt;li&gt;Installed FProt virus scanner v6 (old version had expired) and set to auto-update daily.  &lt;/li&gt;&lt;li&gt;Downloaded en_visual_studio_team_system_2008_team_foundation_server_workgroup_x86_x64wow_dvd_X14-29253.iso from MSDN subscription and extracted the files.  &lt;/li&gt;&lt;li&gt;IMPORTANT: then followed the instructions "Checklist: Single Server TFS Installation" EXACTLY as indicated in the TFSInstall.chm file in TFS install dir. Note I went for the single server installation (rather than separate front and back end servers) as for our 5 developer team on this pilot project, this seemed the logical and simplest route for the trial.  &lt;/li&gt;&lt;li&gt;Did not set up the admin user (TFSSETUP). As we were using local accounts and were using workgroup edition of TFS, the help recommends using your own user account (needs admin privs) instead of the TFSSETUP account as this uses up one of the valuable 5 free developers allowed in this free set up. So I set up and used local account dave.t.clarke (admin).  &lt;/li&gt;&lt;li&gt;TFSSERVICE, TFSREPORTS accounts were created and put in the Users group.  &lt;/li&gt;&lt;li&gt;Next followed the instructions to install SQL Server 2005 standard ed (again noted in TFSInstall.chm). I used a default SQL instance.  &lt;/li&gt;&lt;li&gt;Once installed, verified the SQL installation as indicated in the instructions, to check all necessary services were running.  &lt;/li&gt;&lt;li&gt;Installed SQL 2005 SP2. Then repeated step 10 (verify).  &lt;/li&gt;&lt;li&gt;Rebooted  &lt;/li&gt;&lt;li&gt;Installed TFS 2008 (I chose the option which would install Sharepoint too). Came across the infamous “front page extensions must not be installed” error during health check (despite having uninstalled it in step 2!). I love stuff like this... you know, you uninstall a component but it hasn't really gone. Great. A known error… in the KBs found out you can edit the metabase and remove IISFilters and IISFilter sections manually, which still contained refs to Front Page Ext. Uninstaller worked well there then... ugh.  &lt;/li&gt;&lt;li&gt;TFS health checks worked fine now  &lt;/li&gt;&lt;li&gt;When prompted entered the TFSSERVICE and TFSREPORTS accounts as applicable.  &lt;/li&gt;&lt;li&gt;Entered my SMTP email info. FYI, this is stored in C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\web.config if you need to change it at a later date.  &lt;/li&gt;&lt;li&gt;Let it all install….  &lt;/li&gt;&lt;li&gt;Ran windows update. Picked up an update for sharepoint 3.  &lt;/li&gt;&lt;li&gt;Rebooted.  &lt;/li&gt;&lt;li&gt;Next I installed the pre reqs for eSCRUM (to be installed later in step 24):  &lt;ol&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Anti-Cross Site Scripting Library v 1.5&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&amp;amp;DisplayLang=en" target="_blank"&gt;Microsoft ASP.NET 2.0 AJAX Extensions 1.0&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://download.microsoft.com/download/2/a/d/2ad44873-8ccb-4a1b-9c0d-23224b3ba34c/VSTFClient.img" target="_blank"&gt;Visual Studio 2005 Team Explorer&lt;/a&gt; (the eScrum 1.0 installer will check for v2005!). Had to download this separately as an img file and extract the files. &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt;Rebooted (otherwise I found the next TE 2008 install hanged in the next step).  &lt;/li&gt;&lt;li&gt;Installed Team Explorer 2008 from TFS 2008 install media.  &lt;/li&gt;&lt;li&gt;Opened Team Explorer 2008 to ensure it connected OK etc.  &lt;/li&gt;&lt;li&gt;Installed eScrum 1.0, by carefully following this ref: &lt;a href="http://www.sharepointblogs.com/johnwpowell/archive/2007/09/29/how-to-install-microsoft-escrum-1-0-process-template-on-tfs-2008-beta-2-quot-orcas-quot.aspx"&gt;eScrum Install for TFS 2008 instructions&lt;/a&gt; . Although originally for beta 2, it seems to work fine on the final release of TFS 2008.  I also gave local Users group MODIFY access to local C: windows/temp dir as per eScrum instructions.  &lt;/li&gt;&lt;li&gt;I used &lt;b&gt;os-env&lt;/b&gt; for the eScrum project name in the above step, so I thus tested the WSS 3 eScrum site using the address: http://ksgv-tfs/Sites/os-env/default.aspx and tested the escrum web site using: http://ksgv-tfs:8080/escrum/.  &lt;/li&gt;&lt;li&gt;Both sites appeared to work fine at this point. Nice. Not as bad as I was expecting :-) &lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;Setting up our Project in TFS and eScrum&lt;/h4&gt; &lt;p&gt;I initially set the project up (see steps 24 and 25 above) using Team Explorer 2008 to create the project "os-env" in TFS and then added the entry manually (not ideal I know, but this is the way it works) into the eScrum RegisteredGroups.xml file, namely:&lt;/p&gt; &lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;RegisteredGroups xmlns:xsi="&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance"&lt;/a&gt; xmlns:xsd="&lt;a href="http://www.w3.org/2001/XMLSchema"&gt;http://www.w3.org/2001/XMLSchema"&lt;/a&gt;&amp;gt;&lt;br /&gt;    &amp;lt;isflatGroupCollectionDirty&amp;gt;false&amp;lt;/isflatGroupCollectionDirty&amp;gt;&lt;br /&gt;&lt;strong&gt;    &amp;lt;Server Name="KSGV-TFS" Uri="&lt;/strong&gt;&lt;a href="http://ksgv-tfs:8080/"&gt;&lt;strong&gt;http://ksgv-tfs:8080/"&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;gt;&lt;br /&gt;        &amp;lt;Group Name="os-env" /&amp;gt; &lt;br /&gt;        &amp;lt;Group Name="another-project-here-etc" /&amp;gt; &lt;br /&gt;    &amp;lt;/Server &amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;/RegisteredGroups&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Update:&lt;/strong&gt; you can also add projects to this file via the (rather obscure) &lt;/em&gt;&lt;a href="http://ksgv-tfs:8080/"&gt;&lt;/a&gt;&lt;em&gt;http://ksgv-tfs:8080/&lt;/em&gt;&lt;em&gt;escrum/admin.aspx&lt;/em&gt;&lt;em&gt; page. Very basic interface with poor feedback and no validation, and make sure the name you enter is identical to the TFS project name you created  using Team Explorer.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Once set up you will see the project in WSS 3 eScrum site using the address: http://ksgv-tfs/Sites/os-env/default.aspx and the escrum web site using: http://ksgv-tfs:8080/escrum/. See eScrum screenshot:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/escrum1.gif" /&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h4&gt;Setting up Basic Security&lt;/h4&gt; &lt;p&gt;I then needed to set up the user security for our small pilot team. I opened up Team Explorer 2008 on the server, right clicked on our os-env project, selected Team Project Settings and added our relevant users to the groups Contributors and Project Administrators:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/tfs-security.gif" /&gt; &lt;/p&gt; &lt;p&gt;Both TFS and eScrum use these user lists for security (for example, on the eScrum web site you will not be able to add your team members to the "product team" list until these are set up).&lt;/p&gt; &lt;p&gt;I then needed to add the users to Sharepoint security (ie sharepoint site http://ksgv-tfs/site/os-env/, select site actions/site settings, people and groups) and also to SQL Reporting Services (http://ksgv-tfs/reports/, properties, security).&lt;/p&gt; &lt;p&gt;Check your security by testing the two sites (from another non-admin account machine)  sharepoint eScrum site using the address: http://ksgv-tfs/Sites/os-env/default.aspx and the eScrum web site using: http://ksgv-tfs:8080/escrum/. With the latter, ensure you also try running the reports on the eScrum Reports tab to ensure SQL Reporting services security is configured correctly.&lt;/p&gt; &lt;h4&gt;Setting up your development client&lt;/h4&gt; &lt;p&gt;As we wanted to use our existing Visual Studio Team System 2008 Dev Ed to access/integrate with TFS for source control, work items etc, I had to install Team Explorer 2008 on my laptop (I initially, incorrectly, assumed it would be pre-installed as part of the VS 2008 TS). I installed it via the TFS install media but you can also &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ed12659-3d41-4420-bbb0-a46e51bfca86&amp;amp;displaylang=en" target="_blank"&gt;get Team Explorer 2008 directly here&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Once installed, fire up Visual Studio, go to tools/options, select source control, and you will see Team Foundation Server is now in the list. Select it and VS will use this for your source control.&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/vs-ssoptions.gif" /&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;If you are worried about breaking older projects still in VSS (Visual Source Safe), you can easily switch back and forth between version control systems using this approach without any (noticeable at least!) ill effects. Do this before you open your relevant project though.&lt;/p&gt; &lt;p&gt;I then created a test project in VS 2008 and successfully added a test project's source to the TFS project os-env, just to ensure all was connecting OK.&lt;/p&gt; &lt;p&gt;You can then also select Team Explorer from within VS 2008 (View/Team Explorer):&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/vs2008tree.gif" /&gt; &lt;/p&gt; &lt;p&gt;I'll talk more about its usage in a future post.&lt;/p&gt; &lt;h4&gt;Reducing the delays of eScrum report updating&lt;/h4&gt; &lt;p align="left"&gt;Although all was now working fine, I notice that when we updated sprint items etc we did not see the changes for what seemed an age! Clearly some caching or scheduled warehousing was going on. Digging around I discovered that the eScrum reporting does not query the main TFS 'real-time' data but instead queries the TFSWarehouse database, which gets updated every hour (!). I thus changed this by going to the web service: http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx?op=ChangeSetting and updating the RunIntervalSeconds settingID to 600 (i.e. to update every 10 mins). Note you must run this from the local TFS machine. &lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/escrumdelay2min.gif" /&gt; &lt;/p&gt; &lt;p&gt;Restart the "Visual Studio Team Foundation Server Task Scheduler" via Services in windows to pick up the changes.&lt;/p&gt; &lt;p&gt;You will then still find the SQL Server Reporting Services reports only update every 30 mins. To rectify this:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Went to SQL Server Reporting Services via: http://localhost/Reports/  &lt;/li&gt;&lt;li&gt;selected the project os-env  &lt;/li&gt;&lt;li&gt;selected properties tab  &lt;/li&gt;&lt;li&gt;then selected each report and chose properties/execution. I then disabled the caching completely: &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/sqlreportingcache.gif" /&gt; &lt;/p&gt; &lt;p&gt;All done. At worst, now all reports will be 10 mins out of date. Depending on your needs and number of users, you may wish to still cache reports.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;I then monitored machine cpu/memory usage for a while but did not see any ill effect of disabling the reporting cache and reducing the TFS Task Scheduler to 10 mins. I'll keep an eye on it though especially as the project grows in size. If you get any issues, maybe gradually increase the warehouse refresh time.&lt;br /&gt;&lt;/p&gt; &lt;h4&gt;Bug Integration&lt;/h4&gt; &lt;p&gt;In eScrum you can create links to bugs from a sprint task. See screenshot below:&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.visualize.uk.com/blogspotfiles/tfsblog/escrumbugs.gif" /&gt; &lt;/p&gt; &lt;p&gt;In order for the "Query Bugs" button to work, you need to define the query that pulls out the relevant bugs from the database. See the eScrum help for more but basically you end up with a query similar to below that you copy/paste into the product bug setting section on the Product page (to use the query below in your own project just change the "os-env" project name reference to your own):&lt;/p&gt; &lt;p&gt;SELECT [System.Id], [System.AreaPath], [System.AssignedTo], [Microsoft.VSTS.Common.Priority], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject] = 'os-env' AND [System.State] &amp;lt;&amp;gt; 'Deleted' AND [System.WorkItemType] = 'Bug' ORDER BY [System.State], [System.Id]&lt;/p&gt; &lt;p&gt;This will be run when you select "Query Bugs" in above screenshot.&lt;/p&gt; &lt;h4&gt;Backups&lt;/h4&gt; &lt;p&gt;With all our source code and product info going into TFS, I thought even for this pilot maybe backups would be a good idea ;-)&lt;/p&gt; &lt;p&gt;I took the approach of backing up the entire VM nightly to an external drive (and weekly to a network drive that is then backed up automatically by the standard corporate backup measures already in place). More on &lt;a href="http://daveclarkesblog.blogspot.com/2008/07/backing-up-vmware-workstation-vms.html" target="_blank"&gt;regularly backing up a VMWare VM in this post&lt;/a&gt;.&lt;/p&gt; &lt;h4&gt;In Summary&lt;/h4&gt; &lt;p&gt;Overall, the install all seemed to go fairly smoothly (especially considering all the pain I've read about on the net that others have gone through) and both TFS and eScrum appear to be working fine. I've created a Product, added team members etc, created a sprint and run some reports. Of course, the real test will be when we start to use this in anger over the next few weeks. The suspense is more than I can take...&lt;/p&gt; &lt;p&gt;It has to be said though, the installation experience is not the simplest  - it is a manual process, with lots of jumping around in the help to see what to do next, manual config edits, lots of choices etc etc. However, if you are very careful and follow the supplied installation instructions, you will be rewarded :-)&lt;/p&gt; &lt;p&gt;Next post will be on usage and how we found both TFS and eScrum as day-to-day tools.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h4&gt;Summarised list of useful addresses&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;eScrum portal: http://ksgv-tfs:8080/escrum/  &lt;/li&gt;&lt;li&gt;eScrum basic (very) admin page for adding a project: http://ksgv-tfs:8080/escrum/admin.aspx  &lt;/li&gt;&lt;li&gt;Sharepoint project site: http://ksgv-tfs/sites/your-tfs-project-name/  &lt;/li&gt;&lt;li&gt;SQL Server reporting Services: http://ksgv-tfs/reporting/  &lt;/li&gt;&lt;li&gt;Web service to change the eScrum datawarehouse scheduler timing: http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx?op=ChangeSetting (note the TFS box localhost address) &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt; &lt;h4&gt;And thanks to...&lt;/h4&gt; &lt;p&gt;The above install was without a doubt aided by others sharing their valuable TFS install experiences (thank you guys, you saved me a considerable amount of pain):&lt;/p&gt; &lt;ul&gt; &lt;li&gt;John Powell: &lt;a href="http://www.sharepointblogs.com/johnwpowell/archive/2007/09/29/how-to-install-microsoft-escrum-1-0-process-template-on-tfs-2008-beta-2-quot-orcas-quot.aspx" target="_blank"&gt;How to Install eScrum 1.0 on TFS 2008 beta 2&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;Steven Tapping: &lt;a href="http://blogs.vertigo.com/personal/steventap/Blog/Lists/Posts/Post.aspx?ID=24" target="_blank"&gt;eScrum Reporting Delays&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;And also see some of the pains others have gone through: &lt;a href="http://weblogs.asp.net/bsimser/archive/2007/06/15/an-attempt-at-working-with-escrum.aspx" target="_blank"&gt;Fears and Loathing&lt;/a&gt; whom gave up but made me chuckle whilst doing so :-) &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-7383377912478662855?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/7383377912478662855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=7383377912478662855' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7383377912478662855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7383377912478662855'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/07/installing-team-foundation-server-2008.html' title='Installing Team Foundation Server 2008 and eScrum 1.0'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2377893250047378992</id><published>2008-07-09T09:39:00.001+01:00</published><updated>2008-07-09T09:39:01.882+01:00</updated><title type='text'>Backing up VMware Workstation VMs</title><content type='html'>&lt;p&gt;We run a small number of VM instances which are mostly sandbox type environments and hence backups are not always essential, but if you are running something a bit more crucial and wish to back up a VM regularly, what are your options? Running 'traditional' third party backup s/w within the guest OS is one approach (and adopted widely) and more VM-centric enterprise solutions such as &lt;a href="http://www.vmware.com/products/vi/consolidated_backup.html" target="_blank"&gt;VMware's own VCB&lt;/a&gt; (VMWare Consolidated Backup) are also well suited but only available for VMware ESX.&lt;/p&gt; &lt;p&gt;Where does that leave us if we run VMware Workstation and want to back up the entire VM Guest 'image'? The easiest manual way of doing this is by selecting 'suspend' in VMware Workstation for the relevant guest, copy the VM files to another drive&amp;nbsp; (.vmx, .vmdk etc) and restart the VM. Easy. The con of this, of course, is that you are bringing down your VM for a short period but for most situations it does the job and has the advantage of being very easy to get the VM started again in a DR situation (i.e. simply take the backed up VM files and fire them up on a new host).&lt;/p&gt; &lt;p&gt;So how can we use the above 'suspend and resume' approach but automate it so it does this nightly for example? The command line comes to your rescue :-)&lt;/p&gt; &lt;p&gt;Before you start, ensure your relevant VM is not open on the desktop through the VMWare Workstation GUI, as this locks the instance.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Starting a VM instance from the command line&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Use &lt;strong&gt;vmrun &lt;/strong&gt;command with &lt;strong&gt;start&lt;/strong&gt; parameter, for example:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;"C:\Program Files\VMware\VMware Workstation\vmrun" start "F:\YourVMs\YourVMInstance\Windows Server 2003 Standard Edition.vmx"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Suspending a VM instance from the command line&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Use &lt;strong&gt;vmrun &lt;/strong&gt;command with &lt;strong&gt;suspend&lt;/strong&gt; parameter, for example:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;"C:\Program Files\VMware\VMware Workstation\vmrun" suspend "F:\YourVMs\YourVMInstance\Windows Server 2003 Standard Edition.vmx"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;(for more switches, simply type &lt;strong&gt;vmrun&lt;/strong&gt; with no parameters).&lt;/p&gt; &lt;h4&gt;Creating a backup script&lt;/h4&gt; &lt;p&gt;We've now got all we need to create a very simple windows cmd file, for example, create a VMBackup.cmd file and enter:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#008000"&gt;:: Suspend VM &lt;br&gt;&lt;/font&gt;"C:\Program Files\VMware\VMware Workstation\vmrun" suspend "F:\YourVMs\YourVMInstance\Windows Server 2003 Standard Edition.vmx"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;:: ROBOCOPY (or xcopy) the files somewhere, pref a different box or network drive, for example &lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;Robocopy.exe F:\YourVMs\YourVMInstance\ G:\externaldrive\backuparea\VMBackups\ /e /np /eta /r:1 /w:1 /log:F:\VMScheduledBackups\Logs\YourVMInstance-BackupLog.txt&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#008000"&gt;:: restart the VM &lt;br&gt;&lt;/font&gt;"C:\Program Files\VMware\VMware Workstation\vmrun" start "F:\YourVMs\YourVMInstance\Windows Server 2003 Standard Edition.vmx"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;You can now schedule this cmd file to run as a windows scheduled task in the normal way.&amp;nbsp; I use both a daily and weekly backup regime.&lt;/p&gt; &lt;p&gt;This is obviously a very simple backup approach and it does not alert backup failures etc (you've just got your trusty logs!) but for non-critical sandbox type environments it does the job nicely. &lt;/p&gt; &lt;p&gt;Clarkey&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2377893250047378992?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2377893250047378992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2377893250047378992' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2377893250047378992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2377893250047378992'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/07/backing-up-vmware-workstation-vms.html' title='Backing up VMware Workstation VMs'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2637467800478910174</id><published>2008-03-13T09:04:00.001Z</published><updated>2008-03-13T09:06:19.187Z</updated><title type='text'>Post Mix 08</title><content type='html'>&lt;p&gt;Got back from &lt;a href="http://www.visitmix.com/2008/" target="_blank"&gt;Mix 08&lt;/a&gt; (Las Vegas) on Monday. Overall, a great conference - all of the sessions I attended were (on the whole) above average, both in terms of content and delivery. The venue (Venetian Hotel) was cooool and oozed class. The delegates were enthusiastic and knowledgeable, and keen to learn and chat. You could say a pleasure to 'mix' with then, ugh! The jet-lag was a pain, and I really suffered for the first few days, but I cannot blame the organisers for that ;-)&lt;/p&gt; &lt;p&gt;Organisation of the conference was good - all sessions started/finished promptly and rooms were nice with excellent large 'hi def' screens and audio in the main keynote area (the best I've seen/heard at such a conf). Some rooms were overcrowded but this is often a problem with multi-track events like these. &lt;/p&gt; &lt;p&gt;There were a few oddities though, regarding organisation. For example, in the conference suite areas, large 'bouncers' were present on door entrances/exits/top of stairways etc whom acted as if they were manning a nightclub... "your names not down, you're not coming in" stylee. Sorry guys but this is a conference not some downtime bar!&lt;/p&gt; &lt;p&gt;Secondly, the delegate bags were poor. Made from what I can only describe as white Tarpaulin, the bags felt cheap and to be honest... 'a bit gay'. Man-bags were to be seen everywhere. I couldn't bring myself to wear mine! &lt;/p&gt; &lt;p&gt;Finally, the organisers had chosen to put all session summaries on the web (fine, makes sense) but did not put session summary printouts in the delegate pack (only a card 'title and time only' jobby) - not ideal. After virtually every session, delegates (me included) rushed to the PC area to look up the descriptions of their next session (the online session builder is fine if you plan ahead, but I, like most, didn't). I'm all for technology but last-minute-printed, paper-based short summaries, in this case, would have been more useful for day-to-day ref during the conference. Anyway... I'm rambling...&lt;/p&gt; &lt;h4&gt;Points of interest&lt;/h4&gt; &lt;p&gt;What were the interesting bits then? The keynotes in particular are worth a mention.&lt;/p&gt; &lt;p&gt;Ray Ozzie and Scott Guthrie's Keynote on Day 1 was impressive (although Ray's bits were a bit glossy and high level for me), summarising nicely what MS's plans are for the next 12 months or so. In particular they discussed plans for:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Personal device meshes  &lt;li&gt;Connected entertainment. License media once and use on 'any device'  &lt;li&gt;Connectivity productivity... Office live  &lt;li&gt;Office communication server  &lt;li&gt;Connected business enterprise.  &lt;li&gt;Connected development. XNA, Silverlight, VS, .Net, WPF  &lt;li&gt;IIS7 - "probably the most significant web server for MS to date"  &lt;li&gt;IE 8 seen for the first time at the conf (more on that later) . Beta 1 now avail for download.  &lt;li&gt;Silverlight 2.0 - gaining popularity, e.g. vs 1.0 currently receiving 1.5 million downloads per day. vs 2.0 beta 1 now available. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The final item, Silverlight, is worth more discussion. Vs 2.0 is very significant for MS. It bundles a cut down version of .Net which can run in the browser opening up a whole breed of RIA (Rich Interface Applications) on the web. We saw a number of fairly impressive demos, including:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Hard Rock Cafe Memorabilia site - Silverlight is used to allow users to browse and zoom into various famous artifacts (uses DeepZoom - the follow up to Seadragon). You can see this for yourself at &lt;a href="http://memorabilia.hardrock.com"&gt;http://memorabilia.hardrock.com&lt;/a&gt;. Go to the site, install Silverlight (if you've not got this already you will be prompted), and you will be able to browse and zoom into the impressive music memorabilia collection. To give you an idea of what is involved, one of the guitar images on the site was created using "57 stitched high quality SLR photos" in order to give the necessary detail when zoomed to the max.  &lt;li&gt;Beijing Olympics 2008 site by NBC. They intend to put some 2200 hours of high quality video on the web. Users will be able to replay live footage. The demo was slick and certainly showed off Silverlight's strengths for handling media... but hey, the videos were running locally so I'd expect the quality to be good! I will be very interested (and surprised) if the final live site is as impressive. Surely bandwidth limitations will kick in as the millions of visitors surf to watch their heroes in action. I just hope graceful degradation is built in... Silverlight's 'progressive download' adaptive streaming and the new IIS Media Pack bit rate throttling can only do so much...  &lt;li&gt;AstonMartin.com. Able to wonder around the gorgeous DBS and zoom in via 'deep zoom' etc. You can even zoom inside and view the stitching on the&amp;nbsp; leather. New site does not appear to be live yet (current live version is flash)  &lt;li&gt;AOL Email Web Client. Current version uses DHTML and AJAX, but new version will be full blown Silverlight utilising isolated storage and skinning features etc. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The Keynote on day 2 by Steve Ballmer and &lt;a href="http://en.wikipedia.org/wiki/Guy_Kawasaki" target="_blank"&gt;Guy Kawasiki&lt;/a&gt; was cool. Guy (who goes back a long way with Steve) threw some good questions at SB which he answered in his usual enthusiastic and entertaining way. After listening to the banter for an hour or so, one thing I took away was that Steve genuinely has a passion for Microsoft and its success. It was a pleasure to listen to someone who clearly loves his company (and the millions it makes him every year no doubt!). I was impressed.&lt;/p&gt; &lt;p&gt;Other sessions I attended which are worth mentioning:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;Crossing the Usability Chasm - Advanced and Adaptive User Interfaces&lt;/em&gt;. Gil Hupert-Graff, Yochay Kiriaty. Tackled UIs that can adapt to the user (e.g. beginner vs advanced etc). Having an HCI/usability background I found little to learn in this session (disappointing) but for those new to the 'adaptive UI' idea, there were many points to pick up on. Changing the UI at runtime based on the user's experience and usage patterns is an interesting area.  &lt;li&gt;&lt;em&gt;Building Rich Internet Applications Using Microsoft Silverlight 2, Part 1 and 2&lt;/em&gt;. Mike Harsh, Joe Stegman. Two sessions on using VS to build Silverlight apps utilising XAML, Web Services and LINQ. Very well done.  &lt;li&gt;&lt;em&gt;Developing ASP.NET Applications Using the Model View Controller (MVC) Pattern&lt;/em&gt;. Scott Hanselman. Excellent presentation by Scott whom I have a lot of respect for. Covered the MVC (front controller) pattern&amp;nbsp; and how it is implemented in ASP.Net MVC. Also highlighted the pros/cons of the approach, pointing out that it is not for everyone. The page control model (especially for complex web forms) is still a contender but the merits of MVC, e.g. aiding TDD (test driven development etc) and meaningful URIs etc, cannot be overlooked.  &lt;li&gt;&lt;em&gt;Cross-Browser Layout with Internet Explorer 8&lt;/em&gt;. Scott Dickens. One of two sessions I attended on IE8, this was the better of the two. Scott covered in detail the new layout engine of IE 8. The MSHTML engine has been re-written to be fully standards compliant but now has two code paths (one for old IE 7 compatibility and another for full IE 8 standards mode).  &lt;li&gt;&lt;em&gt;Hard Rock: Behind the Music with Deep Zoom&lt;/em&gt;. Scott Stanfield. Case study style session discussing how the site was built (see earlier re hard rock memorabilia site).  &lt;li&gt;&lt;em&gt;Lighting Up Your AJAX Applications with Silverlight&lt;/em&gt;. Stefan Schackow, Chung Webster. Integrating Silverlight and AJAX. Included background processing and IsolatedStorage. Use of the new History object for back button support in AJAX (hooray!).  &lt;li&gt;&lt;em&gt;Designing Next Generation User Interface Experiences with Microsoft Expression Blend and Windows Presentation Foundation&lt;/em&gt;. Johnathan Lansing, Stuart Mayhew, Nicholas Petterssen. The guys from Electric Rain gave a detailed account of their WPF application 'StandOut' (actually presented using the tool). If you are bored with powerpoint, maybe the StandOut app is for you. A true whizzy multimedia experience. When asked how long the project took though.. "ermm... just the 5 years". RAD at its best then! To be fair, this was "from initial idea to finished product" - nevertheless seems a difficult one to justify from a ROI standpoint - depends on your measurements of success I guess.  &lt;li&gt;&lt;em&gt;Sandbox area: Surface&lt;/em&gt;. I saw a fascinating demo of Microsoft Surface in action (I also tried it out for myself). Demo consisted of what was essentially 'a glass coffee table' with a touch screen interface. The software demonstrated was a restaurant menu. See an &lt;a href="http://uk.youtube.com/watch?v=Id43juZ3_o0" target="_blank"&gt;earlier youtube Surface demo here&lt;/a&gt;. Apparently T-Mobile have signed up to use the technology 'in production'. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;IE 8 was mentioned a number of times in various sessions and looks like it is worth waiting for, bits of interest are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Standards and quirks modes. IE 8 will by default be 'very' standards compliant (to the point that many older sites will no doubt break). CSS 2.1 standards based. HTML 5. IE 8 will pass the &lt;a href="http://www.webstandards.org/action/acid2/" target="_blank"&gt;Acid2 test&lt;/a&gt;.  &lt;li&gt;IE 8 Web Slices - allows a user to subscribe to 'areas of a page' which then appears as a link on the user's IE 8 toolbar. If that page section updates, the link will highlight to indicate it has been modified. The author of the page decides where the slice begins and ends using markup.  &lt;li&gt;IE 8 Activities. Via XML markup (see OpenService Architecture), rather than just having simple URI links to other pages, you can now add 'in page menus of activities' such as 'buy now on Amazon'.  &lt;li&gt;Developer tools now built-in (bit like the IE developer toolbar you could install in IE 6/7). This offers JS debugging and CSS rules/hierarchies. For example you can highlight an element on the page and see which CSS rule is taking priority.  &lt;li&gt;'IE 7 Quirks' mode option currently has its own dedicated button on the toolbar (for those sites that refuse to work with IE 8 then!) &lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;p&gt;So overall, a fab conference. In case you are interested they have already set the date for next year's &lt;strong&gt;Mix 09, March 18 to 20th, 2009&lt;/strong&gt;&amp;nbsp; ;-)&lt;/p&gt; &lt;p&gt;Clarkey&lt;/p&gt; &lt;h4&gt;Useful Links:&lt;/h4&gt; &lt;p&gt;&lt;a href="http://sessions.visitmix.com/" target="_blank"&gt;Mix 2008 Sessions all online (videos)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm" target="_blank"&gt;Download IE 8 Beta 1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0" target="_blank"&gt;Download Silverlight 2.0 Beta 1&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2637467800478910174?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2637467800478910174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2637467800478910174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2637467800478910174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2637467800478910174'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/03/post-mix-08.html' title='Post Mix 08'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6107628508090023059</id><published>2008-02-22T18:41:00.001Z</published><updated>2008-02-22T18:41:59.343Z</updated><title type='text'>Mix 2008... just over a week to go</title><content type='html'>&lt;p&gt;&lt;a href="http://www.visitmix.com/" target="_blank"&gt;Mix 2008&lt;/a&gt; is less than two weeks away. I missed it last year and reading the post event blogs etc, kicked myself for not attending. This year I made no such mistake and registered early to avoid the inevitable &lt;a href="http://www.visitmix.com/blogs/News/491/" target="_blank"&gt;sell out&lt;/a&gt; (last year various Microsoft employees themselves were not allowed past the entrance, having failed to register in time... "your name's not down you're not coming in"...).&lt;/p&gt; &lt;p&gt;Choosing which conference(s) to attend each year is often a difficult call. I usually allocate myself one "attend only" conference plus a "speak at" conf if I have something useful (rare I know) to talk about. This is separate from the single day seminar stuff we often attend during the year. One conference a year seems reasonable from a budget, time, family commitments, ROI etc point of view. &lt;/p&gt; &lt;p&gt;So, if you are attending only one, which one should it be? I try to vary it. Obvious candidates for me are the US based &lt;a href="http://msdn2.microsoft.com/en-us/events/bb288534.aspx" target="_blank"&gt;PDC&lt;/a&gt; and &lt;a href="http://www.microsoft.com/events/teched2008/default.mspx" target="_blank"&gt;Tech·Ed&lt;/a&gt; along with the UK based &lt;a href="http://www.spaconference.org/spa2008/index.php" target="_blank"&gt;SPA&lt;/a&gt;. SPA I've been to before a number of times, with PDC and Tech·Ed on my "must go there sometime if I can justify it" list.&lt;/p&gt; &lt;p&gt;This year, Mix was at the top of the list. When choosing, I often go out of my comfort zone to learn new stuff and being a day-to-day techy server-side kind of a guy rather than a whizzy flash, silverlight, wpf type of soul, Mix fits the bill nicely.&amp;nbsp; Mix will be an ideal opportunity to dedicate some time to acquiring new techniques and technologies (albeit at surface level), being a Web conference biased toward creativity, media, design,[hopefully] usability and rich client-side UIs - I'm especially interested in seeing where "we are up to" with Silverlight 2, WPF, .Net 3.5, Expression Blend, XAML, Web 2 (i dislike that phrase) and generally where the Web interface is heading (&lt;a href="https://content.visitmix.com/public/sessions.aspx" target="_blank"&gt;see the full session list here&lt;/a&gt;, which includes keynotes by CEO Steve Ballmer and .Net Framework team founder Scott Guthrie). I'm also especially interested in chatting with fellow delegates to see what they are up to.&lt;/p&gt; &lt;p&gt;The conference looks set to be entertaining too, with some non-developer focused events such as:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Tue eve: &lt;a href="http://www.imdb.com/title/tt0923752/" target="_blank"&gt;The King of Kong: A Fistful of Quarters&lt;/a&gt; (movie screening and Q&amp;amp;A with Steve Weibe, one of the stars of the movie, Ed Cunningham the producer, and &lt;a href="http://www.twingalaxies.com/" target="_blank"&gt;Twin Galaxies&lt;/a&gt; referee Walter Day).  &lt;li&gt;Wed eve: Party at &lt;a href="http://www.taolasvegas.com/tao.html" target="_blank"&gt;club TAO&lt;/a&gt;  &lt;li&gt;Thu eve: RockBand tournament, on a real stage, massive sound system and huge plasmas!&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Glitzy Vegas is of course another attractor...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6107628508090023059?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6107628508090023059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6107628508090023059' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6107628508090023059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6107628508090023059'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/02/mix-2008-just-over-week-to-go.html' title='Mix 2008... just over a week to go'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1374095051683864992</id><published>2008-01-15T09:30:00.001Z</published><updated>2008-01-15T16:46:52.408Z</updated><title type='text'>Using ExcelWriter on 64bit Kit</title><content type='html'>&lt;p&gt;I've recently been migrating some web apps to 64bit Windows 2003 Server. So far all testing has gone pretty well, with most pure ASP.Net apps running on the kit with little or no code changes.&lt;/p&gt; &lt;p&gt;One issue you may have though, is if your app uses any COM interop with old 32bit components. Earlier &lt;a href="http://officewriter.softartisans.com/" target="_blank"&gt;ExcelWriter&lt;/a&gt; versions used exactly this approach, providing dot net wrapper classes for what were essentially 32bit COM objects on the box. You will find these will no longer work on the new kit (unless you use &lt;a href="http://en.wikipedia.org/wiki/WOW64" target="_blank"&gt;WOW64&lt;/a&gt; emulation) so the key is to ensure you now use the "pure dot net" versions of ExcelWriter.&lt;/p&gt; &lt;p&gt;Conversion is quite straight forward. Here's some old "dot net wrapped" 32bit only code:&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;SAExcelApplicationDotNet Xlw = new SAExcelApplicationDotNet();&amp;nbsp; &lt;font color="#008000"&gt;// old 32bit wrapper ExcelApplication&lt;/font&gt;&lt;br&gt;SoftArtisans.ExcelWriter.SAWorksheet Sheet = Xlw.Worksheets[1];&lt;br&gt;Sheet.Cells[1, 1].Value = 20;&lt;br&gt;Xlw.Save(@"test.xls", SoftArtisans.ExcelWriter.SASaveMethod.saOpenInPlace, SoftArtisans.ExcelWriter.SAFileFormat.saFileFormatExcel2000);&lt;/font&gt;  &lt;p&gt;The above code also requires ASPCompat=True in your aspx page to ensure single-threaded apartment (STA) mode is used for that page's thread. Not ideal for web apps, see &lt;a href="http://msdn2.microsoft.com/en-us/library/zwk9h2kb.aspx" target="_blank"&gt;COM Compatibility Page&lt;/a&gt; for full run down.  &lt;p&gt;Anyhow, here's the pure dot net version:  &lt;p&gt;&lt;font color="#0000ff"&gt;ExcelApplication Xlw = new ExcelApplication();&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;// new pure dot net ExcelApplication&lt;/font&gt;&lt;br&gt;Workbook WB = Xlw.Create();&lt;br&gt;Worksheet WS = WB.Worksheets[0];&lt;br&gt;WS.Cells[1, 1].Value = 20;&lt;br&gt;Xlw.Save(WB, Page.Response, "test.xls", false);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Easy... even I can follow the above!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1374095051683864992?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1374095051683864992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1374095051683864992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1374095051683864992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1374095051683864992'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2008/01/using-excelwriter-on-64bit-kit.html' title='Using ExcelWriter on 64bit Kit'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1551393354693749097</id><published>2007-11-06T16:53:00.001Z</published><updated>2007-11-06T16:53:11.883Z</updated><title type='text'>MS Search Server 2008</title><content type='html'>&lt;p&gt;Well it's been a long time coming but it looks as if Microsoft have decided to release a standalone&amp;nbsp;'crawler-based&amp;nbsp;search engine' (based on its SharePoint offering) set to replace its rather dated (albeit free) file-based index server in the first half of 2008. &lt;/p&gt; &lt;p&gt;There will be&amp;nbsp;&lt;a href="http://www.microsoft.com/enterprisesearch/products.aspx" target="_blank"&gt;two editions&lt;/a&gt; plus the full blown Office SharePoint Server.&lt;/p&gt; &lt;p&gt;It is worth investigating&amp;nbsp;the &lt;a href="http://www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/default.aspx" target="_blank"&gt;free express edition&lt;/a&gt; at least, which looks like it&amp;nbsp;may suffice for smaller projects... you can &lt;a href="http://www.microsoft.com/enterprisesearch/serverproducts/searchserverexpress/download.aspx" target="_blank"&gt;get the RC version here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1551393354693749097?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1551393354693749097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1551393354693749097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1551393354693749097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1551393354693749097'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/11/ms-search-server-2008.html' title='MS Search Server 2008'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-3547070349070285631</id><published>2007-11-06T09:45:00.001Z</published><updated>2007-11-06T09:45:03.794Z</updated><title type='text'>VS 2008 released end of November</title><content type='html'>&lt;p&gt;Looks like we all&amp;nbsp;need&amp;nbsp;to get those licenses organised... Visual Studio&amp;nbsp;2008 (aka 'Orcas' and .Net 3.5) is due end of this month:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.microsoft.com/presspass/press/2007/nov07/11-05TechEdDevelopersPR.mspx" href="http://www.microsoft.com/presspass/press/2007/nov07/11-05TechEdDevelopersPR.mspx"&gt;http://www.microsoft.com/presspass/press/2007/nov07/11-05TechEdDevelopersPR.mspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-3547070349070285631?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/3547070349070285631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=3547070349070285631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3547070349070285631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3547070349070285631'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/11/vs-2008-released-end-of-november.html' title='VS 2008 released end of November'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4020501112040125574</id><published>2007-11-02T06:29:00.001Z</published><updated>2007-11-02T06:29:04.539Z</updated><title type='text'>Book on ODP.Net</title><content type='html'>&lt;p&gt;Do a book search on Amazon for most .Net topics and you will usually be rewarded with a wealth of doorstops to choose from. Enter the search term “ODP.Net” though and you get erm… one result. This I find a little surprising, especially as, according to Oracle at least, ODP.Net (&lt;a href="http://www.oracle.com/technology/tech/windows/odpnet/index.html" target="_blank"&gt;Oracle’s Data Provider for .Net&lt;/a&gt;) offers [probably] the best performance and richness for accessing Oracle back-ends. I've used ODP.Net myself on some fairly large&amp;nbsp;scale developments and find the provider reliable, functionally more rich than Microsoft's offering (see a &lt;a href="http://msdn2.microsoft.com/en-us/library/ms971518.aspx" target="_blank"&gt;comparison article on MSDN&lt;/a&gt;, albeit now a little dated) and has excellent performance.&lt;/p&gt; &lt;p&gt;Anyhow,&amp;nbsp;the aforementioned Amazon "only resulting" book (entitled &lt;a href="http://www.amazon.co.uk/ODP-NET-Developers-Guide-Database-Development/dp/1847191967/ref=sr_1_1/203-5280333-2923968?ie=UTF8&amp;amp;s=books&amp;amp;qid=1193932744&amp;amp;sr=1-1" target="_blank"&gt;ODP.NET Developer's Guide&lt;/a&gt;) recently landed on my doormat from the publisher &lt;a href="http://www.packtpub.com/" target="_blank"&gt;PackT&lt;/a&gt; who contacted me to take a peruse at it. I've not had chance to look at it in detail yet but here's a chapter summary in case you are looking for such a volume...&lt;/p&gt; &lt;h3&gt;The Chapters&lt;/h3&gt; &lt;p&gt;Summary of the content:  &lt;p&gt;Chapter 1: introduces the concept of Oracle Database Extensions for .NET and provides information about Oracle Developer tools for Visual Studio.  &lt;p&gt;Chapter 2: introduces the Provider Independent Model in ADO.NET 2.0 and how it relates to Oracle.  &lt;p&gt;Chapter 3: shows you several methods to retrieve data from an Oracle database. You will work with the core ODP.NET classes like OracleCommand, OracleDataReader, OracleDataAdapter etc.  &lt;p&gt;Chapter 4: is all about CRUD operations but also includes caching, array binding, offline data, transactions and error handling  &lt;p&gt;Chapter 5: PL/SQL stored procedures and executing routines in PL/SQL packages. Array parameters&amp;nbsp;and ref cursors are also covered.  &lt;p&gt;Chapter 6: dedicated to dealing with Large objects in Oracle. This chapter illustrates concepts, configurations, and programming for BFILE, BLOB, and CLOB (or NCLOB) in conjunction with ODP.NET.  &lt;p&gt;Chapter 7: Oracle XML DB. It provides information about generating XML from existing rows in tables, manipulating rows in a table using XML, and working with native XML in the Oracle database.  &lt;p&gt;Chapter 8:&amp;nbsp;a bit of a mix this one. Covers database change notifications, Asynchronous Application development, Web Application development, Web Reporting (including grouping, sub-totals, charts etc.), Object-Oriented Development with ODP.NET and ASP.NET, XML Web Services development using ODP.NET and Smart Device Application development (for clients like the Pocket PC etc.).  &lt;p&gt;Chapter 9: introduces you to &lt;a href="http://www.oracle.com/technology/tech/dotnet/tools/index.html" target="_blank"&gt;Oracle Developer Tools&lt;/a&gt; (ODT) for Visual Studio 2005.  &lt;p&gt;All .Net code examples are in VB.Net.  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4020501112040125574?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4020501112040125574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4020501112040125574' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4020501112040125574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4020501112040125574'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/11/book-on-odpnet.html' title='Book on ODP.Net'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6416950121294149792</id><published>2007-10-02T08:30:00.001+01:00</published><updated>2007-10-02T08:30:21.074+01:00</updated><title type='text'>Upgrading from Visual SourceSafe 6d to VSS 2005</title><content type='html'>&lt;p&gt;We've recently just upgraded from Visual SourceSafe&amp;nbsp;6d to 2005. The process was (surprisingly) painless.&lt;/p&gt; &lt;p&gt;This is worth a read before you start: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms181049(VS.80).aspx" target="_blank"&gt;MSDN Visual SourceSafe Install Documentation&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;Here's the steps I went through:&lt;/p&gt; &lt;p&gt;Server:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;created a Virtual Machine (VM) running windows 2003 to host the VSS 2005 server. We decided to use a VM this time to host the service, thus aiding portability and backups/DR.  &lt;li&gt;Connected to the&amp;nbsp;VSS 2005 iso install image file as a mapped drive (via VMWare's excellent "CD Rom use iso image" option).  &lt;li&gt;Installed VSS 2005 (I chose full install).  &lt;li&gt;Got all developers to "check in" their code in the old 6d database.  &lt;li&gt;Copied over the VSS 6d database files to the new VM (I used robocopy as I dislike explorer's "sorry I've had to stop copying EVERYTHING because one file was in use" etc...). Copying them across&amp;nbsp;is OK because&amp;nbsp;the file structures are compatible which makes migration easier.&amp;nbsp; TIP: allow plenty of time for the copy to take place if you have a large database.  &lt;li&gt;Give relevant Windows user(s)/groups modify access to the database dir (ntfs permissions).  &lt;li&gt;Opening up Visual SourceSafe, gives a prompt for database the location. Browse to the dir where you copied your database to.&amp;nbsp;All done. VSS Users come across too with access rights.  &lt;li&gt;I also then ran VSS analyze (you are prompted first time in) to pick up any corrupt or missing files in the database.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Client:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Uninstall VSS 6d via add/remove programs. (if you don't, I found that 2005 got installed separately and left 6d there too, despite what some documentation says).  &lt;li&gt;Rebooted  &lt;li&gt;Install VSS 2005 (choose custom and untick&amp;nbsp;server components).&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Initial impressions? Firstly,&amp;nbsp;here's the relevant "&lt;strong&gt;what's new in VSS 2005&lt;/strong&gt;":&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Access via IIS (via web services). Mainly useful for off site working. Not tried it yet.  &lt;li&gt;LAN booster service (Wow.. anything with "boost" in it&amp;nbsp;I want!). Once enabled you will see a new service SSService.exe appear in service list. Its job... to compress files for transfer, check for newer files, handle chatting to client&amp;nbsp;blah d bla bla. Note this only works&amp;nbsp;with the Visual Studio (VS) plug in.  &lt;li&gt;Improved VS Plug in. For example, to open a new project from source safe you now simply select File/open project/ and "Sourcesafe (LAN)" appears as an option in the dialog. Also, files are now retrieved asynchronously&amp;nbsp;(background thread) so that annoying "lockup while fetching files" should be a thing of the past.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;So far my feeling is that VS integration is better. File access seems quicker (but I doubt by the "3-5 times faster" quoted by Microsoft). Less VS hanging during "get latest" type activities and generally more responsive. Apart from that you are unlikely to notice any major changes.&lt;/p&gt; &lt;h3&gt;What about VS 2003 Support?&lt;/h3&gt; &lt;p&gt;For those lucky developers supporting .Net 1.1 projects, you still need trusty VS 2003 so it was a relief when I fired VS03&amp;nbsp;up and the&amp;nbsp;VSS add in worked fine. I successfully fetched an ASP.Net 1.1 project, checked out some files and all seemed normal. Performance was back to VSS 6d standards though.&lt;/p&gt; &lt;p&gt;If I come across any issues I'll post them here.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6416950121294149792?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6416950121294149792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6416950121294149792' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6416950121294149792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6416950121294149792'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/10/upgrading-from-visual-sourcesafe-6d-to.html' title='Upgrading from Visual SourceSafe 6d to VSS 2005'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6808804989770378275</id><published>2007-09-26T15:45:00.001+01:00</published><updated>2007-09-26T15:45:10.691+01:00</updated><title type='text'>Passing lists to SQL server stored procedures</title><content type='html'>&lt;p&gt;One much needed feature missing from SQL Server 2005 is the ability to pass "a list of values" from .Net as a parameter to a T-SQL based stored procedure. Loads of scenarios spring to mind but&amp;nbsp;here's a couple of obvious ones:&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;INSERT a list of values into the database in one "chunky" call (e.g. some IDs from a CheckBoxList)  &lt;li&gt;SELECT rows where IDs are IN (&amp;lt;list of IDs&amp;gt;)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;You get the idea. Taking the INSERT as an example, there are various approaches you can adopt to achieve the&amp;nbsp;desired result:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Use dynamic SQL! I'm not even going to talk about this as this blog entry is on stored procs and dynamic SQL is rarely the ideal solution for obvious reasons ;-)  &lt;li&gt;Make a stored proc call for each ID to insert. This is the most common approach I see in various projects, mainly because it is the easiest to implement. The drawback of course is if I were to insert 60 values, it would result in 60 "chatty" calls to the database. Ummm... me hates chatty repetitive db calls plz.  &lt;li&gt;Pass comma separated values via a VARCHAR (or similar) parameter. This works fine but has messy "string splitting" in the stored procedure to extract the IDs and then build the SQL statement in the procedure itself.&amp;nbsp;Prone to SQL injection and not the best performance.  &lt;li&gt;Pass the list as an XML parameter. This is nicer and is my preferred option (see below)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;There are other approaches too (see a detailed description of &lt;a href="http://www.sommarskog.se/arrays-in-sql-2005.html" target="_blank"&gt;arrays and lists in sql server by Erland Sommarskog&lt;/a&gt;).&lt;/p&gt; &lt;h3&gt;Using XML&lt;/h3&gt; &lt;p&gt;Using XML for "list passing" has a number of benefits, in particular the ability to pass lists of more "complex types" rather than&amp;nbsp;just&amp;nbsp;single values.&amp;nbsp;&amp;nbsp;Here's a stored procedure I'm using in a current project (I've stripped out irrelevant code) which takes Study data and inserts it in "one set based query".&lt;/p&gt; &lt;p&gt;CREATE&amp;nbsp;PROCEDURE [dbo].[Study_SaveData](&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @subjectStudyID int,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @entryAB char(1),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @studyDataXML XML&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br&gt;AS&lt;br&gt;BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO StudyData (subjectStudyID, entryAB, studyParID, tpID, dataValue)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; @subjectStudyID AS SubjectStudyID,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @entryAB AS EntryAB,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StudyTab.StudyCol.value('StudyParID[1]','int') AS StudyParID, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StudyTab.StudyCol.value('TPID[1]','int') AS TPID, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StudyTab.StudyCol.value('DataValue[1]','float') AS DataValue &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM @studyDataXML.nodes('//StudyDataList/StudyData') AS StudyTab(StudyCol)&lt;br&gt;END  &lt;p&gt;To call this in T-SQL, you&amp;nbsp;would&amp;nbsp;have something&amp;nbsp;like this:  &lt;p&gt;EXEC&amp;nbsp;&amp;nbsp;&amp;nbsp; [dbo].[Study_SaveData]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @subjectStudyID = 34,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @entryAB = 'A',&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @studyDataXML = '&amp;lt;StudyDataList&amp;gt;&amp;lt;StudyData&amp;gt;&amp;lt;StudyParID&amp;gt;931&amp;lt;/StudyParID&amp;gt;&amp;lt;TPID&amp;gt;2732&amp;lt;/TPID&amp;gt;&amp;lt;DataValue&amp;gt;1&amp;lt;/DataValue&amp;gt;&amp;lt;/StudyData&amp;gt;&lt;br&gt;&amp;lt;StudyData&amp;gt;&amp;lt;StudyParID&amp;gt;931&amp;lt;/StudyParID&amp;gt;&amp;lt;TPID&amp;gt;2733&amp;lt;/TPID&amp;gt;&amp;lt;DataValue&amp;gt;2&amp;lt;/DataValue&amp;gt;&amp;lt;/StudyData&amp;gt;&lt;br&gt;&amp;lt;StudyData&amp;gt;&amp;lt;StudyParID&amp;gt;931&amp;lt;/StudyParID&amp;gt;&amp;lt;TPID&amp;gt;2734&amp;lt;/TPID&amp;gt;&amp;lt;DataValue&amp;gt;3&amp;lt;/DataValue&amp;gt;&amp;lt;/StudyData&amp;gt;&lt;br&gt;&amp;lt;/StudyDataList&amp;gt;'  &lt;p&gt;In your application's DAL layer, your C# calling code could be (again code simplified for brevity):&lt;/p&gt; &lt;p&gt;public static void SaveData(StudyData studyData)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBHelper DBH = new DBHelper();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBH.AddParameter("@subjectStudyID", studyData.SubjectStudyID);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBH.AddParameter("@entryAB", studyData.EntryAB);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pass all data values in one go to avoid 'orrible chatty round trips ;-)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBH.AddParameter("@studyDataXML", GetStudyDataXMLString(studyData));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBH.ExecuteNonQuery("Study_SaveData", CommandType.StoredProcedure);&lt;br&gt;&amp;nbsp;}  &lt;p&gt;which calls the method below to translate the DataValueList property (utilising generics) into an XML string:  &lt;p&gt;&amp;nbsp;private static string GetStudyDataXMLString(StudyData studyData)&lt;br&gt;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder XMLString = new StringBuilder();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;StudyDataList&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (KeyValuePair&amp;lt;StudyData.StudyDataKey, double?&amp;gt; SDKV in studyData.DataValueList)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;StudyData&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;StudyParID&amp;gt;{0}&amp;lt;/StudyParID&amp;gt;", SDKV.Key.StudyParID);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;TPID&amp;gt;{0}&amp;lt;/TPID&amp;gt;", SDKV.Key.TpID);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;DataValue&amp;gt;{0}&amp;lt;/DataValue&amp;gt;", SDKV.Value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;/StudyData&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XMLString.AppendFormat("&amp;lt;/StudyDataList&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return XMLString.ToString();&lt;br&gt;&amp;nbsp;}  &lt;p&gt;You get the idea. studyData.DataValueList contains the "list data" to be passed in and inserted into the database. I used StringBuilder for the xml concatenation as in this case I think it fits the bill but purists might prefer an XmlTextWriter approach.  &lt;p&gt;This will ding dang do then! I don't think the code needs detailed explanation, but comments and queries welcome.  &lt;p&gt;In summary, it performs very well and is adaptable for various lists of objects and more complex structures.  &lt;p&gt;Clarkey  &lt;h3&gt;Useful Refs&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.sommarskog.se/arrays-in-sql-2005.html" target="_blank"&gt;Arrays and lists in sql server by Erland Sommarskog&lt;/a&gt;  &lt;li&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2007/02/16/passing-lists-to-sql-server-2005-with-xml-parameters.aspx" target="_blank"&gt;Jon Galloway's XML param passing article&lt;/a&gt; (a lot of my initial code was based on snippets from&amp;nbsp;this)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6808804989770378275?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6808804989770378275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6808804989770378275' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6808804989770378275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6808804989770378275'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/09/passing-lists-to-sql-server-stored.html' title='Passing lists to SQL server stored procedures'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-3005094429057914588</id><published>2007-09-19T08:27:00.001+01:00</published><updated>2007-09-19T08:32:04.878+01:00</updated><title type='text'>IE Developer Toolbar released</title><content type='html'>&lt;p&gt;I've talked about the IE developer toolbar before,&amp;nbsp;but at that time&amp;nbsp;it was&amp;nbsp;beta.&lt;/p&gt; &lt;p&gt;MS have now (I say now, it was actually in May but hey I had a baby recently so forgive the delay) released an official version for download so you can feel confident in installing it on your work PC (yeh right). Looks very much like beta 3 to me but apparently there are various bug fixes and it is 'more reliable'. Also Vista compatible.&lt;/p&gt; &lt;p&gt;Download it here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt; &lt;p&gt;For me, the top features are: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;browser resize to fixed resolutions (without bookmarklets)  &lt;li&gt;html, css&amp;nbsp;validation  &lt;li&gt;dom tree views  &lt;li&gt;see CSS styles 'firing" on elements  &lt;li&gt;View partial/element source  &lt;li&gt;easily kill cookies/session, cache  &lt;li&gt;color picker&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Worth a look.&lt;/p&gt; &lt;p&gt;Here's a &lt;a href="http://blogs.msdn.com/ie/archive/2007/01/09/ie-developer-toolbar-beta-3-now-available.aspx"&gt;good overview (albeit of beta 3) on MSDN&lt;/a&gt;&amp;nbsp;if you've not seen it before.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-3005094429057914588?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/3005094429057914588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=3005094429057914588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3005094429057914588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3005094429057914588'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/09/ie-developer-toolbar-released.html' title='IE Developer Toolbar released'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6303859124328041256</id><published>2007-08-16T16:44:00.001+01:00</published><updated>2007-08-16T16:44:53.451+01:00</updated><title type='text'>N-Tier development revisited</title><content type='html'>&lt;p&gt;Discussion forums on the web are full of .Net&amp;nbsp;N-tier questions, especially on approaches for achieving loosely coupled layers and lightweight data passing mechanisms. Is it ok to pass a DataSet or DataTable? Should I use Custom classes? This article by Imar Spaanjaars is one of the better ones I have seen on the topic:&lt;/p&gt; &lt;p&gt;&lt;a title="http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416" href="http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416"&gt;http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416&lt;/a&gt;&lt;/p&gt; &lt;p&gt;He describes the pros/cons of the different approaches. He is a fan of pulling the "data only bit" out of your business layer objects&amp;nbsp;and putting them into separate "business objects" (only containing data). This aids passing of data between tiers and project referencing. &lt;/p&gt; &lt;p&gt;Question though -&amp;nbsp;does pulling the data out of your business layer objects go against pure OO principles? "An object should consist of the data and operations allowed on that data" etc. Abstract data types (ADTs), encapsulation etc&amp;nbsp;bla bla...&lt;/p&gt; &lt;p&gt;Also, I&amp;nbsp;don't like the BO (business object) terminology as it is used, as this implies more than just data... I'd prefer something like&amp;nbsp;CustomerBDO (business data object)&amp;nbsp;or even CustomerEntity.&amp;nbsp;You could then perhaps lose the "*Manager" suffix notation he has adopted for the business logic layer.&lt;/p&gt; &lt;p&gt;Regardless of these points though, I think custom classes&amp;nbsp;are the correct way forward for "passing data", and datatables etc should be saved for when the types of the results are dynamic, e.g.&amp;nbsp;"adhoc reporting" result sets.&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6303859124328041256?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6303859124328041256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6303859124328041256' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6303859124328041256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6303859124328041256'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/08/n-tier-development-revisited.html' title='N-Tier development revisited'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-3162762144630001744</id><published>2007-07-27T08:42:00.000+01:00</published><updated>2007-07-27T08:50:44.762+01:00</updated><title type='text'>Dell XPS M1710 – Vista Ultimate Upgrade</title><content type='html'>Further to my last post on Vista and my new Dell M1710 laptop.&lt;br /&gt;&lt;br /&gt;As I said before, it came with Home Premium on it. I chose Home Premium because it seemed the logical choice for what I do (see &lt;a href="http://www.microsoft.com/windows/products/windowsvista/editions/choose.mspx"&gt;Vista Editions&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;What the comparison chart does not tell you is that some useful software won’t run on Premium, for example I came to install &lt;a href="http://www.microsoft.com/windows/downloads/virtualpc/default.mspx"&gt;Virtual PC 2007&lt;/a&gt;, but check out system requirements and low and behold you need Vista Ultimate (despite it being Windows XP Prof compatible)! This is madness. Why should VPC need Ultimate Ed?&lt;br /&gt;&lt;br /&gt;Anyway, I needed the software so thought I would “simply upgrade” my Home Premium edition to Ultimate via the much advertised “Vista Windows Anytime Upgrade” facility. So I went online to the &lt;a href="http://www.microsoft.com/uk/windows/products/windowsvista/buyorupgrade/default.mspx"&gt;Windows Anytime Upgrade site&lt;/a&gt;, &lt;br /&gt;&lt;br /&gt;It indicated that I needed a windows anytime upgrade compatible Vista install disk, so I checked the Dell Vista DVD and… no official “windows anytime upgrade logo” on it. Daaarn. Would Dell really ship an install DVD that was not “upgrade” compliant?&lt;br /&gt;&lt;br /&gt;I went ahead and purchased the Ultimate upgrade online (which automatically downloads/installs a file “product key” ready for upgrading) but played safe and paid the extra £5 for a windows anytime upgrade DVD (posted out) and subsequently closed the windows upgrade. I was assured by a message that I could put the upgrade disc in anytime in the future.&lt;br /&gt;&lt;br /&gt;Not being very patient to wait for the DVD to arrive (I still could believe that Dell would not ship an upgrade compliant disk - digging around on the Net confirmed my thinking that all Vista DVDs come with all 6 editions on them), I put in the Dell Vista install disk and got the usual “Windows Vista – Install Now” blue/green screen… no mention of the upgrade though. Was it simply going to install Home Premium again? Aaargh! Did the Ultimate product key register correctly? I reluctantly clicked “install now” (still no mention of the Ultimate upgrade) and went through the install process. &lt;br /&gt;&lt;br /&gt;At the end of the install I rebooted and waited with great anticipation to see what had been installed – hooray, Ultimate was now on my machine! It had worked!&lt;br /&gt;&lt;br /&gt;So to summarise:&lt;br /&gt;&lt;br /&gt;- if you wish to upgrade a Dell M1710 from Home Premium to Ultimate, based on my experience, you do not need to buy a separate Windows Anytime Upgrade DVD (I take no responsibility if your system is different though!)&lt;br /&gt;- Despite the very poor installation wizard user feedback (come on Microsoft how did this get past your usability team?), have faith, your new edition is being installed despite what the user interface implies.&lt;br /&gt;&lt;br /&gt;Once upgraded, all worked fine except I had no sound (a common problem with upgrades). Reinstalling the latest sound card drivers from Dell gave no joy either. Uninstalling the drivers and then letting Vista itself install appropriate drivers fixed this though. All is now fine.&lt;br /&gt;&lt;br /&gt;Virtual PC 2007 now installs correctly and I can safely take a look at Visual Studio 2008 and .Net 3.5 ;-)&lt;br /&gt;&lt;br /&gt;Other Useful link: &lt;a href="http://www.microsoft.com/windows/products/windowsvista/buyorupgrade/windowsanytimeupgrade/faq.mspx"&gt;Windows Anytime Upgrade Installation Overview and FAQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-3162762144630001744?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/3162762144630001744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=3162762144630001744' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3162762144630001744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3162762144630001744'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/07/dell-xps-m1710-vista-ultimate-upgrade.html' title='Dell XPS M1710 – Vista Ultimate Upgrade'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-3050656906012805716</id><published>2007-07-26T10:55:00.000+01:00</published><updated>2007-07-26T10:56:07.806+01:00</updated><title type='text'>Tool for choosing a colour palette</title><content type='html'>Being more of a techy than a designer, choosing a suitable colour palette for a web site is not exactly my forte.&lt;br /&gt;&lt;br /&gt;Here's a tool that can help: &lt;a href="http://www.nickherman.com/colormatch/"&gt;http://www.nickherman.com/colormatch/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Define a colour using the RGB sliders and the system will suggest 6 matching colours for you. Works very well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-3050656906012805716?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/3050656906012805716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=3050656906012805716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3050656906012805716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/3050656906012805716'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/07/tool-for-choosing-colour-palette.html' title='Tool for choosing a colour palette'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6063249224279704789</id><published>2007-07-05T14:07:00.001+01:00</published><updated>2007-07-05T14:07:21.840+01:00</updated><title type='text'>Running VS 2005, Oracle 10g client and ODT/ODP.Net on Vista</title><content type='html'>&lt;p&gt;I've not long received a new laptop (went for the Dell M1710 in the end, not the most portable by any means but a real powerhouse desktop replacement style laptop, just the job when you are running VMs, virtual PCs, Oracle, SQL Server etc all on one machine). Gorgeous 17" screen 1920x1200 which copes nicely with the IDEs of today, although I am not convinced by the current trend of glossy reflective screens - sexy looking they may be but I don't really want to see a reflection of myself whilst coding thank you very much - non-reflective screens (as on my old Inspiron 5150) are much more usable in bright environments. Viewing angles are good though. Came with Vista Home Premium on.  &lt;p&gt;Anyway... once I'd uninstalled all the free 30day trial 'crap' that is installed by default I set out to install all my standard apps that I use day to day.  &lt;p&gt;On the list was of course trusty Visual Studio 2005, along with Oracle 10g client, ODP.Net and Oracle developer tools (ODT).  &lt;p&gt;VS 2005 Prof and SP1 were not a problem, although I did get a couple of "known compatibility issue" pop-ups.  &lt;p&gt;The Oracle versions I'd been using on XP, however were not compatible with Vista (unless you did registry hacks). Oracle have now released officially supported products.  &lt;p&gt;Hence here's what you need if you want Vista compatibility 'out of the box' with Oracle:  &lt;p&gt;Oracle Database 10g Client Release 2 (10.2.0.3)&lt;br&gt;&lt;a href="http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html"&gt;http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10203vista.html&lt;/a&gt; &lt;p&gt;Seems to install fine although if you use the Aero interface in Vista you will see a message indicating that the installer is not compatible with that. &lt;p&gt;ODAC 10.2.0.2.21 (inc. ODP.net plus ODT if you want it) see&lt;br&gt;&lt;a href="http://www.oracle.com/technology/software/tech/windows/odpnet/index.html"&gt;http://www.oracle.com/technology/software/tech/windows/odpnet/index.html&lt;/a&gt; &lt;p&gt;Note only the installer has been upgraded to make it compatible with Vista, not the individual ODAC products, so if you are using ODAC 10.2.0.2.20 on another Windows platform (as I do on XP), you don't need to upgrade. See C Shay's article &lt;a href="http://cshay.blogspot.com/"&gt;http://cshay.blogspot.com/&lt;/a&gt; for more info.  &lt;p&gt;The above is official released software so can be used in production code.  &lt;p&gt;There is also some nice beta stuff in the pipeline, see 11g stuff &lt;a href="http://www.oracle.com/technology/software/tech/windows/odpnet/index_11gbeta.html"&gt;http://www.oracle.com/technology/software/tech/windows/odpnet/index_11gbeta.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6063249224279704789?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6063249224279704789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6063249224279704789' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6063249224279704789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6063249224279704789'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/07/running-vs-2005-oracle-10g-client-and.html' title='Running VS 2005, Oracle 10g client and ODT/ODP.Net on Vista'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-9102757938925302239</id><published>2007-06-12T14:24:00.001+01:00</published><updated>2007-06-29T09:48:35.122+01:00</updated><title type='text'>Live Writer - on/off-line publishing to your blogs</title><content type='html'>This is worth a look if you blog a lot (still beta):&lt;br&gt;&lt;br /&gt;&lt;a href="http://writer.live.com/"&gt;http://writer.live.com/&lt;/a&gt;&lt;br /&gt;&lt;br&gt;Talks to Windows Live Spaces, Sharepoint, WordPress, Blogger, LiveJournal, TypePad, Moveable Type, Community Server plus others. I've not tried it in 'offline mode' yet but online seems&amp;nbsp;to work fine. Just got it working easily with blogger and community server (which needs a little more work, see &lt;a title="http://wlwplugins.com/how-to-configure-windows-live-writer-for-community-server.php" href="http://wlwplugins.com/how-to-configure-windows-live-writer-for-community-server.php"&gt;http://wlwplugins.com/how-to-configure-windows-live-writer-for-community-server.php&lt;/a&gt;). &lt;br&gt;Great for managing multiple blogs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-9102757938925302239?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/9102757938925302239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=9102757938925302239' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/9102757938925302239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/9102757938925302239'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/06/live-writer-onoff-line-publishing-to.html' title='Live Writer - on/off-line publishing to your blogs'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-5425108879943369256</id><published>2007-06-12T11:47:00.001+01:00</published><updated>2007-06-29T09:49:10.757+01:00</updated><title type='text'>IIS6 app pools and session state</title><content type='html'>We've intermittently been having some sessions dropping on various web sites, after about 20mins (umm sounds familiar that value...), despite having session timeout settings of say 2 hours in our web app config files&amp;nbsp;(both ASP and ASP.net). After some digging, I came across this:  &lt;p&gt;&lt;a href="http://blogs.msdn.com/david.wang/archive/2005/09/19/Why_do_I_lose_ASP_Session_State_on_IIS6.aspx"&gt;http://blogs.msdn.com/david.wang/archive/2005/09/19/Why_do_I_lose_ASP_Session_State_on_IIS6.aspx&lt;/a&gt;  &lt;p&gt;If you use in-proc session state (which is&amp;nbsp;the default and very popular), your application pool's "shut down worker process after being idle" setting in IIS6 is likely to be 20 mins. Thus ignoring your web app config setting if your application pool is *idle* for 20 mins or more.  &lt;p&gt;Easiest solution is to increase this idle timeout value. The other option is to store state out of process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-5425108879943369256?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/5425108879943369256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=5425108879943369256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5425108879943369256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5425108879943369256'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/06/iis6-app-pools-and-session-state.html' title='IIS6 app pools and session state'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-8491218464247871508</id><published>2007-05-23T15:46:00.000+01:00</published><updated>2007-05-23T15:53:00.928+01:00</updated><title type='text'>ViewState improvements in ASP.Net 2</title><content type='html'>I’ve recently been upgrading a project from ASP.Net 1.1 to ASP.Net 2. I’d seen documented that ViewState sizes had been significantly reduced, quoted as up to 50% smaller in some cases. A new serialization format, incorporated in a new formatter class (ObjectStateFormatter) is behind the improvements. See &lt;a href="http://www.nikhilk.net/ViewStateImprovements.aspx"&gt;http://www.nikhilk.net/ViewStateImprovements.aspx&lt;/a&gt;  for further info on how it all works.&lt;br /&gt;&lt;br /&gt;Anyhow, I thought it would be interesting to see how much of an improvement I would get on some 'heavy' DataGrid driven data entry intranet pages. Here’s the stats in bytes:&lt;br /&gt;&lt;br /&gt;ViewState Size ASP.Net 1.1 (ASP.Net 2)&lt;br /&gt; &lt;br /&gt;Page 1: 9892 (7456 75%)&lt;br /&gt;Page 2: 44492 (25696 58%)&lt;br /&gt;Page 3: 39900 (24800 62%)&lt;br /&gt;Page 4: 46300 (23500 51%)&lt;br /&gt; &lt;br /&gt;So my worst case was ‘only’ a 75% reduction, but on some pages my ViewState was 51% of the original. Not bad. My advice of course is still to turn off ViewState when not needed ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-8491218464247871508?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/8491218464247871508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=8491218464247871508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8491218464247871508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8491218464247871508'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/05/viewstate-improvements-in-aspnet-2.html' title='ViewState improvements in ASP.Net 2'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2079220342579624750</id><published>2007-04-30T15:55:00.000+01:00</published><updated>2007-04-30T15:56:34.284+01:00</updated><title type='text'>.Net 3.5 beta 1 is here</title><content type='html'>In case you missed it, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E3715E6F-E123-428B-8A0F-028AFB9E0322&amp;displaylang=en"&gt;.Net Framework 3.5 Beta 1&lt;/a&gt; is now available for download. Obviously not something to install on a production (!) box but it is interesting in that .Net 3.5 is now "officially" on its way to becoming a production reality (rather than in technnology preview form, Orcas downloads etc).&lt;br /&gt;&lt;br /&gt;As expected it includes LINQ (Language Integrated Query) and ASP.Net AJAX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2079220342579624750?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2079220342579624750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2079220342579624750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2079220342579624750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2079220342579624750'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/04/net-35-beta-1-is-here.html' title='.Net 3.5 beta 1 is here'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-5365790975075603543</id><published>2007-04-20T08:23:00.000+01:00</published><updated>2007-04-20T08:24:34.663+01:00</updated><title type='text'>WPF/E becomes Silverlight</title><content type='html'>Microsoft's project name WPF/E (Windows Presentation Foundation / Everywhere) has now been officially named &lt;a href="http://www.microsoft.com/silverlight"&gt;Microsoft Silverlight&lt;/a&gt;. Although still only on February CTP, watch this space as the full version is due later in the year (July/Aug'ish).&lt;br /&gt;&lt;br /&gt;I like the direction this vector-based technology is going in - decarative XAML markup all nice and separate from the code (I'm a big advocate of decarative UI building). I also like the way it can be embedded into existing HTML/ASPX pages, thus offering a doorway for developers to use the technology in existing ASP.Net apps (it does not have to be an all or nothing approach).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-5365790975075603543?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/5365790975075603543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=5365790975075603543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5365790975075603543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5365790975075603543'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/04/wpfe-becomes-silverlight.html' title='WPF/E becomes Silverlight'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-8584179000817292499</id><published>2007-04-11T09:33:00.000+01:00</published><updated>2007-04-11T09:42:29.213+01:00</updated><title type='text'>Usefulness of Code Reviews</title><content type='html'>When I chat with developers about code reviews, generally I get a positive response in terms of their usefulness &amp;#39;in theory&amp;#39;, although most are not exactly forthcoming when it comes to actually offering to take part in them. I think some see them as a &amp;#39;threat&amp;#39; or an &amp;#39;opportunity to receive criticism of their precious code&amp;#39;! This shouldn&amp;#39;t be the case and those&amp;nbsp;that believe this I think have missed the point. I see&amp;nbsp;code reviews (or more often in my case, &amp;#39;system reviews&amp;#39;) as opportunities to pause for thought, take a step back, look at&amp;nbsp;what you&amp;#39;ve achieved and do a critique of how &amp;#39;well&amp;#39; it has been designed and developed. Every review I have ever done has always had positive outputs.&lt;br /&gt;&lt;p&gt;I&amp;#39;ve just recently completed a code review of a medium sized project written in ASP.Net/Oracle.&amp;nbsp;I did it &amp;#39;paired&amp;#39; with another developer and was a joint effort. We concentrated on the following points:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The Solution and how it was organised into projects and subdirectory structures.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Shared&amp;nbsp;libraries and their usage&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Consistency in &amp;#39;style of development&amp;#39;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Source control/versions.&amp;nbsp;How Visual Source Safe (VSS) is used for (e.g. source code only or some docs too?)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Coding style and conformance to coding standards (and are the standards we have in place up to date/suitable?)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Any areas where it would benefit from refactoring&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Upgrade comments (recently undertaken) from .Net 1.1 to .Net 2/VS 2005. Where could the project benefit from refactoring/rewritten using .Net 2 features&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use of the N-tier approach, coupling&amp;nbsp;and possible compromising of layers (e.g. SQL in code behind files?!)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Stored procs (Oracle) and adopted standards&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Pass thru SQL vs Stored procs&lt;/li&gt;&lt;br /&gt;&lt;li&gt;General concerns and feedback on development so far&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Here&amp;#39;s the outputs from our session:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;the project could have benefited from being broken down into more sub-projects&lt;/li&gt;&lt;br /&gt;&lt;li&gt;our coding standards need updating to bring in new .Net 2 features, new controls, app_themes etc, and JavaScript coding guidelines.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;N-Tier approach used very well in most places by developers although some SQL present in &amp;#39;higher layers&amp;#39; from earlier coding (!).&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There were some areas where standards were not followed but mostly affecting &amp;#39;early code&amp;#39;. Most of latest code followed guidelines and best practise&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Would benefit from the use of&amp;nbsp;Web Services in the shared &amp;#39;site list&amp;#39; library:&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Source control&amp;nbsp;working well.&amp;nbsp;Oracle stored procs, views etc&amp;nbsp;also in VSS.. but would be better if integrated with TOAD. To investigate.&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Better versioning needed of shared libs.&amp;nbsp;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Some of the system would benefit from some .Net 2 enhancements (eg master pages, themes, new .net 2 menu tree) but decided to only bring in new .Net 2 features on either brand new modules or where a significant change is needed on an existing part of the system. Consistency important though.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;All of this I&amp;nbsp;think is good positive feedback and result in actions where necessary. It was a joint effort, which is important. Even if you are reviewing a new starter&amp;#39;s code, there is still opportunity to learn from their past experiences. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;If anyone else has experience of doing such reviews, do let me know.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-8584179000817292499?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/8584179000817292499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=8584179000817292499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8584179000817292499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8584179000817292499'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/04/usefulness-of-code-reviews.html' title='Usefulness of Code Reviews'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6243249635782728237</id><published>2007-03-29T11:31:00.000+01:00</published><updated>2007-03-29T11:33:29.346+01:00</updated><title type='text'>SPA 2007 Conference</title><content type='html'>Just got back from &lt;a href="http://www.spaconference.org/spa2007/"&gt;SPA 2007&lt;/a&gt;, held at Cambridge University’s Homerton College. &lt;br /&gt;&lt;br /&gt;Held across 4 days (Sun-Wed), it consisted of a mixture of workshops, tutorials, case studies and more open ‘think tank/gold fish bowl’ type sessions.&lt;br /&gt;&lt;br /&gt;I presented on ASP.Net / Oracle including lessons learned from a global intranet project I’m currently working on. It triggered some good discussions, both during and after the session, especially regarding the backend platform used (i.e. Oracle rather than SQL Server), state management, along with data and workflow modelling.&lt;br /&gt;&lt;br /&gt;Here are some of the other sessions I attended too:&lt;br /&gt;&lt;br /&gt;Strategies and Patterns for Systems Continuity&lt;br /&gt;Lessons Learned from Scaling XP&lt;br /&gt;Agile modelling practices on innovative projects&lt;br /&gt;The whys and wherefores of Web 2.0&lt;br /&gt;Effective error handling&lt;br /&gt;Architecting the next generation of .Net applications&lt;br /&gt;&lt;br /&gt;Quality of the sessions varied but most were well run and worth attending. I didn’t perhaps ‘learn’ as much as I’d hoped, but two points I did take away were:&lt;br /&gt;&lt;br /&gt;1) Web 2.0 is not clearly defined (you don’t say!). I don’t like the term anyway. To me the web is constantly evolving, with new tools appearing and becoming established all the time. To label a ‘moment in web time’ like this does not make sense. There was no clear agreement on details at the conference but most did agree that Web 2.0 will/is having a significant impact on the Internet and business. &lt;br /&gt;2) Agile development (XP, Scrum, Lean) is becoming more widespread and is being used to good effect. I’ve not yet used any of these methods ‘formally’ yet but do already use some of the techniques they encompass. Armed with the knowledge I’ve gained (and some new books!), I’m definitely going to see if I can make use of more Agile techniques in the future.&lt;br /&gt;&lt;br /&gt;For me though, the session that I remember most was the plenary by the infamous Professor Tony Hoare… acknowledged widely for his Quicksort algorithm, Hoare Logic, CSP (for formally describing interacting concurrent processes) and his research leading to the Z specification language. &lt;br /&gt;&lt;br /&gt;He’s a scientist whom I have looked up to since at University. His plenary was on ‘Assertions and Test driven design’. The talk maybe did not contain as much ‘brilliance’ as his stature and background deserves, but nevertheless none of this matters – just to see him present in person was more than enough for me. A man worthy of his Turing Award (1980) and Knighthood (2000).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6243249635782728237?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6243249635782728237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6243249635782728237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6243249635782728237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6243249635782728237'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/03/spa-2007-conference.html' title='SPA 2007 Conference'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2122219289673977567</id><published>2007-03-14T17:08:00.000Z</published><updated>2007-03-16T14:57:30.149Z</updated><title type='text'>Upgrading projects from ODP.Net 9.2 to ODP.Net 10.2</title><content type='html'>I've recently been upgrading a system from ASP.Net 1.1 to 2.0. At the same time we are upgrading the Oracle client from 9.2 to 10.2, and thus to ODP.Net (vs10.2.0.2.20 to be precise).&lt;br /&gt;&lt;br /&gt;I've now completed the first pass of the conversion and all main parts of the system appear to be working fine - note we have left the Oracle back-end on 9.2 for now, but this is also going to be upgraded to 10.2 too... let's do it in stages ;-)&lt;br /&gt;&lt;br /&gt;Here's a couple of issues I've come across so far regarding the upgrade:&lt;br /&gt;&lt;br /&gt;a) -1 Result from ExecuteNonQuery&lt;br /&gt;&lt;br /&gt;It is expected behavior that ExecuteNonQuery returns -1 when executing a stored procedure (regardless of what the stored proc does), but there was a bug in earlier 9.2.x versions where it returned 1 instead of -1. If you have any code that checks this result, it's worth a scan to see if this affects any of your logic. I was caught out in one of my calls to a stored proc that updated a number of rows, and I had incorrectly assumed it would return "number of rows UPDATEd" like a standard UPDATE statement would (and in this case I was expecting an update count of 1 for 'success' so it all worked fine thanks to the 9.2 bug!). Digging deep into the Oracle ODP.Net docs come up with this:&lt;br /&gt;&lt;br /&gt;-------&lt;br /&gt;ExecuteNonQuery returns the number of rows affected, for the following: &lt;br /&gt;If the command is UPDATE, INSERT, or DELETE and the XmlCommandType property is set to OracleXmlCommandType.None. &lt;br /&gt;If the XmlCommandType property is set to OracleXmlCommandType.Insert, OracleXmlCommandType.Update, OracleXmlCommandType.Delete. &lt;br /&gt;For all other types of statements, the return value is -1. &lt;br /&gt;-------&lt;br /&gt;&lt;br /&gt;So I read this as meaning all stored procs return -1 for success. If you want the number of recs affected, you'll need to do this yourself by adding an output param instead. If anyone has found out something different please shout ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b) Runtime data types of output parameters:&lt;br /&gt;&lt;br /&gt;Ever had problems mapping .Net types to native database field types (and vice versa)? Umm me too. DBNULLS vs nulls, casting issues, loss of accuracy, I'm sure you've been there. Anyway, here's a couple of general issues to watch out for when moving to ODP.Net 10.2:&lt;br /&gt;&lt;br /&gt;Example 1: &lt;br /&gt;&lt;br /&gt;OracleCommand cmd = new OracleCommand();&lt;br /&gt;cmd.CommandText = "EPR_Month_PKG.Get_Month_YTD";&lt;br /&gt;cmd.Parameters.Add("p_isd_id", OracleDbType.Int32,ParameterDirection.Input).Value = isdID;&lt;br /&gt;cmd.Parameters.Add("p_mp_id", OracleDbType.Int32,ParameterDirection.Input).Value = mpID;&lt;br /&gt;cmd.Parameters.Add("p_month_ytd", OracleDbType.Double).Direction = ParameterDirection.Output;&lt;br /&gt;DBTool.ExecuteStoredProc(cmd);&lt;br /&gt;// if (cmd.Parameters["p_month_ytd"].Value != System.DBNull.Value) // fine in 9.2 but condition never fires in 10.2&lt;br /&gt;if (!((Oracle.DataAccess.Types.OracleDecimal)(cmd.Parameters["p_month_ytd"].Value)).IsNull)  // works fine in 10.2&lt;br /&gt;{&lt;br /&gt;    // not null... rest of code here&lt;br /&gt;}&lt;br /&gt;cmd.Dispose();&lt;br /&gt;&lt;br /&gt;(Note DBTool is simply a DAL helper class that sits as part of a larger DAL library we have).&lt;br /&gt;&lt;br /&gt;The commented out if statement worked fine in ODP.Net 9.2. but in 10.2 the output param (specified as OracleDbType.Double)  now comes back as an OracleDecimal (hence my cast in the if statement). In fact I've also got cases where the output param type is specified as OracleDbType.Int32 and this still comes back as OracleDecimal. Oracle really needs to be consistent on all this, especially across versions.&lt;br /&gt;&lt;br /&gt;Example 2:&lt;br /&gt;&lt;br /&gt;Old working code in .Net 1.1/ODP.net 9.2&lt;br /&gt; &lt;br /&gt;OracleCommand cmd = new OracleCommand();&lt;br /&gt;cmd.CommandText = "EPR_Month_PKG.Get_Max_MP_ID";&lt;br /&gt;cmd.Parameters.Add("p_max_mp_id", OracleDbType.Int32).Direction = ParameterDirection.Output;&lt;br /&gt;DBTool.ExecuteStoredProc(cmd);&lt;br /&gt;MaxMPID = (int) cmd.Parameters["p_max_mp_id"].Value;  // this bit no longer works, you get System.InvalidCastException&lt;br /&gt;cmd.Dispose(); &lt;br /&gt;&lt;br /&gt;Again, this now fails in 10.2 due to output param data type being returned as OracleDecimal (!). &lt;br /&gt;&lt;br /&gt;This new code works fine though in 10.2:&lt;br /&gt;&lt;br /&gt;OracleCommand cmd = new OracleCommand();&lt;br /&gt;cmd.CommandText = "EPR_Month_PKG.Get_Max_MP_ID";&lt;br /&gt;OracleParameter ParMaxMPID = new OracleParameter();&lt;br /&gt;ParMaxMPID.Direction = ParameterDirection.Output;&lt;br /&gt;ParMaxMPID.DbType = DbType.Int32;&lt;br /&gt;ParMaxMPID.ParameterName = "p_max_mp_id";&lt;br /&gt;cmd.Parameters.Add(ParMaxMPID);&lt;br /&gt;DBTool.ExecuteStoredProc(cmd);&lt;br /&gt;MaxMPID = (int) cmd.Parameters["p_max_mp_id"].Value;&lt;br /&gt;cmd.Dispose(); &lt;br /&gt;&lt;br /&gt;The key bit is the specifying of DbType (instead of using OracleDbType). Doing this infers an OracleDbType (you can see a table of mappings in ODP.Net docs) and also ensures a correct mapping to the .Net int type. We could use this "DbType approach" to solve the issue in example 1 above too.&lt;br /&gt;&lt;br /&gt;Strings as output params can be handled this way too. If you don't do it this way, I found nulls and empty strings were handled inconsistently in 10.2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LATEST UPDATE (16 Mar 2007)&lt;br /&gt;&lt;br /&gt;Having converted a number of calls to cater for the issues above I have added a static member to DAL class, e.g. DBTool.GetOracleParameterByDbType(...) so typical code can now look as follows:&lt;br /&gt;&lt;br /&gt;cmd.CommandText = "EPR_MonthlyReport_PKG.Get_Target";&lt;br /&gt;cmd.Parameters.Add("p_year", OracleDbType.Int32,ParameterDirection.Input).Value = year;&lt;br /&gt;cmd.Parameters.Add("p_year_offset", OracleDbType.Int32,ParameterDirection.Input).Value = (int) Target.YearOffSet.TargetPlus1;&lt;br /&gt;cmd.Parameters.Add("p_mp_id", OracleDbType.Int32,ParameterDirection.Input).Value = mpID;&lt;br /&gt;cmd.Parameters.Add("p_person_id", OracleDbType.Int32,ParameterDirection.Input).Value = personId;&lt;br /&gt;cmd.Parameters.Add(DBTool.GetOracleParameterByDbType("p_target", DbType.Double, ParameterDirection.Output));&lt;br /&gt;DBTool.ExecuteStoredProc(cmd);&lt;br /&gt;if (cmd.Parameters["p_target"].Value != System.DBNull.Value)&lt;br /&gt;{&lt;br /&gt;    target = Convert.ToDouble(cmd.Parameters["p_target"].Value);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;This is nice and tidy. Whether we should also be passing Input params by DbType is another matter but not wanting to interfere with existing code too much maybe go with this for now. Note passing a DbType also ensures that System.DBNull.Value works as expected too.&lt;br /&gt;&lt;br /&gt;The helper method by the way is simply:&lt;br /&gt;&lt;br /&gt;public static OracleParameter GetOracleParameterByDbType(string paramName, DbType dbType, ParameterDirection paramDirection)&lt;br /&gt;{&lt;br /&gt;    OracleParameter NewParam = new OracleParameter();&lt;br /&gt;    NewParam.Direction = paramDirection;&lt;br /&gt;    NewParam.DbType = dbType;&lt;br /&gt;    NewParam.ParameterName = paramName;&lt;br /&gt;    return NewParam;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2122219289673977567?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2122219289673977567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2122219289673977567' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2122219289673977567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2122219289673977567'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/03/upgrading-projects-from-odpnet-92-to.html' title='Upgrading projects from ODP.Net 9.2 to ODP.Net 10.2'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2795414457343518415</id><published>2007-02-21T11:15:00.000Z</published><updated>2007-02-21T11:17:13.530Z</updated><title type='text'>.Net 2.0 Framework redist does not include configuration manager</title><content type='html'>Interestingly, MS decided not to include the control panel/admin/.net configuration tool with the redist version of .Net 2. Seems a bit odd as this is a useful tool for configuring .Net on servers and it does come with the 1.1 redist. To get it now you need to install the 2.0 SDK (some 300+Mb) where the config manager now resides.&lt;br /&gt;&lt;br /&gt;For reasons as to why they moved it and workarounds, see &lt;a href="http://blogs.msdn.com/astebner/archive/2006/01/23/516671.aspx"&gt;Aaron Stebner's Blog Entry&lt;/a&gt; on the topic. I still disagree that the manager should come only with the SDK - the tool is very useful for managing the assembly cache for example. Looking at developer feedback, my guess is that it will be added back into the redist for future versions...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2795414457343518415?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2795414457343518415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2795414457343518415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2795414457343518415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2795414457343518415'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/02/net-20-framework-redist-does-not.html' title='.Net 2.0 Framework redist does not include configuration manager'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6054538360267547579</id><published>2007-02-16T12:07:00.000Z</published><updated>2007-02-16T13:18:57.938Z</updated><title type='text'>Visual Studio 'Orcas' looks promising</title><content type='html'>Having spent the last year or so getting to grips with Visual Studio 2005 and establishing ASP.Net migration paths from .Net 1.1 to .Net 2/3 (especially when you are considering shared hosting, third party components, Oracle's ODP.Net/ODT etc), I'm now starting to investigate the next incarnation of VS, aka project 'Orcas'/.Net 3.5). &lt;br /&gt;&lt;br /&gt;Scheduled for an estimated release in the 2nd half of this year, it will offer many features that we will all be keen to get our hands on:&lt;br /&gt;&lt;br /&gt;- Full 'integrated' LINQ support&lt;br /&gt;- AJAX support (environment support for this is improving all the time)&lt;br /&gt;- Target .Net 2, 3 and 3.5 from the same environment&lt;br /&gt;- Split WYSIWYG/code editor and rapid code/design view switching&lt;br /&gt;- Nested master pages&lt;br /&gt;- WPF project types&lt;br /&gt;- Much improved (and W3C standards based!) CSS support.&lt;br /&gt;- Improvements on code editing, intellisense and debugging (e.g. editing Javascript will support 'type inferencing').&lt;br /&gt;&lt;br /&gt;If you want to take a sneak preview, you can &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1FF0B35D-0C4A-40B4-915A-5331E11C39E6&amp;displaylang=en"&gt;download the January 2007 CTP&lt;/a&gt;, but (unless you are desperate!) I'd probably wait until the February 2007 CTP which will include the new WYSIWYG designer features mentioned above. Note the downloads are 'thoughtfully' provided as Virtual PC images (similar to VMware), so you will need to download/install Virtual PC first. A great way of evaluating s/w without breaking your day-to-day development environment.&lt;br /&gt;&lt;br /&gt;And for those like me having to consider migration paths on corporate desktops... the road from VS 2005 to 'Orcas' looks a lot easier than the 'one way wizard upgrade approach' we had with VS 2003 to VS 2005. From what I have read, you 'should be able to simply' open up VS 2005 solutions. Time will tell if this is the reality...&lt;br /&gt;&lt;br /&gt;For more information, see &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/02/08/my-first-look-at-orcas-presentation.aspx"&gt;Scott's 'First look at Orcas' piece&lt;/a&gt; (which includes some screenshots)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6054538360267547579?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6054538360267547579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6054538360267547579' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6054538360267547579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6054538360267547579'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2007/02/visual-studio-orcas-looks-promising.html' title='Visual Studio &apos;Orcas&apos; looks promising'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-4078349758812630535</id><published>2006-12-20T10:44:00.000Z</published><updated>2006-12-20T10:47:15.468Z</updated><title type='text'>Google's SOAP search API now closed!</title><content type='html'>This is interesting... google has closed their &lt;a href="http://code.google.com/apis/soapsearch/"&gt;SOAP-based Search API&lt;/a&gt;. I know the AJAX based one is now there but surely the SOAP one was a great way of "web servicing up" their search interface, with the corresponding WSDL providing a comprehensive service description. Perhaps the SOAP one was too flexible, allowing UI "cloaking" of the google engine behind the searching and manipulation of the search results?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-4078349758812630535?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/4078349758812630535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=4078349758812630535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4078349758812630535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/4078349758812630535'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/12/googles-soap-search-api-now-closed.html' title='Google&apos;s SOAP search API now closed!'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-858793611332323488</id><published>2006-12-20T10:00:00.000Z</published><updated>2006-12-20T10:06:20.178Z</updated><title type='text'>Visual Studio 2005 SP1 now released</title><content type='html'>For those developing for .Net 2 or 3 using VS 2005, I think &lt;a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx"&gt;this SP1&lt;/a&gt; is worth installing. I installed it yesterday and all seems fine so far (or you can wait for me to have problems first!). &lt;br /&gt;&lt;br /&gt;Tip: if you have installed &lt;a href="http://msdn2.microsoft.com/en-us/asp.net/aa336618.aspx"&gt;WAP&lt;/a&gt; (web application projects add-in), uninstall it first and then install SP1, as this service pack now has this included. WAP is my preferred project model for ASP.Net development (the "web site" model is fine for quick demos but is of little use [my opinion] for larger projects). I do know developers who prefer the "web site" model though... so each to their own I guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-858793611332323488?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/858793611332323488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=858793611332323488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/858793611332323488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/858793611332323488'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/12/visual-studio-2005-sp1-now-released.html' title='Visual Studio 2005 SP1 now released'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-5016979656362986537</id><published>2006-12-14T13:28:00.000Z</published><updated>2006-12-14T13:42:01.523Z</updated><title type='text'>Vista launch event in the UK for developers</title><content type='html'>Microsoft have organised a Vista and 2007 Office System launch event (January 19-20th 2007) for developers, hosted at their Thames Valley Park Offices, Reading UK. Within a few days of announcing it, registration was closed (fully subscribed), although they are also streaming all sessions 'live' as a virtual event online. I'll give this latter choice a go and see how well it works... their intention is also to make it 'interactive' via blogs and interactive chat. Be interesting to see how well this all works in practice.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.microsoft.com/uk/launch2007/dev/agenda_dayone.mspx"&gt;day one agenda&lt;/a&gt; (sessions) and &lt;a href="http://www.microsoft.com/uk/launch2007/dev/agenda_daytwo.mspx"&gt;day 2 agenda&lt;/a&gt; (hands-on workshops).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-5016979656362986537?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/5016979656362986537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=5016979656362986537' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5016979656362986537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5016979656362986537'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/12/vista-launch-event-in-uk-for-developers.html' title='Vista launch event in the UK for developers'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-244396306597597451</id><published>2006-11-30T15:02:00.000Z</published><updated>2006-11-30T15:15:39.791Z</updated><title type='text'>i-mate spl smartphone - first impressions</title><content type='html'>My i-Mate SPL smartphone arrived last week (after 5 weeks on order) and I thought I'd post my initial thoughts on it based on a week or so's usage. I'm not doing a full review as this is covered elsewhere, for example, see &lt;a href="http://www.modaco.com/index.php?showtopic=247999"&gt;Paul's excellent review on MoDaCo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been looking for a windows mobile 5 smartphone for quite sometime but I've always struggled to find one that is truly portable and is 'phone like' rather than based on IPAQ/Palm sized devices. I already have an IPAQ but I needed something I could always keep with me, thus meaning something no bigger than a 'normal-sized mobile phone', weighing no more than say 110g but with a high res screen suitable for the odd email and web browsing.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://shop.orange.co.uk/shop/show/handset/orange_spv_c500/details"&gt;Orange SPV&lt;/a&gt; was probably the closest match but somehow it felt dated.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.clubimate.com/t-DETAILS_SPL.aspx"&gt;i-mate SPL&lt;/a&gt; took my eye after speaking to a couple of delegates at the last &lt;a href="http://www.vbug.com/"&gt;VBUG conference&lt;/a&gt;, as they had i-mate phones (albeit different models).&lt;br /&gt;&lt;br /&gt;After reading Paul's spl review, I took the plunge and ordered it. 5 weeks later (no one had them in stock), it arrived.&lt;br /&gt;&lt;br /&gt;First impressions - a sleek, quality phone with a superb screen (240x320 2.2" QVGA 65K). Sharing a scary likeness to the &lt;a href="http://www.motorola.com/motoinfo/product/details.jsp?globalObjectId=86"&gt;Motorola SLVR&lt;/a&gt;, it 'feels' a good quality handset and so far battery life has been excellent. Call quality is also very good.&lt;br /&gt;&lt;br /&gt;The mobile UI has a classic 'windows feel' and is very usable. There is a noticeable pause when loading an app for the very first though, which I believe is common to most mobile 5 based phones.&lt;br /&gt;&lt;br /&gt;OK so far so good... so are there any gripes? The keypad took me a couple of days to get used to as ALL the keys lie flush and although the feel of the keys when pressed is good, because the keys are not raised it is easy (initially) to press the wrong key - you find keys by either 'looking' at the phone or by learning where they are by rehearsal ('by feel' is not really an option although there is a very very slight beveled line separating them). After two days I found my brain had mentally built up a model of the keypad structure and now I am fine with it. I can't help feeling though 'why was this not picked in usability testing'? The joypad is also very small and requires even more accuracy, but with practice you overcome its rather fiddly design. Just slightly raising the joypad would drastically reduce the odd error you often make initially because the keys around the joypad are very close to it. Again, lack of feel/feedback in the keypad design causes these mistakes. A shame. I found I had to adapt to its design, rather than the keypad itself being a good starting point. Surely the keypad is a key factor in any phone design?&lt;br /&gt;&lt;br /&gt;Anyway, that aside, my overall impression? A great phone. Once I got used to the keypad I found I could happily text, browse the web (Pocket IE combined with the great screen resolution makes browsing the 'mobile web' a breeze) and reply to the odd email (I've started off with gmail mobile rather than the built in outlook). Yes the processor could be quicker and GPRS for data transfer is still not the quickest but for getting at your email when you are out and about, it does the job nicely.&lt;br /&gt;&lt;br /&gt;Camera is 2MP, which is fine for my uses. Snaps I have taken so far appear to be very good in decent light.&lt;br /&gt;&lt;br /&gt;The device also has .Net CF in ROM... cool but I've not had chance to make use of it yet.&lt;br /&gt;&lt;br /&gt;If you are looking for a highly portable smartphone that looks and feels like a normal mobile phone, rather than a PDA, then this is worth a viewing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-244396306597597451?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/244396306597597451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=244396306597597451' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/244396306597597451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/244396306597597451'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/11/i-mate-spl-smartphone-first-impressions.html' title='i-mate spl smartphone - first impressions'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-6533862036843359145</id><published>2006-11-17T21:15:00.000Z</published><updated>2006-11-17T13:45:42.931Z</updated><title type='text'>Lynx browser and web accessibility testing</title><content type='html'>I've been doing some web accessibility testing recently on an existing site for a client. There are many aspects to this, but I find one useful technique, that provides a quick and practical test, is to try the site through the Lynx browser. It's text only, is very fast (yeh I know, it should be, it runs like a telnet session!) and gives you a good 'feel' for how certain assistive technologies such as screen readers 'see' web pages. &lt;br /&gt;&lt;br /&gt;Here's my homepage on Visualize:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.visualize.uk.com/images/lynxlarge.gif" target="new_window"&gt;&lt;img src="http://www.visualize.uk.com/images/lynxsmall.gif" border="0" alt="lynx screen shot"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Try it on your own site... you may be surprised at the results.&lt;br /&gt;&lt;br /&gt;Of course, using Lynx is just one tool in your bag for accessibility testing - see my &lt;a href="http://www.visualize.uk.com/resources/web-accessibility.asp"&gt;Web Accessibility page&lt;/a&gt; for more details.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lynx.isc.org/lynx2.8.5/index.html"&gt;Download Lynx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-6533862036843359145?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/6533862036843359145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=6533862036843359145' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6533862036843359145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/6533862036843359145'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/11/lynx-browser-and-web-accessibility.html' title='Lynx browser and web accessibility testing'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-1207247179481303254</id><published>2006-11-15T15:15:00.000Z</published><updated>2006-11-17T11:34:41.566Z</updated><title type='text'>.Net 3 is released</title><content type='html'>Yes it came out last week, see &lt;a href="http://msdn.microsoft.com/windowsvista/support/relnotes/netfx3/default.aspx"&gt;.Net 3 Framework&lt;/a&gt;. No mention of ODP.Net "official" support yet from Oracle... will dig deep see if I can find out more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-1207247179481303254?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/1207247179481303254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=1207247179481303254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1207247179481303254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/1207247179481303254'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/11/net-3-is-released.html' title='.Net 3 is released'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-7896828396895910680</id><published>2006-11-11T00:16:00.000Z</published><updated>2006-11-17T11:34:35.115Z</updated><title type='text'>SPA 2007 Case Study on ASP.Net and Oracle</title><content type='html'>I'll be presenting at &lt;a href="http://www.spaconference.org/spa2007/index.html"&gt;SPA 2007 &lt;/a&gt;at Homerton College, Cambridge, March 25-28 next year. It's entitled "ASP.Net and Oracle: Friend or Foe? Experiences from Implementing an Enterprise Web Application" (title is too long I know, I may change it yet...)&lt;br /&gt;&lt;br /&gt;Here's the overview:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Describes the presenter’s experiences of using ASP.Net, C# and Oracle to deliver Unilever’s SHE (Safety, Health and Environment) web-based global Intranet system (1100 sites in 120 countries) &lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Abstract: ASP.Net, C# and Oracle are well established as reliable technologies on which to build web-based systems and, although widely adopted, detailed case studies on their usage on major projects are not well publicised. So what is it like to take real business requirements for a world-wide Intranet application and deliver a suitable system in these technologies? Did these environments assist or ‘hinder’ development?&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Should be an interesting session. I'm hoping for a lot of discussion too, maybe via an additional "birds of feather" informal evening slot.&lt;br /&gt;&lt;br /&gt;See also: &lt;a href="http://www.spaconference.org/spa2007/programme.html"&gt;SPA 2007 Full Programme&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-7896828396895910680?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/7896828396895910680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=7896828396895910680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7896828396895910680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/7896828396895910680'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/11/spa-2007-case-study-on-aspnet-and.html' title='SPA 2007 Case Study on ASP.Net and Oracle'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-5817413557156463461</id><published>2006-11-03T15:47:00.000Z</published><updated>2006-11-17T11:34:29.364Z</updated><title type='text'>Latest ODAC/ODP.Net from Oracle</title><content type='html'>I've been using ODP.Net (part of &lt;a href="http://www.oracle.com/technology/software/tech/windows/odpnet/index.html"&gt;ODAC&lt;/a&gt;) for some time now since it was first released as a beta. After a buggy start, it is now my preferred Oracle data provider for .Net 1.1 and .Net 2. I've still got apps using the MS Oracle provider (for historical reasons), but the richness of ODP.Net feature set ensures it's my choice for all new applications (&lt;a href="http://www.oracle.com/technology/sample_code/tech/windows/odpnet/index.html"&gt;see ODP.Net samples&lt;/a&gt;). Top tip: first write a factory or wrapper class library... we did this for the original MS Oracle provider and it greatly aided the port to ODP.Net.&lt;br /&gt;&lt;br /&gt;I recently downloaded ODAC 10.2 (I was on ODAC 9.2 before), as 1) there are useful bug fixes in 10.2 and 2) I needed it for .Net 2 applications.&lt;br /&gt;&lt;br /&gt;First impressions look good... although I'm already coming across issues regarding servers hosting both ASP.Net 1.1 (running against ODP.Net/Oracle 9.2 client) and new ones on ASP.Net 2 (needing ODP.Net 10.2 and thus 10g client). So although .Net 1.1 and 2 run happily side-by-side, third party supporting class libs and drivers are another matter. Oracle do support side by side Oracle clients, but it all looks rather messy and not something I would wish to promote.&lt;br /&gt;&lt;br /&gt;With .Net 3 less than a couple of weeks away too, I would hope to see mention of support for this on the Oracle site. Just checked, and only support for .Net 2 is mentioned.&lt;br /&gt;&lt;br /&gt;Will report back in a few weeks...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-5817413557156463461?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/5817413557156463461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=5817413557156463461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5817413557156463461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/5817413557156463461'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/11/latest-odac-oracle-data-access.html' title='Latest ODAC/ODP.Net from Oracle'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-8082663824665204219</id><published>2006-10-06T23:03:00.000+01:00</published><updated>2006-11-17T11:34:18.158Z</updated><title type='text'>Our Web Survey 1.3 link</title><content type='html'>I've been asked a few times where my 'old' ASP based Our Web Survey tool has gone to... well the link was in my old blog (now defunct!) so here's the link again... version 1.3 is the latest version (released in January 2006)&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.ourwebsurvey.com/ourwebsurvey/"&gt;Our Web Survey&lt;/a&gt; for full details.&lt;br /&gt;&lt;br /&gt;I'd love to go back to this and add reporting or better still rewrite it in ASP.Net... other projects take priority I'm afraid... MySQL support would be nice too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-8082663824665204219?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/8082663824665204219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=8082663824665204219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8082663824665204219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/8082663824665204219'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/10/our-web-survey-13-released.html' title='Our Web Survey 1.3 link'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1244620698678714236.post-2730311608883903652</id><published>2006-10-06T17:00:00.000+01:00</published><updated>2006-11-17T11:34:05.355Z</updated><title type='text'>Back blogging again...</title><content type='html'>Well after closing down my last blog over a year ago (so much to do and so little time to post blog entries!) I've now got the bug to start it off again... too many things to share!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1244620698678714236-2730311608883903652?l=daveclarkesblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://daveclarkesblog.blogspot.com/feeds/2730311608883903652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1244620698678714236&amp;postID=2730311608883903652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2730311608883903652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1244620698678714236/posts/default/2730311608883903652'/><link rel='alternate' type='text/html' href='http://daveclarkesblog.blogspot.com/2006/10/back-blogging-again.html' title='Back blogging again...'/><author><name>Dave Clarke</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
