<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Grant Sutcliffe's Blog</title>
        <link>http://blogs.imeta.co.uk/GSutcliffe/Default.aspx</link>
        <description>A New iMeta Blog</description>
        <language>en-GB</language>
        <copyright>Grant Sutcliffe</copyright>
        <generator>Subtext Version 2.1.1.1</generator>
        <image>
            <title>Grant Sutcliffe's Blog</title>
            <url>http://blogs.imeta.co.uk/images/RSS2Image.gif</url>
            <link>http://blogs.imeta.co.uk/GSutcliffe/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Open Command Window in a specific folder from Explorer</title>
            <link>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/10/23/open-command-window-in-a-specific-folder-from-explorer.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;In Windows version prior to Vista, one had to install Power Tools or fiddle with the Windows registry in order to be able to open the Command Window from within Explorer and with command prompt located in the selected folder in Explorer.  Now it is baked into the Operating System. &lt;/p&gt;
&lt;p&gt;Hopefully blogging this helps remind me (and you) to use this feature when located in the particular folder where I wish to perform some operation from within the Command Window. &lt;/p&gt;
&lt;p&gt;To open a Command Window with the Window focus in the folder selected in Explorer:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;In Windows explorer, select the folder you want Command Window path to display when opened&lt;/li&gt;
    &lt;li&gt;Use the standard key combination to open the Property Menu [Shift + F10]&lt;/li&gt;
    &lt;li&gt;Select ‘W’ to open the Command Window.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/Win7OpenCommandWindowfromPropertyMenu_8116/clip_image002_2.jpg"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="clip_image002" border="0" alt="clip_image002" width="122" height="244" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/Win7OpenCommandWindowfromPropertyMenu_8116/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Presto! The command Windows is opened where you want it. &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/Win7OpenCommandWindowfromPropertyMenu_8116/image_4.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" width="349" height="162" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/Win7OpenCommandWindowfromPropertyMenu_8116/image_thumb_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.imeta.co.uk/GSutcliffe/aggbug/792.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Grant Sutcliffe</dc:creator>
            <guid>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/10/23/open-command-window-in-a-specific-folder-from-explorer.aspx</guid>
            <pubDate>Fri, 23 Oct 2009 16:54:48 GMT</pubDate>
            <wfw:comment>http://blogs.imeta.co.uk/GSutcliffe/comments/792.aspx</wfw:comment>
            <comments>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/10/23/open-command-window-in-a-specific-folder-from-explorer.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.imeta.co.uk/GSutcliffe/comments/commentRss/792.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.imeta.co.uk/GSutcliffe/services/trackbacks/792.aspx</trackback:ping>
        </item>
        <item>
            <title>TDD &amp;ndash; (List), Red, Green Refactor</title>
            <link>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/10/tdd-ndash-list-red-green-refactor.aspx</link>
            <description>&lt;p&gt;A few weeks ago I attended an informative in-house TTD (Test Driven Design/Development) educational session run by &lt;a href="http://blogs.imeta.co.uk/tquinn/Default.aspx" target="_blank"&gt;Tom Quinn&lt;/a&gt; – colleague and Principle Development Consultant at iMeta. This session was run as a hands-on &lt;a href="http://codingdojo.org/" target="_blank"&gt;coding-dojo&lt;/a&gt; style format. For me, it was a great ‘goof-and-learn’ lunch hour experience where a group of us made headway developing the &lt;a href="http://en.wikipedia.org/wiki/Rock-paper-scissors" target="_blank"&gt;‘Rock, Paper, Scissors’ game&lt;/a&gt;, TDD style.&lt;/p&gt;  &lt;p&gt;As with many other developers, my coding style prior to bumping into TDD was the ‘Test After’ approach. In the ‘Test After’ approach, you write unit tests against code you have just completed. The focus is about Unit Tests. With TDD, the focus is Design. While the concept of TDD is simple, making the head-shift and mastering the art, takes time.&lt;/p&gt;  &lt;p&gt;Anyone practicing TDD will know that at the forefront of the approach is the ‘&lt;strong&gt;Red, Green, Refactor’ &lt;/strong&gt;mantra. For readers who are not familiar with this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Red: Write a test that fails &lt;/li&gt;    &lt;li&gt;Green: Make a change to  the code to allow the test to pass (no matter how ugly the code) &lt;/li&gt;    &lt;li&gt;Refactor: Clean up ugly code and remove duplication of the code written to get the test to pass &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;During the dojo session, Tom recommended Kent Beck’s book &lt;a href="http://www.amazon.co.uk/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1252256982&amp;amp;sr=8-1" target="_blank"&gt;Test-Driven Development By Example&lt;/a&gt;. So I grabbed a copy and have just  completed reading it. I want to highlight one important point I noted in the book that I feel  has the potential to get lost along the way when following TDD principles (because the RGR mantra is so loud and strong). With the mantra banging away in the head, a developer might be tempted to:- grab a user story from a task list; think of a scenario that applies to that user story; and get to work. However, there is one important thing you should do before you let that pounding of the mantra start. Take a step back and &lt;strong&gt;Write a list of all the tests you know you will have to write in order complete the scenario&lt;/strong&gt;. We might all do something &lt;em&gt;a little&lt;/em&gt; like this. However, following this to the degree recommended by Kent appears to be a discipline worthwhile adhering to.&lt;/p&gt;  &lt;p&gt;In order to be in a position to write down a list of tests, you are forced to evaluate the user story to a depth you might otherwise not have. This helps tease out, not only headline tests, but also additional relevant tests. This process might also help one eliminate tests initially thought to be relevant. Obviously, the act of physically writing down tests you identify will allow you to better select - and then mentally focus on - the most appropriate test when you get down to do the work. As with the creation of any list, you are freed of the need to maintain the list in your head. As TDD has a lot to do with stress and fear reduction, freeing the mind of anything that adds unnecessary clutter to the mind –  such as trying to remember lists - is part of TDD. &lt;/p&gt;  &lt;p&gt;Kent recommends that the list should be comprised of:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Tests of operations you know you want to implement &lt;/li&gt;    &lt;li&gt;Null versions of operations that do not already exist &lt;/li&gt;    &lt;li&gt;All refactoring you think you will need to do to end up with clean code &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;He also recommends refining the list into “Now” (this coding session) and “Later” (subsequent coding session). During a coding session, work from the “Now” list of tests. Pick off one test at a time, and keep the list &lt;em&gt;dynamic&lt;/em&gt;. To this &lt;em&gt;dynamic&lt;/em&gt; list add new points discovered; and strike out those points completed. &lt;/p&gt;  &lt;p&gt;As an example, if we are writing a test to verify the calculation of the maximum value a facility might grant to an applicant for a mortgage, our dynamic now list could end up something along the lines of:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strike&gt;Term&lt;/strike&gt; &lt;/li&gt;    &lt;li&gt;Principal Only &lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Rounding ?&lt;/strike&gt; &lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Payment Option (Principal only / Interest and Principal)&lt;/strike&gt; &lt;/li&gt;    &lt;li&gt;Type (Fixed / Floating) &lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Applicant Current Age&lt;/strike&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Maintaining such a running list which is frequently amended in sync with the rapid RGR cycles of TDD, helps keep the focus on the what needs to be accomplished and guards against items dropping off the list. Something likely to occur if one attempts to hold this information in your head.&lt;/p&gt;&lt;img src="http://blogs.imeta.co.uk/GSutcliffe/aggbug/754.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Grant Sutcliffe</dc:creator>
            <guid>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/10/tdd-ndash-list-red-green-refactor.aspx</guid>
            <pubDate>Thu, 10 Sep 2009 17:02:21 GMT</pubDate>
            <wfw:comment>http://blogs.imeta.co.uk/GSutcliffe/comments/754.aspx</wfw:comment>
            <comments>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/10/tdd-ndash-list-red-green-refactor.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blogs.imeta.co.uk/GSutcliffe/comments/commentRss/754.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.imeta.co.uk/GSutcliffe/services/trackbacks/754.aspx</trackback:ping>
        </item>
        <item>
            <title>Want to be a Consultant?</title>
            <link>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/02/want-to-be-a-consultant.aspx</link>
            <description>&lt;p&gt;I have just finished listening to &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=464" target="_blank"&gt;.Net Rock podcast #464&lt;/a&gt;  with guest speaker and Technical Consultant, Aaron Erickson. &lt;/p&gt;  &lt;p&gt;With 15 years of consulting experience under his belt, Aaron has considerable mileage to back up his word on the subject. &lt;/p&gt;  &lt;p&gt;In the show, he highlighted selected aspects of Technology Consulting covered in his book &lt;strong&gt;‘The Nomadic Developer: Surviving and Thriving in the World of Technology Consulting’&lt;/strong&gt;. While it appears to be written primarily for software developers who want to go out into the world alone to become technology consultants, it sounds like a good read for anyone who’s job sees them engaged with consulting in any shape or form. You might be a consultant; you might work in a consulting company; you might hire consultants; you might be a recruitment agent who places consultants.&lt;/p&gt;  &lt;p&gt;Some topics covered in the book that pricked my interest are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Seven deadly firms&lt;/li&gt;    &lt;li&gt;Why companies hire consultants &lt;/li&gt;    &lt;li&gt;The profession of technology consultants &lt;/li&gt;    &lt;li&gt;BOZO consulting &lt;/li&gt;    &lt;li&gt;Personality consulting &lt;/li&gt;    &lt;li&gt;Sales consulting &lt;/li&gt;    &lt;li&gt;Is consulting right for you? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope your interest is, likewise, pricked.&lt;/p&gt;  &lt;p&gt;Needless to say, Aaron’s book is on my list of books to buy.&lt;/p&gt;&lt;img src="http://blogs.imeta.co.uk/GSutcliffe/aggbug/751.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Grant Sutcliffe</dc:creator>
            <guid>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/02/want-to-be-a-consultant.aspx</guid>
            <pubDate>Wed, 02 Sep 2009 08:03:29 GMT</pubDate>
            <wfw:comment>http://blogs.imeta.co.uk/GSutcliffe/comments/751.aspx</wfw:comment>
            <comments>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/09/02/want-to-be-a-consultant.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.imeta.co.uk/GSutcliffe/comments/commentRss/751.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.imeta.co.uk/GSutcliffe/services/trackbacks/751.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2008 (SP1) crashes on opening a solution &amp;ndash; Event Name CLR20r</title>
            <link>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/29/visual-studio-2008-sp1-crashes-on-opening-a-solution-ndash.aspx</link>
            <description>&lt;p&gt;I have encountered this problem on two different occasions.&lt;/p&gt;
&lt;p&gt;In each case, I had made only minimal code changes before Visual Studio hung while running the solution in debug build configuration. In the once case, I had added a new class file and some code to use the class. In the other case, I had only modified parameters to methods and some class constructors. I had also set several new breakpoints and bookmarks in code relating to the changes I had made. &lt;/p&gt;
&lt;p&gt;The only way to deal with the hung process was kill the devenv.ex process in Windows Task Manager. After this, I was not able to open the solution in Visual Studio again. Other solutions could be open and runs as per normal in the IDE.&lt;/p&gt;
&lt;p&gt;During the process of opening the solution, Visual Studio’s status bar displays the progress of the projects /files being loaded. Then ‘Ka Boom’, the below dialog is displayed. &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/VisualStudio2008SP1crashesonopeningasolu_D135/clip_image002_2.jpg"&gt;&lt;img title="clip_image002" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="408" alt="clip_image002" width="461" border="0" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/VisualStudio2008SP1crashesonopeningasolu_D135/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The full detail of the problem in the above screen shot, is listed below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#0080c0"&gt;Problem signature:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Problem Event Name: CLR20r3&lt;/p&gt;
&lt;p&gt;Problem Signature 01: devenv.exe&lt;/p&gt;
&lt;p&gt;Problem Signature 02: 9.0.30729.1&lt;/p&gt;
&lt;p&gt;Problem Signature 03: 488f2b50&lt;/p&gt;
&lt;p&gt;Problem Signature 04: System&lt;/p&gt;
&lt;p&gt;Problem Signature 05: 2.0.0.0&lt;/p&gt;
&lt;p&gt;Problem Signature 06: 4889de7a&lt;/p&gt;
&lt;p&gt;Problem Signature 07: 5a2&lt;/p&gt;
&lt;p&gt;Problem Signature 08: 0&lt;/p&gt;
&lt;p&gt;Problem Signature 09: System.TypeInitialization&lt;/p&gt;
&lt;p&gt;OS Version: 6.0.6001.2.1.0.256.6&lt;/p&gt;
&lt;p&gt;Locale ID: 2057&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#0080c0"&gt;Additional information about the problem:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;LCID: 1033&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#0080c0"&gt;Read our privacy statement:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=50163&amp;amp;clcid=0x0409"&gt;&lt;font color="#0080c0"&gt;&lt;strong&gt;http://go.microsoft.com/fwlink/?linkid=50163&amp;amp;clcid=0x0409&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Nice one! The information contained in the dialog is not helpful. Neither are the options that are provided. Options 1 &amp;amp; 2 only get one stuck in a continual loop of Open-Crash-Open for the solution. Attempts to debug the problem (Option 3) reveal rather useless information for a general developer trying to identify the problem.&lt;/p&gt;
&lt;p&gt;My attempts to open solution included: (1) System hard and soft re-boots ; (2) Getting the latest version of the solution from Team Foundation Server; (3) Rolling back changes I had made; and (4) eliminating Visual Studio Add-ins such as Jet Brains Resharper (ver sion 4.5). None of these helped. Blog post and information I found on forums about this issue do not reveal a consistent resolution to the problem (with some folk even reinstalling Visual Studio 2008 and the service packs; others removing and adding references from projects; or removing and re-adding projects in the solution). &lt;/p&gt;
&lt;p&gt;I deleted the *.sou file for the solution and I was up and running sans my break points and bookmarks. So maybe the .sou file had become corrupted or Visual Studio was not able to deal with some combination of the elements it stores. Who cares? I was going again! Hopefully this might serve as a quick first option to resolve the issue for those who encounter it.&lt;/p&gt;&lt;img src="http://blogs.imeta.co.uk/GSutcliffe/aggbug/733.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Grant Sutcliffe</dc:creator>
            <guid>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/29/visual-studio-2008-sp1-crashes-on-opening-a-solution-ndash.aspx</guid>
            <pubDate>Wed, 29 Jul 2009 13:56:13 GMT</pubDate>
            <wfw:comment>http://blogs.imeta.co.uk/GSutcliffe/comments/733.aspx</wfw:comment>
            <comments>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/29/visual-studio-2008-sp1-crashes-on-opening-a-solution-ndash.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>http://blogs.imeta.co.uk/GSutcliffe/comments/commentRss/733.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.imeta.co.uk/GSutcliffe/services/trackbacks/733.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.Net 4.0 Heads-up</title>
            <link>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/20/723.aspx</link>
            <description>&lt;p&gt; &lt;a target="_blank" href="http://blogs.msdn.com/mikeormond/"&gt;Mike Ormond&lt;/a&gt; (Microsoft UK) presented a “What’s new in ASP.Net 4.0” at this month’s Southampton &lt;a target="_blank" href="http://www.nxtgenug.net/"&gt;NxtGenUg&lt;/a&gt; meeting. While there appears to be no major technology change, there are a host of changes to enhance performance; and augment the current user and developer experience (ASP.Net 3.5). The discussion focused primarily on the new features in the Presentation Layer. It was a pretty lively as Mike competed head to head with a brass band practicing in the adjoining room of the Venue. Mike deliver key points in sync with many crescendos of the Harry Potter and other theme tunes . Good effort! &lt;/p&gt;
&lt;p&gt;The next Southampton NxtGenUp meeting is scheduled for August 20th. Redgate Software Test Engineer &lt;a target="_blank" href="http://blog.benhall.me.uk/"&gt;Ben Hall&lt;/a&gt; will be talking about testing ASP.Net applications.&lt;/p&gt;
&lt;p&gt;For for those who have not yet had a chance to play with the Beta 2 versions of Visual Studio 2010 and not able to attend the session, I have listed some of the content below.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Routing handler - WebForRoutHandler&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The same routing mechanism as used in MVC is provided for ASP.Net web pages. This is used to intercept requests to extract data or to direct requests as per the routing table information. In a similar fashion to ASP.Net MVC, the routing information is added to the application’s RouteTable in the Global.asax file. Check out &lt;a target="_blank" href="http://mostlylucid.net/archive/2009/01/25/asp.net-4.0-webform-routing-quick-rsquon-dirty-version.aspx"&gt;Scott Galloway’s blog&lt;/a&gt; for more.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_2.png"&gt;&lt;img title="image" style="BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; BORDER-RIGHT-WIDTH: 0px" height="150" alt="image" width="524" border="0" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Page.Keywords and Page.Description properties&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Assigning values to the Meta tag new Keyword and Description properties results in the values of these properties being rendered to the page as Keyword and Description.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_4.png"&gt;&lt;img title="image" style="BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; BORDER-RIGHT-WIDTH: 0px" height="90" alt="image" width="534" border="0" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_thumb_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;strong&gt;ClientIDMode property&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If this property is set to Static, then the IDs of the related control will not be altered by ASP.Net in the rendered page. This is good news when using jQuery as you no longer have to do the magic to locate controls at runtime.&lt;/p&gt;
&lt;p&gt;If the ClientIDMode property is set to Predictable, the same is achieved in Repeater and GridView controls where, for instance, a check box is rendered for each row of data. The checkboxes will be rendered with sequential numbers, ( CheckBox_05, CheckBox_06 …). The rendered name can be even further fine-tuned by specifying a ClientIDRowSuffix to be applied to each control specified in the ItemTemplate element nested in the TemplateField element. The rendered control IDs of the labels with the ID=”user” in the below code will be UserSuffix_UserID_1, UserSuffix_UserID_2 etc.&lt;/p&gt;
&lt;p&gt;ASP.NET currently generates pretty long names for the controls. Several hundred rows of long generated names will inevitably result in page bloat and performance issues. A further benefit of being able to control IDs of rendered controls (such as in repeaters), is that when a page is configured to use View State, its size can be limited to some degree.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_10.png"&gt;&lt;strong&gt;&lt;img title="image" style="BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; BORDER-RIGHT-WIDTH: 0px" height="184" alt="image" width="495" border="0" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_thumb_4.png" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ListView EnablePersistedSelection property&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consider the situation in ASP.Net 3.5, where a ListView with Paging is populated with data extending over more than one page. If the user selects a Row – say Row 3 - and then navigates to subsequent pages, Row 3 remains selected in the subsequent pages of the ListView (provided the it contains at least 3 rows of data). In ASP.Net, this behaviour can be disabled by setting the EnablePersistedSelection to false. Mike describes this and some of the below changes (with screen shots) in his blog &lt;a target="_blank" href="http://blogs.msdn.com/mikeormond/archive/2009/06/29/asp-net-4-0-enhancements-to-data-controls.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FormView rendering&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the current version of ASP.Net FormView always renders as a table. A RenderTable property of the FormView Control has been provided in ASPNet 4.0. If this is set to false the control will not be rendered as a table. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;strong&gt;QueryExtender Control&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This control works with LinqDataSources or EntityDataSources. Properties that can be applied to order and filter data. Doing so will essentially extend the Linq expression tree for the query. Some of the attributes are:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;OrderByExpression – obviously orders the queried data. &lt;/li&gt;
    &lt;li&gt;RangeExpression – obviously specifies the range of data to be returned. &lt;/li&gt;
    &lt;li&gt;Parameters – parameters passed into the query &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_8.png"&gt;&lt;strong&gt;&lt;img title="image" style="BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; BORDER-RIGHT-WIDTH: 0px" height="246" alt="image" width="496" border="0" src="http://blogs.imeta.co.uk/images/blogs_imeta_co_uk/GSutcliffe/WindowsLiveWriter/ASP.4.0Headsup_142A5/image_thumb_3.png" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Control level View State rendering&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ASP.Net 3.5 allows one to disable View State at the page level. In Asp.Net 4.0, the View State can be set to render at a control level. Controls inherit View State rendering from their container. Therefore, if the View State is disabled at the page level, a developer can enable View State if required at a control level.&lt;/p&gt;
&lt;p&gt;  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compressed Session State&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Session state can to be compressed for State Server or SQL Server persistence prior to being sent across the wire. When configured for compression (set in the web.config file), the Session State will be compressed using GZip.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caching&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Caching is being factored out of the Web namespace. This will permit the .Net Framework caching to be used in Winforms / WPF applications without the need for referencing Web assemblies.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;strong&gt;Ajax&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mike talked about the Ajax enhancements which are quite compelling. There are probably too many to try and list them in this blog but the new DataView ASP.Net Ajax control allows declarative data binding is worth mentioning. The DataContext handles tracking of data changes therefore permitting batch operations. More on this can be found &lt;a target="_blank" href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;here&lt;/a&gt; on the official ASP.Net Website &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The following URI points to a white paper describing the above changes and others made to ASP.Net 4.0 B1 version. &lt;a href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;http://www.asp.net/learn/whitepapers/aspnet40/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.imeta.co.uk/GSutcliffe/aggbug/723.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Grant Sutcliffe</dc:creator>
            <guid>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/20/723.aspx</guid>
            <pubDate>Mon, 20 Jul 2009 22:06:09 GMT</pubDate>
            <wfw:comment>http://blogs.imeta.co.uk/GSutcliffe/comments/723.aspx</wfw:comment>
            <comments>http://blogs.imeta.co.uk/GSutcliffe/archive/2009/07/20/723.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.imeta.co.uk/GSutcliffe/comments/commentRss/723.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.imeta.co.uk/GSutcliffe/services/trackbacks/723.aspx</trackback:ping>
        </item>
    </channel>
</rss>