﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <title>Christoph Ertl's Blog</title>
    <link>http://www.christophertl.net/blog.aspx</link>
    <language>de-AT</language>
    <copyright>Christoph Ertl, 4020 Linz</copyright>
    <pubDate>Tue, 03 Apr 2012 01:08:31 GMT</pubDate>
    <lastBuildDate>Tue, 03 Apr 2012 01:08:31 GMT</lastBuildDate>
    <generator>Raccoom rss generator, website http://raccoom.sytes.net, email chrisdarebell@msn.com</generator>
    <ttl>120</ttl>
    <item>
      <title>Update of Umbraco Tag Cloud to support new Umbraco 4.5 XML Schema</title>
      <description>&lt;P&gt;&lt;A href="/media/8152/Windows-Live-Writer_Update-of-Umbraco-Tag-Cloud-to-support-n_13273_image_2.png"&gt;&lt;img alt="tagcloud" border="0" style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 3px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: left; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" align="left" title="Tag Cloud" src="/media/8157/Windows-Live-Writer_Update-of-Umbraco-Tag-Cloud-to-support-n_13273_image_thumb.png" width="60" height="60"/&gt;&lt;/A&gt;Want to use the Umbraco Tag Cloud package with version 4.5 of Umbraco? Here is the solution for you. It's just a click away.&lt;/P&gt;
&lt;P&gt;With version 4.5 Umbraco introduced a new internal node structure. The TagCloud package works with this structure and therefore has been invalidated. &lt;/P&gt;
&lt;P&gt;If you are new to the Tag Cloud package then at first please read the &lt;A title="Umbraco Tag Cloud package" href="/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx" target=_blank&gt;original post introducing this package&lt;/A&gt;. &lt;/P&gt;
&lt;H1&gt;Working with the new XML schema&lt;/H1&gt;
&lt;P&gt;To support the new structure and all future versions a new method called &lt;FONT face="Courier New"&gt;&lt;STRONG&gt;RenderTagsX&lt;/STRONG&gt;&lt;/FONT&gt; was introduced (RenderTags is still available !). There is only one difference to the RenderTags method. The second parameter is no longer an alias rather than it's an XPath Expression to the xml structure containing the Tags.&lt;/P&gt;
&lt;P&gt;When working with the new structure you would again pass "categories" because it's now a child node.&lt;/P&gt;
&lt;H1&gt;Related Links&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="/download/tagcloud.zip" target=_blank&gt;Download the package&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx" target=_blank&gt;Umbraco Tag Cloud Package&lt;/A&gt; 
&lt;LI&gt;&lt;A title="Umbraco XML Schema" href="/go.aspx?u=http://our.umbraco.org/wiki/reference/xslt/45-xml-schema" target=_blank&gt;Umbraco 4.5 XML Schema&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;</description>
      <link>http://www.christophertl.net/blog/2011/2/15/update-of-umbraco-tag-cloud-to-support-new-umbraco-45-xml-schema.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Tue, 15 Feb 2011 18:42:53 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1848.aspx</guid>
    </item>
    <item>
      <title>Debugging the Umbraco Tag Cloud package</title>
      <description>&lt;P&gt;&lt;img alt="tag cloud" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 3px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="tag cloud" src="/media/7788/WindowsLiveWriter_UpdateUmbracoTagCloudPackage_AC2D_image_9.png" width="60" height="60"/&gt;Debugging the &lt;A href="/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx" target=_blank&gt;Umbraco Tag Cloud package&lt;/A&gt; would be great. But it’s not possible and not necessary. &lt;BR&gt;However, one thing is really helpful when having problems with the counted nodes. Checking which nodes are counted.&lt;/P&gt;
&lt;P&gt;Over time I’ve got repeated mails regarding having problems with counting the nodes. The problem often was a wrong or misunderstood result of the xpath expression. The “problem” with the &lt;FONT face="Courier New"&gt;RenderTags&lt;/FONT&gt; method is, that it just returns a result and you have no glue which nodes where counted.&lt;/P&gt;
&lt;P&gt;A very easy way to check if your statements counts the nodes you want to count is the following.&lt;/P&gt;
&lt;P&gt;After your code for the cloud&lt;/P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#2b91af&gt;&lt;FONT color=#2b91af size=2 face="Courier New"&gt;xsl:value-of&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;TagCloud.Helper:RenderTags(&lt;STRONG&gt;$currentPage/...&lt;/STRONG&gt;, 'categories', '', 6)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;disable-output-escaping&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;yes&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt; /&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;you place a &lt;FONT face="Courier New"&gt;for-each&lt;/FONT&gt; with the xpath statement you pass as first parameter to &lt;FONT face="Courier New"&gt;RenderTags&lt;/FONT&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2 face="Courier New"&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#2b91af&gt;&lt;FONT color=#2b91af&gt;xsl:for-each&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;STRONG&gt;$currentPage/...&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af&gt;&lt;FONT color=#2b91af&gt;xsl:value-of&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;current()/@nodeName&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;/&amp;gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;/&amp;gt; &lt;BR&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af&gt;&lt;FONT color=#2b91af&gt;xsl:for-each&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=2 face="Courier New"&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;With this code you get a list of nodes which are calculated within the tag cloud calculator. There you should see where the problem is located. 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ATTENTION: &lt;/STRONG&gt;It is very important that you place this code at the same template where the tag cloud code is placed because the result depends on the node this template is executed on. It’s all about the hierarchy of your nodes!&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2010/3/18/debugging-the-umbraco-tag-cloud-package.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Thu, 18 Mar 2010 18:49:18 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1833.aspx</guid>
    </item>
    <item>
      <title>Keyboard layout - again</title>
      <description>&lt;P&gt;&lt;img alt="Fn" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 3px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="Fn" src="/media/8032/WindowsLiveWriter_Keyboardlayoutagain_11F66_image_6.png" width="60" height="60"/&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;It seems that keyboard layouts are my new favorite topic. Well, it’s really annoying when working with notebooks and searching for keys or pressing some weird combinations because of different positions of keys. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;A few days ago I had to work with a notebook with another strange keyboard layout. As I realized afterwards it’s not that unusual on notebooks. &lt;/P&gt;
&lt;P&gt;The annoying point about the layout was the position of the Fn key. I’m used to open the Windows menu using the shortcut Strg-Esc (Ctrl-Esc).&amp;nbsp; On the notebook the most left key was the Fn key instead of the expected Ctrl key. Pressing the Fn key is usually not such a problem. But have a look at the Esc key.&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/8037/WindowsLiveWriter_Keyboardlayoutagain_11F66_image_8.png"&gt;&lt;img alt="Keyboard layout" border="0" style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="Keyboard layout" src="/media/8042/WindowsLiveWriter_Keyboardlayoutagain_11F66_image_thumb_2.png" width="178" height="244"/&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;So guess what. I shutted down the notebook more than once.&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2010/3/14/keyboard-layout---again.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 14 Mar 2010 21:59:04 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1830.aspx</guid>
    </item>
    <item>
      <title>Autohotkey key remapping</title>
      <description>&lt;P&gt;&lt;img alt="Keyboard layout" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="Keyboard layout" src="/media/7890/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_3.png" width="60" height="60"/&gt;In my &lt;A href="/blog/2010/1/31/remapping-keys-of-keyboard-to-refine-keyboard-layout.aspx" target=_blank&gt;last post&lt;/A&gt; I used &lt;A href="/go.aspx?u=http://www.randyrants.com/2008/12/sharpkeys_30.html" target=_blank&gt;SharpKeys&lt;/A&gt; to remap the keyboard layout because of my intensive use of home and end keys. Great deal. Works really fine. &lt;BR&gt;But this solution has one major drawback. At the office I use an external keyboard. In this case&amp;nbsp; I have the inverse of the annoying keyboard layout.&lt;/P&gt;
&lt;P&gt;Changing the keyboard mapping to the current situation with SharpKeys is not a solution as the steps would be&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Start SharpKeys 
&lt;LI&gt;Enter/Remove mapping 1 
&lt;LI&gt;Enter/Remove mapping 2 
&lt;LI&gt;Enter/Remove mapping 3 
&lt;LI&gt;Enter/Remove mapping 4 
&lt;LI&gt;Write to registry 
&lt;LI&gt;Logout 
&lt;LI&gt;Login &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;It’s takes time, is stupid work and is error prone.&lt;/P&gt;
&lt;P&gt;So I started searching again and found the tool called &lt;A href="/go.aspx?u=http://www.autohotkey.com/" target=_blank&gt;AutoHotkey&lt;/A&gt;. This tool supports anything around keystrokes, running macros and many more. And it also provides key remapping. The first intention was to forget the solution with SharpKeys and use AutoHotkey instead. But it’s not that simple.&lt;/P&gt;
&lt;P&gt;Pro SharpKeys: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The settings are written to the registry. 
&lt;LI&gt;The application doesn’t have to run to get the mapping work. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Pro AutoHotkey: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Easy to change settings. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;The double remapping solution&lt;/H1&gt;
&lt;P&gt;The solution that' fits best for me is as follows:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Using SharpKeys to remap the keyboard to work best with the keyboard of the notebook. Let’s call it “Device settings”. &lt;BR&gt;This is the default setting of my device and no application is running to get this mapping done. 
&lt;LI&gt;Using AutoHotkey to remap to original keys when using an external keyboard. Let’s call it “External settings”. &lt;BR&gt;This mode needs an application to run. With external power supply and a very small footprint this is really no problem. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The Steps to switch to External settings or back to Device settings are:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Start/Stop ExternalKeyboard.ahk &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Great, I love it. A little tricky but works really great.&lt;/P&gt;
&lt;P&gt;I was really surprised how easy the key remapping was done with an AutoHotkey script. It’s that simple:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Home::PgUp &lt;BR&gt;End::PgDn &lt;BR&gt;PgUp::Home &lt;BR&gt;PgDn::End&lt;/FONT&gt;&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2010/2/6/autohotkey-key-remapping.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sat, 06 Feb 2010 21:57:02 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1822.aspx</guid>
    </item>
    <item>
      <title>Remapping keys of keyboard to refine keyboard layout</title>
      <description>&lt;P&gt;&lt;img alt="Keyboard layout" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="Keyboard layout" src="/media/7890/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_3.png" width="60" height="60"/&gt; &lt;/P&gt;
&lt;P&gt;There are a lot of things to consider when coming to a decision about which notebook to buy. Among the obvious facts like cpu power, memory, ports etc. there’s another important fact to consider. &lt;BR&gt;The keyboard layout !!&lt;/P&gt;
&lt;P&gt;Some manufacturers are playing around with the layout that you even cannot find the key you are looking for when searching with your eyes. Hitting it while typing is impossible.&lt;/P&gt;
&lt;P&gt;What are most misplaced keys?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;enter key (too small) 
&lt;LI&gt;right shift key (too small or at the wrong position) 
&lt;LI&gt;home, end keys (access via Fn-Key) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Depending on your computer usage you will not even recognize this fact. But if you are typing a lot you will despair on it. &lt;BR&gt;And if you are writing source code, which is a per line writing, you will miss the home and end keys a lot. I can’t live without them.&lt;/P&gt;
&lt;P&gt;So when searching for my new daily companion I had a look at the keyboard layout especially the size and position of the shift key and the position of the enter key. I couldn’t find that much business notebooks having the home and end keys as separate keys. We are talking about 12” subnotebooks. So what.&lt;/P&gt;
&lt;P&gt;I corrected the keyboard layout with software. In my case home is “under” page up and end “under” page down. I just swapped this keys. Great. I really like it.&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/7895/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_9.png"&gt;&lt;img alt="image" border="0" style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="image" src="/media/7900/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_thumb_2.png" width="240" height="102"/&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;To change keys you can use the tool &lt;A href="/go.aspx?u=http://www.randyrants.com/2008/12/sharpkeys_30.html" target=_blank&gt;SharpKeys&lt;/A&gt; which is simple and great.&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/7905/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_4.png"&gt;&lt;img alt="screenshot sharpkeys" border="0" style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="screenshot sharpkeys" src="/media/7910/WindowsLiveWriter_RemappingKeysofkeyboard.DeveloperEdition_104C6_image_thumb.png" width="244" height="184"/&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2010/1/31/remapping-keys-of-keyboard-to-refine-keyboard-layout.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 31 Jan 2010 21:52:50 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1821.aspx</guid>
    </item>
    <item>
      <title>Fujitsu Lifebook P3110 – Keyboard layout</title>
      <description>&lt;P&gt;&lt;A href="/media/7867/WindowsLiveWriter_FujitsuLifebookP3110Keyboardlayout_1361A_image_4.png" target=_blank&gt;&lt;img alt="Fujitsu Lifebook P3110 - Keyboard layout" border="0" style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Fujitsu Lifebook P3110 - Keyboard layout" src="/media/7872/WindowsLiveWriter_FujitsuLifebookP3110Keyboardlayout_1361A_image_thumb_1.png" width="240" height="94"/&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A title=http://ts.fujitsu.com/products/mobile/notebooks/lifebook_p3_series.html href="http://ts.fujitsu.com/products/mobile/notebooks/lifebook_p3_series.html" target=_blank&gt;http://ts.fujitsu.com/products/mobile/notebooks/lifebook_p3_series.html&lt;/A&gt;&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2010/1/31/fujitsu-lifebook-p3110-–-keyboard-layout.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 31 Jan 2010 21:08:31 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1814.aspx</guid>
    </item>
    <item>
      <title>Update of Umbraco Tag Cloud Package</title>
      <description>&lt;P&gt;&lt;img alt="tag cloud" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 3px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="tag cloud" src="/media/7788/WindowsLiveWriter_UpdateUmbracoTagCloudPackage_AC2D_image_9.png" width="60" height="60"/&gt; It was time for an update of the Tag Cloud Package introduced with the post &lt;A href="/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx"&gt;Tag cloud for Umbraco CMS blog package&lt;/A&gt;. The bug removed is about having only two tags which caused a weight of -2147483648 for one of the tags.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;If you already using this package just &lt;A href="/download/tagcloud.zip"&gt;download&lt;/A&gt; and replace the TagCloud.dll. &lt;/P&gt;
&lt;P&gt;If you are new to the package read the original post about my package at the introducing post &lt;A href="/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx"&gt;Tag cloud for Umbraco CMS blog package&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Feedback is welcome.&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2009/12/8/update-of-umbraco-tag-cloud-package.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Tue, 08 Dec 2009 11:38:37 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1798.aspx</guid>
    </item>
    <item>
      <title>Google Wave - Die neue Kommunikation</title>
      <description>&lt;P&gt;&lt;A href="/go.aspx?u=http://wave.google.com/" target=_blank&gt;&lt;img alt="Google Wave" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 3px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" title="Google Wave" src="/media/7709/WindowsLiveWriter_GoolgeWaveDieEvolutionderKommunikation_8631_image_5.png" width="60" height="60"/&gt;&lt;/A&gt; Email, Chatten und gemeinsames Arbeiten an Dokumenten sind ja heutzutage allgegenwärtig. Das Problem der vorhandenen Konzepte ist - vor allem bei Emails - dass es keinen Kommunikationsfaden gibt, dem man folgen kann. Man denke nur an eine Emailkonversation zweier Partner. Nachdem bereits einige Mails hin- und her- geschickt wurden, wird ein weiterer Partner involviert. Spätestens hier entsteht ein Durcheinander, weil alle Beteiligten auf unterschiedliche Versionen der Mails antworten. Das "Textchaos" ist vorprogrammiert. &lt;BR&gt;Auf die Probleme basierend auf inkonsequente Nutzung von Emails möchte ich hier gar nicht eingehen.&lt;/P&gt;
&lt;P&gt;Google hat sich dieses Problems angenommen und &lt;A href="/go.aspx?u=http://wave.google.com/" target=_blank&gt;Google Wave&lt;/A&gt; entwickelt. Das Grundkonzept ist denkbar einfach und die Umsetzung sehr beeindruckend.&lt;/P&gt;
&lt;P&gt;Anstatt einer Nachricht, auf die eine oder mehrere Antworten geschickt werden, steht hier das Unterhaltungsthema, die sogenannte Wave, im Vordergrund. Es wird zuerst ein "Behälter" für die Kommunikation über ein bestimmtes Thema erstellt. In diesen Behälter schreiben dann alle Beteiligten hinein - und das live. Videos, Screenshots und eine Beschreibung ist auf der &lt;A href="/go.aspx?u=http://wave.google.com/" target=_blank&gt;Homepage von Google Wave&lt;/A&gt; zu finden.&lt;/P&gt;
&lt;P&gt;Das Werkzeug wurde erstmals auf der Google IO vorgestellt und fand bereits beim anwesenden Publikum sehr großen Anklang. &lt;BR&gt;Seitdem rollt die Welle immer mehr in die Öffentlichkeit. Dass hier nicht nur positive Stimmen zu hören sind, liegt in der Natur der Sache. Eines muss man auf jeden Fall festhalten. Es war an der Zeit für ein völlig neues, auf den Erfahrungen und Problemen der Vergangenheit basiertes, Konzept zu entwickeln. Und &lt;A href="/go.aspx?u=http://www.google.at/" target=_blank&gt;Google&lt;/A&gt; ist das meines Erachtens sehr gut gelungen.&lt;/P&gt;
&lt;P&gt;Wie die Welle weiterrollt und sich entwickelt ist abzuwarten. Es besteht auf jeden Fall Hoffnung für eine einfachere und produktivere Kommunikation. Vor allem wenn weitere Hersteller auf diesen Zug aufspringen (Und das hoffentlich so, dass alle "Wave" Anbieter zusammenarbeiten).&lt;/P&gt;
&lt;P&gt;In Zukunft werden sicherlich viele Menschen mit Google Wave schreiben. Mal sehen wie viele "Googleschreiber" es geben wird ;-)&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2009/9/25/google-wave---die-neue-kommunikation.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Fri, 25 Sep 2009 15:39:41 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1788.aspx</guid>
    </item>
    <item>
      <title>WPF Grid: Percentaged columns height/width</title>
      <description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 3px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="WPF 3.5 SP1" align="left" src="http://i3.windowsclient.net/SiteFiles/1000/wpfsp1/wpf.png?cdn_id={b4d0570c}" width="60" height="60" /&gt;When defining rows of a WPF grid you can use several ways to set the height of the row. Automatic, absolute values or relative values. But there's no notation for percent values.&lt;/p&gt;  &lt;p&gt;But instead of writing Height=&amp;quot;25%&amp;quot; you just use the relative notation.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;25*&amp;quot; /&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;=&amp;quot;75*&amp;quot; /&amp;gt;              &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="" src="http://www.christophertl.net/media/7642/WindowsLiveWriter_WPFGridPercentualcolumnsheightwidth_BBF2_image_3.png" width="310" height="149" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h1&gt;Using this notation with databinding&lt;/h1&gt;  &lt;p&gt;Assume we have a simple data class&lt;/p&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;     &lt;p&gt;&lt;font size="2" face="Courier New"&gt;public &lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;Data&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt; {              &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/font&gt; Percent1 { &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/font&gt;; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/font&gt;; }             &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;/font&gt; Percent2 { &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;/font&gt;; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;/font&gt;; }             &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;and bind the two properties to the two rows of the grid&lt;/font&gt;&lt;/p&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;     &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Path&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=Percent1}&amp;quot; /&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Path&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=Percent2}&amp;quot; /&amp;gt;                &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;and assign the &lt;font face="Courier New"&gt;DataContext&lt;/font&gt; property&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;DataContext = &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt; &lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;Data&lt;/font&gt;&lt;/font&gt;() { Percent1=&lt;font color="#ff00ff"&gt;&lt;font color="#ff00ff"&gt;25&lt;/font&gt;&lt;/font&gt;, Percent2=&lt;font color="#ff00ff"&gt;&lt;font color="#ff00ff"&gt;75&lt;/font&gt;&lt;/font&gt; };&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;we get a grid with the first row's height set to 25 and second row's height set to 75 in absolute values. As you can see the rows have the correct height but they do not use the whole height of the grid. To get this fixed we need to use the star notation again. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="" src="http://www.christophertl.net/media/7647/WindowsLiveWriter_WPFGridPercentualcolumnsheightwidth_BBF2_image_18.png" width="310" height="149" /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;We need to convert the values to get the visual result we want. And the conversion must be done at the data binding because it's part of the presentation of the data and not the data itself.      &lt;br /&gt;When working with WPF (not only in WPF) you should always consider if the logic is part of the presentation or the data being presented.&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;Converting the bound values&lt;/h1&gt;  &lt;p&gt;&lt;font size="2"&gt;To convert the values we create a simple converter class implementing the &lt;font face="Courier New"&gt;IValueConverter&lt;/font&gt; interface placed in the namespace &lt;font face="Courier New"&gt;System.Windows.Data&lt;/font&gt;. We just need to implement the convert method adding the star at the end of the value.&lt;/font&gt;&lt;/p&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;     &lt;p&gt;&lt;font size="2" face="Courier New"&gt;class &lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;PercentConverter&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;IValueConverter&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt; {              &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/font&gt; Convert(&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/font&gt; value,             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;Type&lt;/font&gt;&lt;/font&gt; targetType,             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/font&gt; parameter,&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;CultureInfo&lt;/font&gt;&lt;/font&gt; culture) {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;/font&gt; value.ToString() + &lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;&amp;quot;*&amp;quot;&lt;/font&gt;&lt;/font&gt;;             &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160; }          &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;#160; public&lt;/font&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;/font&gt; ConvertBack(....)&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;When we now use the converter for databinding&lt;/p&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;     &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Path&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=Percent1,&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;Converter&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;={&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; PercentConverter&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;}}&amp;quot; /&amp;gt;                &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;RowDefinition&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Height&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; Path&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=Percent2,&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;Converter&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;={&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt; PercentConverter&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;}}&amp;quot; /&amp;gt;                &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;p&gt;we get the result we wanted to have.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="" src="http://www.christophertl.net/media/7652/WindowsLiveWriter_WPFGridPercentualcolumnsheightwidth_BBF2_image_21.png" width="310" height="149" /&gt;&lt;/p&gt;</description>
      <link>http://www.christophertl.net/blog/2009/7/18/wpf-grid-percentaged-columns-heightwidth.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sat, 18 Jul 2009 13:07:02 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1779.aspx</guid>
    </item>
    <item>
      <title>Rueda de Casino Figuren als RSS feed</title>
      <description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 5px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="salsa dancing" border="0" alt="salsa dancing" align="left" src="http://www.christophertl.net/media/7601/WindowsLiveWriter_CasinodeRuedaFigurenalsRSSfeed_13710_image8.png" width="60" height="60" /&gt; Meine aufgezeichneten &lt;a href="/misc/tanzen/rueda.aspx"&gt;Rueda de Casino Figuren&lt;/a&gt; sind jetzt auch als RSS feed verfügbar. Damit bleibt man automatisch am neuesten Stand.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hier klicken: &lt;a href="http://www.christophertl.net/data/rss/rueda.xml" target="_blank"&gt;Rueda de Casino Figuren abonnieren&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Keine Ahnung worum es hier geht? Einfach &lt;a href="/blog/2008/11/16/rss-in-aller-kuerze.aspx" target="_blank"&gt;hier&lt;/a&gt; nachlesen.&lt;/p&gt;</description>
      <link>http://www.christophertl.net/blog/2009/6/24/rueda-de-casino-figuren-als-rss-feed.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Wed, 24 Jun 2009 19:48:44 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1769.aspx</guid>
    </item>
    <item>
      <title>Related Links in Umbraco</title>
      <description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 5px 3px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="related_documents_button" border="0" alt="related_documents_button" align="left" src="http://www.christophertl.net/media/6892/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image1.png" width="58" height="58" /&gt;Related links can be very useful to give the visitor an easy way to find additional information. This could be a page on your site or even a link to an external site.     &lt;br /&gt;How can this be realized with &lt;a href="/go.aspx?u=http://umbraco.org/" target="_blank"&gt;Umbraco&lt;/a&gt;?&lt;/p&gt;  &lt;p&gt;A built in functionality is not available addressing this issue.&lt;/p&gt;  &lt;p&gt;But there's already an extension package available. It's called &lt;a href="/go.aspx?u=http://www.nibble.be/%3Fp%3D46" target="_blank"&gt;Related Links&lt;/a&gt;. The package provides a property type allowing to add multiple internal and external links to a document.&lt;/p&gt;  &lt;p&gt;I really feel confident with Umbraco and it's flexibility. Hence, I always think twice before installing a package.&lt;/p&gt;  &lt;h1&gt;Working with built in Features&lt;/h1&gt;  &lt;p&gt;With a few steps we can solve this issue using built in features and even get more flexibility.&lt;/p&gt;  &lt;h2&gt;Create a document type&lt;/h2&gt;  &lt;p&gt;To solve this we introduce a new document type called &amp;quot;&lt;font face="Courier New"&gt;Alias&amp;quot;&lt;/font&gt; with two properties &amp;quot;&lt;font face="Courier New"&gt;Node&lt;/font&gt;&amp;quot; and &amp;quot;&lt;font face="Courier New"&gt;Url&lt;/font&gt;&amp;quot;. For easier editing we add a tab called &amp;quot;Settings&amp;quot; and assign the properties to this tab.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Properties of Alias Node" border="0" alt="Properties of Alias Node" src="http://www.christophertl.net/media/6950/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image5.png" width="440" height="118" /&gt; &lt;/p&gt;  &lt;p&gt;We want to add documents of this type to other documents. Therefore we must set the &lt;font face="Courier New"&gt;Alias&lt;/font&gt; document type as &amp;quot;Allowed child nodetype&amp;quot; of the document type where want the aliases to add to.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Set as allowed child node type" border="0" alt="Set as allowed child node type" src="http://www.christophertl.net/media/6907/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image10.png" width="371" height="139" /&gt; &lt;/p&gt;  &lt;h2&gt;Create an xslt file with macro&lt;/h2&gt;  &lt;p&gt;To render the links we create an XSLT file &lt;font face="Courier New"&gt;ListAliases.xslt&lt;/font&gt; with the corresponding macro.     &lt;br /&gt;In this xslt stylesheet we iterate over all child nodes and set the href attribute according to the kind of link.&lt;/p&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;     &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:for-each &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;$currentPage/node [@nodeTypeAlias = 'alias']&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:sort&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;@sortOrder&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;order&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;ascending&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;/&amp;gt;              &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;li&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:attribute&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;href&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:choose&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:when&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;test&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;string(./data [@alias = 'toUrl']) = ''&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:value-of&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;umbraco.library:NiceUrl(./data [@alias = 'toNode'])&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;/&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:when&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:otherwise&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:value-of&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;./data [@alias = 'toUrl']&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;/&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:otherwise&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:choose&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af" size="2" face="Courier New"&gt;xsl:attribute&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:value-of&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;@nodeName&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;/&amp;gt;              &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;a&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;li&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&amp;gt;              &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#2b91af"&gt;&lt;font color="#2b91af"&gt;xsl:for-each&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/font&gt;  &lt;h2&gt;Use the macro&lt;/h2&gt;  &lt;p&gt;The last step is to use the macro in the template where the related links should be displayed.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;...      &lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&amp;lt;h2&amp;gt;Related&amp;lt;/h2&amp;gt;      &lt;br /&gt;&amp;lt;?UMBRACO_MACRO macroAlias=&amp;quot;ListAliases&amp;quot; &amp;gt;&amp;lt;/?UMBRACO_MACRO&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;Working with the solution&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Sample content" border="0" alt="Sample content" align="right" src="http://www.christophertl.net/media/6912/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_15.png" width="127" height="68" /&gt;To create related links we now just have to add a child node of type &lt;font face="Courier New"&gt;Alias&lt;/font&gt; to our document for each related link we need.&lt;/p&gt;  &lt;p&gt;In this child nodes just set the Node or the url to link to.&lt;/p&gt;  &lt;p&gt;In this example we have two related links - one external (Umbraco) and one internal (My Blog).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.christophertl.net/media/6917/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Settings of external link" border="0" alt="Settings of external link" src="http://www.christophertl.net/media/6922/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_thumb_6.png" width="224" height="127" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://www.christophertl.net/media/6927/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Settings of internal link" border="0" alt="Settings of internal link" src="http://www.christophertl.net/media/6932/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_thumb_7.png" width="224" height="127" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The resulting page could look like the following&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Rendered content" border="0" alt="Rendered content" src="http://www.christophertl.net/media/6937/WindowsLiveWriter_RelationsofnodesinUmbraco_CED0_image_16.png" width="204" height="170" /&gt;&lt;/p&gt;  &lt;h1&gt;Key Benefits&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;First of all. A document type is the main feature of Umbraco and therefore this solution should work for all future releases and for all installations. See also &lt;a href="/blog/2009/6/14/cms-structure-granularity---not-only-in-umbraco.aspx" target="_blank"&gt;CMS structure granularity - not only in Umbraco&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;You can decide when to publish and when to remove the link by using the built in functionality available for all nodes. &lt;/li&gt;    &lt;li&gt;This solution is very extensible. You could add additional properties to the &lt;font face="Courier New"&gt;Alias&lt;/font&gt; document type for instance:       &lt;ul&gt;       &lt;li&gt;an image to be displayed next to the link &lt;/li&gt;        &lt;li&gt;a&amp;#160; flag for a special sort criteria&lt;/li&gt;        &lt;li&gt;a description which is displayed with the tooltip of the link.&lt;/li&gt;        &lt;li&gt;You could introduce a document type called &amp;quot;&lt;font face="Courier New"&gt;Alias group&amp;quot;&lt;/font&gt; for grouping the links in for instance &amp;quot;Related&amp;quot; and &amp;quot;Depends on&amp;quot;. &lt;/li&gt;        &lt;li&gt;You could even manage your links at the root of your content tree to reuse them at different nodes.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://www.christophertl.net/blog/2009/6/19/related-links-in-umbraco.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Fri, 19 Jun 2009 00:37:12 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1620.aspx</guid>
    </item>
    <item>
      <title>Rueda 2 - Maestro/Linz - Fr 12.06.09</title>
      <description>&lt;P&gt;Schon wieder eine Woche vorbei. Und natürlich wurden etliche Figuren getanzt und auch "neue" gelernt.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/ataque.aspx" target=_blank&gt;Ataqua&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/daiquiri.aspx" target=_blank&gt;Daiquiri&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/directo.aspx" target=_blank&gt;Directo&lt;/A&gt; &lt;img alt="salsa dancing" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 15px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="right" title="salsa dancing" src="/media/6805/WindowsLiveWriter_Rueda2MaestroLinzFr12.06.09_A764_image_thumb_7.png" width="178" height="280"/&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/el-fin.aspx" target=_blank&gt;El fin&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/el-train.aspx" target=_blank&gt;El train&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/enchufe.aspx" target=_blank&gt;Enchufe&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/enchufe-doble.aspx" target=_blank&gt;Enchufe doble&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/enchufe-moderno.aspx" target=_blank&gt;Enchufe moderno&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/enchufe-y-quedate.aspx" target=_blank&gt;Enchufe y quedate&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/enchufe-y-media.aspx" target=_blank&gt;Enchufe y media&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/festival-de-patines.aspx" target=_blank&gt;Festival de patines&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la.aspx" target=_blank&gt;Paseala&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la-complicado.aspx" target=_blank&gt;Paseala complicado&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/pisa.aspx" target=_blank&gt;Pisa&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/setenta-y-uno.aspx" target=_blank&gt;Setenta y uno&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/suelta.aspx" target=_blank&gt;Suelta&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Wie immer sind Kommentare und Korrekturen willkommen.&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2009/6/14/rueda-2---maestrolinz---fr-120609.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 14 Jun 2009 18:57:34 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1600.aspx</guid>
    </item>
    <item>
      <title>CMS structure granularity - not only in Umbraco</title>
      <description>&lt;P&gt;&lt;img alt="publish_button" border="0" style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px 4px 5px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" align="left" title="publish_button" src="/media/6781/WindowsLiveWriter_UmbracoNodegranularity_E8E7_image_20.png" width="58" height="58"/&gt;What is the content? What is the structure of the content? What is a document type? What is a property of a document type? How can I reuse documents? Flexibility versus usability? How to avoid different appearance of same kind of data? How to extend the system on the fly?&lt;/P&gt;
&lt;P&gt;These are some questions that come along when designing the internal structure of a CMS based website. Depending on your CMS some of them will be addressed with built in features, some of them could be done with some effort and some of them may not be solvable.&lt;/P&gt;
&lt;P&gt;Here I want to show a very simple case study concerning what could/should be a document type.&lt;/P&gt;
&lt;H1&gt;The site&lt;/H1&gt;
&lt;P&gt;We want to create a site providing news items. To keep it simple we forget about authors, date to appear, date to disappear, categories and so on.&lt;/P&gt;
&lt;P&gt;I will use the naming of the &lt;A href="/go.aspx?u=http://umbraco.org/" target=_blank&gt;Umbraco CMS&lt;/A&gt; for this case study.&lt;/P&gt;
&lt;H1&gt;Straight forward Solution&lt;/H1&gt;
&lt;P&gt;Our document template (&lt;FONT face="Courier New"&gt;NewsItem&lt;/FONT&gt;) contains only one dynamic property called "&lt;FONT face="Courier New"&gt;Content&lt;/FONT&gt;" of type "&lt;FONT face="Courier New"&gt;Rich text editor&lt;/FONT&gt;". The title of the article is the node name itself.&lt;/P&gt;
&lt;P&gt;Really simple. Let's write articles. Create a new content node with a meaningful name. Fill in your text in the Content area. Publish it. Ready.&lt;/P&gt;
&lt;P&gt;The authors of the content will write text, insert some pictures and everything will be fine. Style sheets are defined well, so all articles look just the same.&lt;/P&gt;
&lt;H1&gt;Content without structure&lt;/H1&gt;
&lt;P&gt;After a while you will realize that the authors add a section for related links to external resources in the content text. Some of them write a heading called "References" listing all links with a bullet list others add a bold text named "Related" and provide the links with a comma separated list.&lt;/P&gt;
&lt;P&gt;The result are articles formatted in many different ways destroying the corporate identity of the site.&lt;/P&gt;
&lt;P&gt;&lt;img alt="different_style" border="0" style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="different_style" src="/media/6786/WindowsLiveWriter_UmbracoNodegranularity_E8E7_image_3.png" width="450" height="145"/&gt; &lt;/P&gt;
&lt;H1&gt;Approach 1&lt;/H1&gt;
&lt;P&gt;The first approach would be to tell the authors that they should use a heading, call it "References" and to list the links using a bullet list. Maybe it would solve the problem if the authors work really consistent. Let's face it. Don't event think about this approach. You are using a CMS!&lt;/P&gt;
&lt;H1&gt;Approach 2&lt;/H1&gt;
&lt;P&gt;The next approach would be to add a property called "&lt;FONT face="Courier New"&gt;References&lt;/FONT&gt;" of type "&lt;FONT face="Courier New"&gt;Rich text editor&lt;/FONT&gt;" to our document type. This property would be used to write the links (again using a bullet list). The difference would be that the designer can decide how to call this section and where to place it. Even the formatting could be easier changed. Still not happy? Right.&lt;/P&gt;
&lt;P&gt;The authors must still ensure that the formatting of the links is consistent (bullet list). Changes of the formatting could only be done by rewriting each article (ok, style sheets would also help for some situations).&lt;/P&gt;
&lt;H1&gt;The solution&lt;/H1&gt;
&lt;P&gt;The solution in terms of a CMS is to introduce another document type called "&lt;FONT face="Courier New"&gt;LinkItem&lt;/FONT&gt;" containing a property "&lt;FONT face="Courier New"&gt;Url&lt;/FONT&gt;" of type "&lt;FONT face="Courier New"&gt;Text string&lt;/FONT&gt;". The Friendly name of this link would be again the name of the node. This LinkItem is then declared as a "Allowed child node type" of the "NewsItem" type.&lt;/P&gt;
&lt;P&gt;To add related links to a news item the authors add one child node of type LinkItem for each link. &lt;/P&gt;
&lt;H1&gt;Benefits&lt;/H1&gt;
&lt;P&gt;With this solution the authors now can again force their energy to write content and to provide related links. The designer can decide where to place the links, how to format them and even if they should be hidden in a special situation.&lt;/P&gt;
&lt;P&gt;That's why we use a CMS. Isn't it?&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2009/6/14/cms-structure-granularity---not-only-in-umbraco.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 14 Jun 2009 10:29:12 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1597.aspx</guid>
    </item>
    <item>
      <title>Rueda 2 - Maestro/Linz - Fr 05.06.09</title>
      <description>&lt;P&gt;Folgende Figuren wurden am Freitag im Maestro &lt;BR&gt;gelernt bzw. wiederholt.&lt;A href="/media/6662/WindowsLiveWriter_Rueda2MaestroLinz05.06.09_944C_image_26.png"&gt;&lt;img alt="Salsa dancing" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 15px 0px 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="right" title="Salsa dancing" src="/media/6667/WindowsLiveWriter_Rueda2MaestroLinz05.06.09_944C_image_thumb_12.png" width="152" height="240"/&gt;&lt;/A&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/daiquiri.aspx" target=_blank&gt;Daiquiri&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/el-fin.aspx" target=_blank&gt;El fin&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/festival-de-patines.aspx" target=_blank&gt;Festival de patines&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la.aspx" target=_blank&gt;Passe a la&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la-complicado.aspx" target=_blank&gt;Passe a la complicado&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la-por-abajo.aspx" target=_blank&gt;Passe a la por abajo&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/passe-a-la-por-arriba.aspx" target=_blank&gt;Passe a la por arriba&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/sombrero.aspx" target=_blank&gt;Sombrero&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/misc/tanzen/rueda/vacilala.aspx" target=_blank&gt;Vacilala&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Eine Übersicht über &lt;A href="/misc/tanzen/rueda.aspx" target=_blank&gt;Rueda de Casino Figuren&lt;/A&gt; ist &lt;A href="/misc/tanzen/rueda.aspx" target=_blank&gt;hier&lt;/A&gt; zu finden.&lt;/P&gt;</description>
      <link>http://www.christophertl.net/blog/2009/6/7/rueda-2---maestrolinz---fr-050609.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 07 Jun 2009 15:12:15 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1578.aspx</guid>
    </item>
    <item>
      <title>Neu in Linz - Cafe Valdès</title>
      <description>&lt;p&gt;&lt;a href="/go.aspx?u=http://www.cafe-valdes.at/" target="_blank"&gt;&lt;img style="border-right-width: 0px; margin: 0px 4px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://www.christophertl.net/media/5511/WindowsLiveWriter_NeueLocationinLinz_129BA_image_3.png" width="64" height="54" /&gt;&lt;/a&gt; In Linz gibt's ein neues Cafe zum Wohlfühlen. &lt;/p&gt;  &lt;p&gt;DJ Antonio de Cuba eröffnet sein eigenes Cafe mit kubanischem Flair. Unbedingt ansehen! &lt;/p&gt;  &lt;p&gt;Für Salsa Begeisterte gibt es jeden Samstag eine Fiesta Latina mit Salsa a lo cubano.&lt;/p&gt;  &lt;p&gt;&lt;a href="/go.aspx?u=http://www.cafe-valdes.at/" target="_blank"&gt;http://www.cafe-valdes.at/&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.christophertl.net/blog/2009/3/21/neu-in-linz---cafe-valdès.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sat, 21 Mar 2009 20:21:42 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1555.aspx</guid>
    </item>
    <item>
      <title>Different behavior in Debug and Release version of a .NET application - How to find the bug</title>
      <description>&lt;P&gt;&lt;A href="/media/5358/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_2.png"&gt;&lt;img alt="binary conflict" border="0" style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px 5px 5px 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" align="left" src="/media/5363/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_thumb.png" width="60" height="60"/&gt;&lt;/A&gt; A few days ago I had a problem at a .NET 1.1 project where the release version of the application had a different behavior than the debug version. I felt like in the old days when developing with C++ and struggling through precompiler instructions.&lt;/P&gt;
&lt;H1&gt;The beginning&lt;/H1&gt;
&lt;P&gt;Tried to reproduce the bug with a Unit test which was not possible. Had a detailed look at the production data and refined the unit test. No success. At this point I had the suspicion that this could' be a debug vs. release problem. Tried the unit test in release mode and the test failed.&lt;/P&gt;
&lt;P&gt;OK. There's a difference but how to find out where and what is the difference? And if found, why is there a difference?&lt;/P&gt;
&lt;H1&gt;Where's the difference?&lt;/H1&gt;
&lt;P&gt;Even with the information from the unit test it's not easy to find out why there is a difference. First of all we have to find the location of the difference. To find the location I used a profiler while running the unit test in debug and in release mode.&lt;/P&gt;
&lt;P&gt;Then I compared the two call stacks and within seconds I got the method where the difference was located.&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/5368/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_8.png"&gt;&lt;img alt="image" border="0" style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" src="/media/5373/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_thumb_3.png" width="472" height="51"/&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&lt;EM&gt;callstack (orderd by execution time) as expected in the debug execution.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/5378/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_10.png"&gt;&lt;img alt="image" border="0" style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" src="/media/5383/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_thumb_4.png" width="472" height="64"/&gt;&lt;/A&gt;&lt;BR&gt;&lt;EM&gt;different callstack (ordered by execution time) in the release execution.&lt;/EM&gt;&lt;/P&gt;
&lt;H1&gt;What's the difference?&lt;/H1&gt;
&lt;P&gt;Now we know the method were the difference is located. The next step is to compare the code of the release and debug assembly. This is best done using &lt;A href="/go.aspx?u=http://www.red-gate.com/products/reflector/" target=_blank&gt;Redgate's .NET reflector&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Comparing the methods is an easy task with .NET Reflector. If your method is too large you can use an &lt;A href="/go.aspx?u=http://www.codingsanity.com/diff.htm" target=_blank&gt;add-in&lt;/A&gt; which supports comparing two assemblies.&lt;/P&gt;
&lt;H1&gt;Why is there a difference?&lt;/H1&gt;
&lt;P&gt;While comparing the two version of the code you see in detail what's different. But why? &lt;/P&gt;
&lt;P&gt;The difference can be caused by some reasons:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Removed code in release assembly because of the &lt;A href="/go.aspx?u=http://msdn.microsoft.com/en-us/library/aa664622(VS.71).aspx" target=_blank&gt;Conditional&lt;/A&gt; attribute.&lt;BR&gt;Check the method which is missing in the callstack if it is marked with this attribute. 
&lt;LI&gt;The difference can also be caused by a compiler optimization like inlining etc. but this should not lead to a different behavior unless there is an 
&lt;LI&gt;Error in the compiler&lt;BR&gt;In this case you must try to change your code and see what's the result. A detailed inspection and understanding of the differences can help.&lt;/LI&gt;&lt;/OL&gt;
&lt;H1&gt;The found bug&lt;/H1&gt;
&lt;P&gt;For the sake of completeness the details about the bug I found. This bug only arises with the compiler shipped with Visual Studio .NET 2003. With Visual Studio .NET 2005/2008 there were no problems.&lt;/P&gt;
&lt;P&gt;The code written in the editor: &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;static&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;/FONT&gt; DoIt(&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;bool&lt;/FONT&gt;&lt;/FONT&gt; flag) {&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt;&lt;/FONT&gt;(flag) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;/FONT&gt;(MyDisposable d = DoItNormal()) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;}&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;}&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;else&lt;/FONT&gt;&lt;/FONT&gt; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;DoItDifferent();&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The debug version inspected with .NET Reflector:&lt;/P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT size=2 face="Courier New"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;A href="/media/5388/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_12.png"&gt;&lt;img alt="Debug assembly inspected" border="0" style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" src="/media/5393/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_thumb_5.png" width="260" height="189"/&gt;&lt;/A&gt; 
&lt;P&gt;The release version inspected with .NET Reflector:&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="/media/5398/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_14.png"&gt;&lt;img alt="Release assembly inspected" border="0" style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" src="/media/5403/WindowsLiveWriter_DifferentbehaviorinDebugandRelease_B3BD_image_thumb_6.png" width="320" height="183"/&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Removing the empty using block and calling &lt;FONT face="Courier New"&gt;Dispose()&lt;/FONT&gt; explicitly solves the problem.&lt;/P&gt;
&lt;H1&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="/go.aspx?u=http://www.red-gate.com/products/reflector/" target=_blank&gt;Redgate's .NET Reflector&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/go.aspx?u=http://www.codingsanity.com/diff.htm" target=_blank&gt;Diff&lt;/A&gt;: an add-in for .NET Reflector to show differences between two version of the same assembly 
&lt;LI&gt;&lt;A href="/go.aspx?u=http://www.jetbrains.com/profiler/" target=_blank&gt;JetBRAINS dotTRACE Profiler&lt;/A&gt; 
&lt;LI&gt;&lt;A href="/go.aspx?u=http://msdn.microsoft.com/en-us/library/aa664622(VS.71).aspx" target=_blank&gt;.NET Framework Conditional Attribute&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;</description>
      <link>http://www.christophertl.net/blog/2008/12/6/different-behavior-in-debug-and-release-version-of-a-net-application---how-to-find-the-bug.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sat, 06 Dec 2008 13:52:10 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1544.aspx</guid>
    </item>
    <item>
      <title>RSS in aller Kürze</title>
      <description>&lt;p&gt;&lt;a href="http://www.christophertl.net/media/5247/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_128pxFeedicon_svg.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 9px 4px 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="Feed-Icon" align="left" src="http://www.christophertl.net/media/5252/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_128pxFeedicon_svg_thumb.png" width="60" height="60"&gt;&lt;/a&gt; Sie besuchen täglich die gleichen Webseiten um nach Neuigkeiten zu suchen? In den meisten Fällen ist die Suche jedoch vergeblich? Warum verschwenden Sie Ihre Zeit?&lt;/p&gt; &lt;p&gt;Immer wieder stelle ich fest, dass das Thema RSS bei Internet Benutzern weitgehend unbekannt ist oder zumindest nicht genutzt wird. Dabei bietet diese Technologie einen wesentlichen Mehrwert für jeden interessierten Internet Benutzer. Und man muss kein Technik Profi sein um diesen Service zu nutzen.&lt;/p&gt; &lt;h1&gt;Was ist RSS ?&lt;/h1&gt; &lt;p&gt;RSS oder auch RSS-Feed ist ein Internet Nachrichten Format zum elektronischen Austausch von "Nachrichten".&lt;/p&gt; &lt;p&gt;RSS-Feeds werden auf "Webseiten" angeboten um deren Informationen elektronisch abholen zu können. Das Angebot reicht von klassischen Nachrichten über Event-Informationen bis hin zu privaten "Tagebüchern".&lt;/p&gt; &lt;h1&gt;Warum soll ich das verwenden ?&lt;/h1&gt; &lt;p&gt;Um Zeit zu sparen und den Komfort aktueller Technologien für sich zu nutzen !&lt;/p&gt; &lt;p&gt;Wenn Sie RSS verwenden, entscheiden &lt;strong&gt;Sie&lt;/strong&gt; welche Informationen Sie erhalten möchten und vergeuden keine Zeit auf der Suche nach neuen Informationen. Die Informationen kommen zu Ihnen und das automatisch.&lt;/p&gt; &lt;h2&gt;Ein Beispiel:&lt;/h2&gt; &lt;p&gt;Sie besuchen (mehrmals) täglich eine oder mehrere Webseiten um die aktuellsten Nachrichten zu lesen.&lt;br&gt;Das hat folgende wesentliche Nachteile für Sie:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Sie müssen aktiv auf die Webseite gehen und warten bis der Inhalt geladen ist&lt;/li&gt; &lt;li&gt;Sie müssen inhaltlich prüfen ob es Neuigkeiten gibt&lt;/li&gt; &lt;li&gt;Sie werden oft feststellen, dass keine Neuigkeiten vorhanden sind&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Je mehr Seiten Sie auf diese Weise durchforsten, desto stärker wirken sich die Nachteile aus.&lt;/p&gt; &lt;p&gt;Unter Verwendung von RSS entscheiden Sie einmal, dass Sie an Neuigkeiten dieser Webseite interessiert sind. Ein Computer Programm erledigt den Rest für Sie indem es Sie automatisch über neue Neuigkeiten informiert.&lt;/p&gt; &lt;p&gt;Aufgrund des Titels können Sie entscheiden ob Sie die jeweilige Nachricht lesen möchten.&lt;/p&gt; &lt;p&gt;Habe ich Ihr Interesse geweckt? Dann lesen Sie weiter.&lt;/p&gt; &lt;h1&gt;Was benötige ich dazu ?&lt;/h1&gt; &lt;p&gt;Um RSS-Feeds zu abonnieren benötigen Sie einen sogenannten FeedReader. Das ist ein Computer Programm, dem Sie mitteilen welche Feeds sie abonnieren möchten und das Sie dann in geeigneter Form über Neugikeiten informiert.&lt;/p&gt; &lt;h2&gt;Integrierte Reader&lt;/h2&gt; &lt;p&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.microsoft.com/germany/windows/internet-explorer/download-ie.aspx"&gt;Internet Explorer 7.0&lt;/a&gt;, &lt;a target="_blank" href="/go.aspx?u=http://www.mozilla-europe.org/de/"&gt;Firefox 1.0&lt;/a&gt;, &lt;a target="_blank" href="/go.aspx?u=http://office.microsoft.com/de-at/outlook/FX100487751031.aspx"&gt;Outlook 2007&lt;/a&gt; und andere bieten bereits die Möglichkeit an, Feeds zu abonnieren. Sie können also sofort loslegen und arbeiten in einem Ihnen vertrautem Programm.&lt;/p&gt; &lt;h2&gt;Computer Programm auf Ihrem Computer&lt;/h2&gt; &lt;p&gt;Der FeedReader wird heruntergeladen und lokal installiert. Diese Programme sind speziell dafür entwickelt und bieten teilweise mehr Komfort und Möglichkeiten.&lt;/p&gt; &lt;p&gt;&lt;a title="FeedDemon" target="_blank" href="/go.aspx?u=http://www.bradsoft.com/feeddemon/"&gt;FeedDemon&lt;/a&gt; - &lt;a target="_blank" href="/go.aspx?u=http://rssbandit.org/"&gt;RSS Bandit&lt;/a&gt; - &lt;a target="_blank" href="/go.aspx?u=http://www.newsgator.com/Individuals/NetNewsWire/"&gt;NetNewsWire (Mac OS)&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Online Reader&lt;/h2&gt; &lt;p&gt;Eine Online Plattform, bei der man sich registriert, online seine Feeds abonniert und auch dort liest. Der Vorteil ist die ständige Verfügbarkeit Ihrer Feeds egal wo Sie gerade sind und welches Betriebssystem Sie gerade verwenden.&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.newsgator.com/"&gt;Newsgator&lt;/a&gt; - &lt;a target="_blank" href="/go.aspx?u=http://reader.google.com/?hl=de"&gt;Google Reader&lt;/a&gt; - &lt;a target="_blank" href="/go.aspx?u=http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;&lt;/p&gt; &lt;h1&gt;Wie erkenne ich, dass eine Webseite Feeds anbietet?&lt;/h1&gt; &lt;p&gt;Auf Webseiten werden RSS-Feeds meist mit einem Symbol &lt;a href="http://www.christophertl.net/media/5257/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_48pxFeedicon_svg.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="48px-Feed-icon_svg" src="http://www.christophertl.net/media/5262/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_48pxFeedicon_svg_thumb.png" width="16" height="16"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.christophertl.net/media/5267/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_xml_2.gif"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="xml" src="http://www.christophertl.net/media/5272/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_xml_thumb.gif" width="36" height="14"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.christophertl.net/media/5277/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_rss_2.gif"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="rss" src="http://www.christophertl.net/media/5282/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_rss_thumb.gif" width="31" height="14"&gt;&lt;/a&gt; oder dem Text &lt;font face="Courier New"&gt;RSS&lt;/font&gt;, &lt;font face="Courier New"&gt;XML&lt;/font&gt; oder &lt;font face="Courier New"&gt;ATOM&lt;/font&gt; gekennzeichnet. &lt;/p&gt; &lt;p&gt;Zusätzlich dazu bieten moderne Webbrowser eine entsprechende Information zur aktuellen Webseite an.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Internet Explorer:&lt;/strong&gt; Symbol in der Werkzeugleiste &lt;a href="http://www.christophertl.net/media/5287/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="Internet Explorer Werkzeugleiste" src="http://www.christophertl.net/media/5292/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_image_thumb.png" width="214" height="26"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Mozilla Firefox:&lt;/strong&gt; Symbol in der Adresszeile &lt;a href="http://www.christophertl.net/media/5297/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_image_4.png"&gt;&lt;img border="0" alt="Mozilla Firefox Adresszeile" src="http://www.christophertl.net/media/5302/WindowsLiveWriter_RRSFeedsfrAnfnger_13272_image_thumb_1.png" width="240" height="25"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Sobald sie RSS verwenden, werden Sie feststellen, dass beinahe jede Webseite, die Sie besuchen, über ein RSS-Feed verfügt. Es liegt nur an Ihnen dieses Service auch zu nutzen.&lt;/p&gt; &lt;h1&gt;Wie finde ich RSS Angebote ?&lt;/h1&gt; &lt;p&gt;Zu allererst sollte man sich auf den Webseiten, die man häufig besucht, "umsehen" ob diese RSS-Feeds anbieten - siehe oben - und diese abonnieren. Weitere RSS-Feeds können Sie über Verzeichnisdienste oder natürlich über Suchmaschinen suchen.&lt;/p&gt; &lt;p&gt;Viele Webseiten Betreiber bieten eine Liste (Blogroll, Feedlist) von RSS-Feeds an, die sie selbst abonniert haben. Diese sind sehr zu empfehlen, da sie meist ähnlichen thematischen Inhalt aufweisen, wie die Seite, die Sie gerade besuchen.&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.rss-agent.at/"&gt;RSS Agent (AT)&lt;/a&gt; - &lt;a target="_blank" href="/go.aspx?u=http://www.rss-verzeichnis.de/"&gt;RSS Verzeichnis (DE)&lt;/a&gt;&lt;/p&gt; &lt;h1&gt;Links&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;Beschreibung von RSS&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://de.wikipedia.org/wiki/RSS"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="ORF Futurezone - RSS" target="_blank" href="/go.aspx?u=http://rss.orf.at/faq.html?file=futurezone.xml"&gt;ORF Futurezone&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="RSS Verzeichnis - RSS Info" target="_blank" href="/go.aspx?u=http://www.rss-verzeichnis.de/einfuehrung.php"&gt;RSS Verzeichnis&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Feedreader&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://de.wikipedia.org/wiki/Feedreader"&gt;Wikipedia: Beschreibung und Liste&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.rss-verzeichnis.de/rss-reader.php"&gt;Liste auf RSS Verzeichnis (DE)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Integriert&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.microsoft.com/germany/windows/internet-explorer/download-ie.aspx"&gt;Internet Explorer 7.0&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.mozilla-europe.org/de/"&gt;Firefox 1.0&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://office.microsoft.com/de-at/outlook/FX100487751031.aspx"&gt;Outlook 2007&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Lokal installiert&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="FeedDemon" target="_blank" href="/go.aspx?u=http://www.bradsoft.com/feeddemon/"&gt;FeedDemon&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://rssbandit.org/"&gt;RSS Bandit&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.newsgator.com/Individuals/NetNewsWire/"&gt;NetNewsWire (Mac OS)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Online&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.newsgator.com/"&gt;Newsgator&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://reader.google.com/?hl=de"&gt;Google Reader&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Verzeichnisdienste&lt;/li&gt; &lt;ul&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.rss-agent.at/"&gt;RSS Agent (AT)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http://www.rss-verzeichnis.de/"&gt;RSS Verzeichnis (DE)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a target="_blank" href="/go.aspx?u=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Drss%2Bverzeichnis"&gt;Google Suche&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</description>
      <link>http://www.christophertl.net/blog/2008/11/16/rss-in-aller-kuerze.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sun, 16 Nov 2008 16:20:36 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1528.aspx</guid>
    </item>
    <item>
      <title>Url Rewriting in Umbraco - Friendly Tag Filter</title>
      <description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;After finishing the &lt;a target="_blank" href="http://www.christophertl.net/blog/2008/6/8/tag-cloud-for-umbraco-cms-blog-package.aspx"&gt;Tag Cloud package&lt;/a&gt; the next step to improve my web site was to get rid of the ugly query URLs when filtering blog posts by tag.&lt;/p&gt; &lt;h1&gt;The Goal&lt;/h1&gt; &lt;p&gt;Instead of&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;/blog.aspx?filterBy=TagName&lt;/font&gt;&lt;/p&gt; &lt;p&gt;I wanted something like&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;/blog/tag/TagName&lt;/font&gt;&lt;/p&gt; &lt;h2&gt;Why ?&lt;/h2&gt; &lt;ol&gt; &lt;li&gt;As we all - techies of course - know search engines are not happy with URLs like this  &lt;li&gt;I also had the impression that &lt;a target="_blank" href="/go.aspx?u=http://www.google.com/adsense/"&gt;Google AdSense&lt;/a&gt; didn't distinguish the pages correctly.  &lt;li&gt;I personally don't like URLs containing query parameters on a web page as they are not user friendly.  &lt;li&gt;Some kind of perfectionism&lt;/li&gt;&lt;/ol&gt; &lt;h1&gt;The Solution&lt;/h1&gt; &lt;p&gt;It's that simple that I was not sure if it's being worth posting. But it took me a while to find the solution. Like in most cases. It's easy if you know where and how to do it. It would be easier if the feature would be mentioned in the feature list or online help. However, here it is:&lt;/p&gt; &lt;p&gt;In the file &lt;font face="Courier New"&gt;/config/UrlRewriting.config&lt;/font&gt; one can place rules for rewriting URLs. Just add a rule like this.&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#a31515"&gt;add&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;tagfilter&lt;/font&gt;"&lt;br&gt;&amp;nbsp; &lt;font color="#ff0000"&gt;virtualUrl&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;^~/blog/tag/(.*).aspx&lt;/font&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt; &lt;br&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;rewriteUrlParameter&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;ExcludeFromClientQueryString&lt;/font&gt;"&lt;br&gt;&amp;nbsp; &lt;font color="#ff0000"&gt;destinationUrl&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;~/blog.aspx?filterBy=$1&lt;/font&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt; &lt;br&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;ignoreCase&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;true&lt;/font&gt;"&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt; &lt;br&gt;/&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;A detailed description how it works can be found in the file itself.&lt;/p&gt; &lt;p&gt;One important thing is that without reconfiguring the IIS Server the URL must end up with &lt;font face="Courier New"&gt;.aspx&lt;/font&gt;. So the new URL looks like this&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;/blog/tag/TagName.aspx&lt;/font&gt;&lt;/p&gt; &lt;p&gt;which is very straight forward as all other nodes are also referenced using the aspx extension.&lt;/p&gt; &lt;h1&gt;References&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;This Umbraco feature is powered by the ASP.NET UrlRewritingNet component which can be found at &lt;a target="_blank" href="/go.aspx?u=http://www.urlrewriting.net/"&gt;http://www.urlrewriting.net/&lt;/a&gt;  &lt;li&gt;A &lt;a target="_blank" href="/go.aspx?u=http://forum.umbraco.org/yaf_postst5203_Recreate-a-more-natural-URL-structure.aspx"&gt;Post&lt;/a&gt; where the feature is at least mentioned.  &lt;li&gt;A &lt;a target="_blank" href="/go.aspx?u=http://forum.umbraco.org/yaf_postst4913_URL-Rewriting-trying-to-use-two-rules-at-once.aspx"&gt;Post&lt;/a&gt; from Warren where he points to some problems using this feature.&lt;/li&gt;&lt;/ul&gt;</description>
      <link>http://www.christophertl.net/blog/2008/11/15/url-rewriting-in-umbraco---friendly-tag-filter.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Sat, 15 Nov 2008 22:39:10 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1513.aspx</guid>
    </item>
    <item>
      <title>Sort Umbraco Nodes by sortOrder property</title>
      <description>&lt;p&gt;Today I added two nodes, changed the sorting and published the whole bunch. The first look at the resulting page was surprising because the sort order seemed to be totally confused. &lt;/p&gt; &lt;p&gt;After a while I realized that I reached the count of 11 nodes and the node with the sortOrder = 10 was displayed after the one with sortOrder = 1.&lt;/p&gt; &lt;p&gt;Got it? The property is compared as string.&lt;/p&gt; &lt;p&gt;The problem is that XSLT handles values as string unless you declare what type should be used.&lt;/p&gt; &lt;p&gt;So instead of sorting nodes with&lt;/p&gt; &lt;div class="code"&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#008080"&gt;xsl:sort&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;@sortOrder&lt;/font&gt;"&lt;font color="#0000ff"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;order&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;ascending&lt;/font&gt;"&lt;br&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;p&gt;you have to set the &lt;strong&gt;data-type&lt;/strong&gt; to be used for comparison&lt;/p&gt; &lt;div class="code"&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;font color="#008080"&gt;xsl:sort&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;select&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;@sortOrder&lt;/font&gt;"&lt;font color="#0000ff"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;order&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;ascending&lt;/font&gt;"&lt;font color="#0000ff"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;data-type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;"&lt;font color="#0000ff"&gt;number&lt;/font&gt;"&lt;/strong&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <link>http://www.christophertl.net/blog/2008/8/7/sort-umbraco-nodes-by-sortorder-property.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Thu, 07 Aug 2008 19:56:23 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1490.aspx</guid>
    </item>
    <item>
      <title>Salsa - Tanzschule Jakob - Nicolas - Di 15.07.08</title>
      <description>&lt;p&gt;Gestern ist der Kurs aus organisatorischen Gründen etwas kurz geraten. Trotzdem wieder interessant.&lt;/p&gt; &lt;p&gt;&lt;embed src="http://www.youtube.com/v/YCoIjCDQR04" width="350" height="288" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;&lt;/p&gt; &lt;h1&gt;Nico ist Weltmeister&lt;/h1&gt; &lt;p&gt;Nico hat bei der &lt;a href="/go.aspx?u=http://www.tiroler-oberland.com/xxl/nauders/de/nauders-events/_id/878941/index.html" target="_blank"&gt;Weltmeisterschaft in Nauders&lt;/a&gt; in der Disziplin Salsa Shines Solo gewonnen. Und ist somit Weltmeister.&lt;br&gt;Auf diesem Weg nochmal Gratulation!!&lt;/p&gt; &lt;p&gt;Dieser Titel hätte gestern auch gebührend gefeiert werden sollen.....&lt;/p&gt; &lt;h1&gt;Links&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="http://www.ido-dance.com/" href="/go.aspx?u=http://www.ido-dance.com/" target="_blank"&gt;http://www.ido-dance.com/&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.tiroler-oberland.com/xxl/nauders/de/nauders-events/_id/878941/index.html" target="_blank"&gt;http://www.tiroler-oberland.com/xxl/nauders/de/nauders-events/_id/878941/index.html&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="Fotos Latino-Weltmeisterschaft" href="/go.aspx?u=http://www.jakobtanz.at/jt/galerie/27-LatinoWeltmeister" target="_blank"&gt;Fotos Latino-Weltmeisterschaft&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description>
      <link>http://www.christophertl.net/blog/2008/7/16/salsa---tanzschule-jakob---nicolas---di-150708.aspx</link>
      <author>Christoph Ertl</author>
      <pubDate>Wed, 16 Jul 2008 10:53:13 GMT</pubDate>
      <guid isPermaLink="true">http://www.christophertl.net/1474.aspx</guid>
    </item>
  </channel>
</rss>
