<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Christopher Giddings Blog</title>
	<atom:link href="http://cjgiddings.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://cjgiddings.wordpress.com</link>
	<description>Working to the grind..</description>
	<lastBuildDate>Wed, 07 Dec 2011 00:45:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='cjgiddings.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/07c4b01a0f1cddc3316feaaee0dcc324?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Christopher Giddings Blog</title>
		<link>http://cjgiddings.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://cjgiddings.wordpress.com/osd.xml" title="Christopher Giddings Blog" />
	<atom:link rel='hub' href='http://cjgiddings.wordpress.com/?pushpress=hub'/>
		<item>
		<title>New Sitecore Google Maps Module</title>
		<link>http://cjgiddings.wordpress.com/2011/12/07/new-sitecore-google-maps-module/</link>
		<comments>http://cjgiddings.wordpress.com/2011/12/07/new-sitecore-google-maps-module/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 00:45:53 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=217</guid>
		<description><![CDATA[IE is proud to announce the release of our first Sitecore Shared Source Module. The module that has been developed by IE to replace the existing Google Maps module. Whilst the old module has served the community well for many years due to advances in the Google Maps API and Sitecore it has now passed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=217&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>IE is proud to announce the release of our first Sitecore Shared Source Module. The module that has been developed by IE to replace the existing Google Maps module. Whilst the old module has served the community well for many years due to advances in the Google Maps API and Sitecore it has now passed its used by date and desperately needed a re-vamp.</p>
<p>For more information visit <a title="Sitecore Google Maps Module" href="http://ie.com.au/?p=963" target="_blank">IE&#8217;s Blog</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=217&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2011/12/07/new-sitecore-google-maps-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Handy little apps</title>
		<link>http://cjgiddings.wordpress.com/2011/10/20/handy-little-apps/</link>
		<comments>http://cjgiddings.wordpress.com/2011/10/20/handy-little-apps/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 00:02:08 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=208</guid>
		<description><![CDATA[Over the years i&#8217;ve found a few handy little applications that just make things so much easier (windows applications sorry linux and mac geeks ). I&#8217;ll quickly list these below; Display Fusion This small little util makes working with multiply monitors a lot easier with some minor tweaks such as expanding the task bar to multiply monitors. You really [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=208&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the years i&#8217;ve found a few handy little applications that just make things so much easier (windows applications sorry linux and mac geeks <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>I&#8217;ll quickly list these below;</p>
<ul>
<li><a title="Display Fusion" href="http://www.displayfusion.com/" target="_blank">Display Fusion</a><br />
This small little util makes working with multiply monitors a lot easier with some minor tweaks such as expanding the task bar to multiply monitors. You really need to look at this your self.</li>
<li><a title="Remote Desktop Manager" href="http://www.remotedesktopmanager.com/" target="_blank">Remote Desktop Manager</a><br />
This application isn&#8217;t just a replacement for RDP but allows you to connect to different protocols using one simple system. I would recommend it for any dev as it can do remote RDP through a VPN which you setup all in RDM so you don&#8217;t have to connect to the VPN and loose your internal network.</li>
<li><a title="IE Tester" href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank">IETester</a><br />
This is a must, you can use Virtual PC to do all your testing but sometimes you just need to quickly check this is your program.</li>
<li><a title="Notepad ++" href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a><br />
This is a must it just works and you will never go back to the bad notepad</li>
<li><a title="WinMerge" href="http://winmerge.org/" target="_blank">WinMerge</a><br />
When you need to merge something or even compare directories this is your program.</li>
<li><a title="Teracopy" href="http://www.codesector.com/teracopy.php" target="_blank">Teracopy</a><br />
This is a replacement for the bad windows copy, move etc. This allows pausing and resuming of copying files and is just quicker then the normal windows copy. A must have.</li>
<li><a title="UtiluMFC" href="http://utilu.com/UtiluMFC/" target="_blank">UtiluMFC</a><br />
This is like IETester but has multiply version of Firefox</li>
<li><a title="Expresso" href="http://www.ultrapico.com" target="_blank">Expresso</a><br />
This is for setting up regular expression for .net</li>
<li><a title="Linqpad" href="http://www.linqpad.net/" target="_blank">Linqpad</a><br />
For assisting with setting up linq statements</li>
</ul>
<div>There are a lot more but these are just a few to get you started.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=208&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2011/10/20/handy-little-apps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore AbortStaticFiles with Pipeline</title>
		<link>http://cjgiddings.wordpress.com/2011/06/25/sitecore-abortstaticfiles-with-pipeline/</link>
		<comments>http://cjgiddings.wordpress.com/2011/06/25/sitecore-abortstaticfiles-with-pipeline/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 01:34:43 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=162</guid>
		<description><![CDATA[Sitecore has a very flexible pipeline implementation allowing developers to extend the basic behaviours of how a page/file etc will be handled. In certain cases you don&#8217;t want to kill the system and just let certain files be executed without the Sitecore context and let the files be returned to the user as quickly and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=162&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sitecore has a very flexible pipeline implementation allowing developers to extend the basic behaviours of how a page/file etc will be handled. In certain cases you don&#8217;t want to kill the system and just let certain files be executed without the Sitecore context and let the files be returned to the user as quickly and with minimal processing required. Now why do we want this, if you allow ASP.NET to handle all traffic, such as turing off extensions and friendly media file names then ASP.NET is running over every single server request made to the system, such as calling static files like jquery-1.5.js etc.</p>
<p><span id="more-162"></span></p>
<h2><strong>HttpRequest Pipeline Processor</strong></h2>
<p>This is where the AbortStaticFilesProcessor comes in, it allows the developers to plug this in and allow the static files of the system to be excluded from executing automatically.</p>
<p>So what do we need to do, firstly create a new class called &#8220;AbortStaticFilesProcessor&#8221; and inheritate from the &#8220;Sitecore.Pipelines.HttpRequestProcessor class.</p>
<p>Basically copy the code below;</p>
<pre>    /// &lt;summary&gt;
    /// Aborts the static files from the processor, this also has an exclude list
    /// just incase we need to abort a certain file to have the security
    /// &lt;/summary&gt;
    public class AbortStaticFilesProcessor : Sitecore.Pipelines.HttpRequest.HttpRequestProcessor
    {
        #region Private Static Variables
        /// &lt;summary&gt;
        /// The executed URLS
        /// &lt;/summary&gt;
        private static System.Collections.Generic.Dictionary&lt;string, bool&gt; ExecutedURLs = new Dictionary&lt;string, bool&gt;();
        #endregion

        #region Private Variables
        /// &lt;summary&gt;
        /// The list of exclusions for static files
        /// &lt;/summary&gt;
        private System.Collections.ArrayList _excludes = new System.Collections.ArrayList();

        /// &lt;summary&gt;
        /// The list of dynamic files to include in excluding pipeline calling
        /// &lt;/summary&gt;
        private System.Collections.ArrayList _dynamicExclude = new System.Collections.ArrayList();
        #endregion

        #region Public Properties
        /// &lt;summary&gt;
        /// Adds the exclude item to the list
        /// &lt;/summary&gt;
        /// &lt;param name="exclude"&gt;The exclude path to add&lt;/param&gt;
        public void AddExcludes(string exclude)
        {
            this._excludes.Add(exclude.ToLower());
        }

        /// &lt;summary&gt;
        /// Adds the dynamic exclude item to the list
        /// &lt;/summary&gt;
        /// &lt;param name="dynamicExclude"&gt;The dynamic exclude to add&lt;/param&gt;
        public void AddDynamicExclude(string dynamicExclude)
        {
            this._dynamicExclude.Add(dynamicExclude.ToLower());
        }

        #endregion

        #region Process
        /// &lt;summary&gt;
        /// The initial processor which is used to access the data
        /// &lt;/summary&gt;
        /// &lt;param name="args"&gt;Sitecore Arguments for the http request&lt;/param&gt;
        public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)
        {
            // make sure we have our arguments before we have any issues
            Sitecore.Diagnostics.Assert.ArgumentNotNull(args, "args");

            // make sure we have data to actualy process
            if (args.Context != null
                &amp;&amp; args.Context.Request != null
                &amp;&amp; !string.IsNullOrEmpty(args.Context.Request.PhysicalPath)
                &amp;&amp; !args.Context.Request.Path.StartsWith("/sitecore/")
                &amp;&amp; !args.Context.Request.Path.StartsWith("/sitecore modules/"))
            {
                // detects if the file is static
                using (new Sitecore.Diagnostics.ProfileSection("Static File Detection."))
                {
                    // setup defaults
                    bool killPipeline = false;
                    string cacheKey = args.Context.Request.Url.PathAndQuery;

                    // has this already been executed
                    if (ExecutedURLs.ContainsKey(cacheKey))
                    {
                        // gets out the key
                        ExecutedURLs.TryGetValue(cacheKey, out killPipeline);
                    }
                    else
                    {
                        // do we need to abort the execution
                        System.IO.FileInfo file = new System.IO.FileInfo(args.Context.Request.PhysicalPath);

                        // does the file exist
                        if (file.Exists)
                        {
                            // we want to kill the pipeline
                            killPipeline = true;

                            // do we have any extensions to check
                            if (this._excludes != null &amp;&amp; this._excludes.Count &gt; 0)
                            {
                                // we need to only deliver actual files instead of fake data
                                if (this._excludes.Contains(args.Context.Request.Path.ToLower()))
                                {
                                    killPipeline = false;
                                }
                            }
                        }
                        else
                        {
                            // is the file part of the dynamic exclude
                            if (this._dynamicExclude.Contains(args.Context.Request.Path.ToLower()))
                            {
                                // kill the pipeline
                                killPipeline = true;
                            }
                        }

                        // append the executed url
                        ExecutedURLs.Add(args.Context.Request.Url.PathAndQuery, killPipeline);
                        Sitecore.Diagnostics.Log.Debug(string.Format("AbortStaticFile: URL:'{0}', AbortProcessing:'{1}'", args.Context.Request.Url.PathAndQuery, killPipeline), typeof(AbortStaticFilesProcessor));
                    }

                    // kill the pipeline
                    if (killPipeline)
                    {
                        // kill the pipeline
                        args.AbortPipeline();

                        return;
                    }
                }
            }
        }
        #endregion
    }</pre>
<p>This code needs to run as soon as possible so we can abort the pipeline to stop the following pipeline items from executing, we also remember what files have been executed to determine if they required the pipeline to be aborted or not for extra speed and reduced processing. Additionally a DEBUG log is added for any new requests not previously executed so you can always see what&#8217;s happening if there are any URLS not being requested correctly.</p>
<h2>Config Settings</h2>
<p>Next we have to include our HttpRequestBegin processor to the pipeline, but as im a comment freak I&#8217;ve also commented this quite heavily as well (soz if you don&#8217;t like comments);</p>
<pre>        &lt;!--
        Abort Static File Processor
        ************************************************************************
        Description:
          This processor aborts the httpRequestBeing pipeline when static files are executed.
          This performs checks on the file to make sure it's actually found but also it
          undertakes various checks with the exclude list.

          The exclude list allows developers to input the list of excluded files which are static
          files but need to be run through the sitecore pipeline such as the /default.aspx file.
          The "desc" is required to work with 6.4 but isn't needed for 6.4.1 which is a known bug.
        Example:
            &lt;processor ..&gt;
              &lt;excludelist hint="list:AddExcludes"&gt;
                &lt;file desc="default sitecore file"&gt;/default.aspx&lt;/file&gt;
                &lt;file desc="some calling json"&gt;/json-handler.ashx&lt;/file&gt;
                &lt;file desc="checks stuff"&gt;/remote-check.ashx&lt;/file&gt;
              &lt;/excludelist&gt;
              &lt;dynamicfiles hint="list:AddDynamicExclude"&gt;
                &lt;file desc="the defautl script resource"&gt;/scriptresource.axd&lt;/file&gt;
                &lt;file desc="the defautl web resoruce"&gt;/webresource.axd&lt;/file&gt;
              &lt;/dynamicfiles&gt;
            &lt;/processor&gt;
        --&gt;
        &lt;processor patch:before="*[@type='Sitecore.Pipelines.PreprocessRequest.CheckIgnoreFlag, Sitecore.Kernel']"
          type="Test.AbortStaticFilesProcessor, Test"&gt;
          &lt;excludelist hint="list:AddExcludes"&gt;
            &lt;file desc="default sitecore file"&gt;/default.aspx&lt;/file&gt;
            &lt;file desc="json handler"&gt;/json-handler.ashx&lt;/file&gt;
          &lt;/excludelist&gt;
          &lt;dynamicfiles hint="list:AddDynamicExclude"&gt;
            &lt;file desc="the defautl script resource"&gt;/scriptresource.axd&lt;/file&gt;
            &lt;file desc="the defautl web resoruce"&gt;/webresource.axd&lt;/file&gt;
          &lt;/dynamicfiles&gt;
        &lt;/processor&gt;</pre>
<p>You will need to make the changes to the <em>&lt;processor patch:before=&#8221;..&#8221; type=&#8221;<strong>Test.AbortStaticFileProcessor, Test</strong>&#8220;&gt;</em> to put in the correct Assembly and Namespace.</p>
<p>Also you will notice the &#8220;patch:before&#8221;, if you don&#8217;t know what this is you should have a quick search on the net, but you can use this in external config files which are located in the app_config/include folder, this is how most of the new modules work these days and what I see it&#8217;s a lot easier to have it here then to try and remember what changes where done in the web.config file. <em>NOTE: This is only for the &lt;sitecore&gt; node only.</em></p>
<p>What we have are two main lists that have to be used;</p>
<h4>ExcludeList</h4>
<p>This list is where the files, handlers etc are listed which need to be processed by Sitecore, we take a policy that we exclude everything unless it in this list including the default.aspx which Sitecore needs.</p>
<p>You will see that below the excludelist you have a collection of &#8220;file&#8221; nodes, these have the &#8220;Desc&#8221; attribute, this is required only for 6.4 as it&#8217;s a known bug but has been resolved in 6.4.1. The file location needs to be a relative path from the root location and requires the &#8220;/&#8221; at the start.</p>
<h4>DynamicFiles</h4>
<p>This list is where the dynamically bound resources such as .axd files are placed, you shouldn&#8217;t have to make any changes to this but it&#8217;s listed here just in case, the same sort of rules apply for this just like the excludelist.</p>
<h2>Does this improve speed</h2>
<p>Well to put it simply YES, it stops Sitecore from executing these files quite high up in the pipeline and once the request file has been processed by this pipeline processor the system remembers this and will stop and allow this execution without having to determine if it&#8217;s a file, exclude, dynamic etc.</p>
<p>Give it a play and see what you think.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=162&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2011/06/25/sitecore-abortstaticfiles-with-pipeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore Value cannot be null, Parameter name: path</title>
		<link>http://cjgiddings.wordpress.com/2011/03/28/sitecore-value-cannot-be-null-parameter-name-path/</link>
		<comments>http://cjgiddings.wordpress.com/2011/03/28/sitecore-value-cannot-be-null-parameter-name-path/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 04:44:10 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=156</guid>
		<description><![CDATA[Got this error on a project working on and couldn&#8217;t quickly resolve the issue. It was happening when logging into the Content Editor only and with &#8220;Standard Fields&#8221; enabled so was a tricky one. Thanks to Sitecore 6.4 now working within Firefox. &#160; What i did to resolve the issue was; Open Firefox Open Sitecore [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=156&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Got this error on a project working on and couldn&#8217;t quickly resolve the issue. It was happening when logging into the Content Editor only and with &#8220;Standard Fields&#8221; enabled so was a tricky one.</p>
<p>Thanks to Sitecore 6.4 now working within Firefox.</p>
<p><a href="http://cjgiddings.files.wordpress.com/2011/03/sitecoreerror.png"><img class="aligncenter size-full wp-image-157" title="SitecoreError" src="http://cjgiddings.files.wordpress.com/2011/03/sitecoreerror.png?w=630&#038;h=318" alt="" width="630" height="318" /></a></p>
<p>&nbsp;</p>
<p>What i did to resolve the issue was;</p>
<ul>
<li>Open Firefox</li>
<li>Open Sitecore and login as admin in Desktop user</li>
<li>Open your Sitecore Control Panel (sitecore bar/control panel)</li>
<li>Preferences</li>
<li>Change your application preferences</li>
<li>Make sure &#8220;Fields from the Standard Template&#8221; is off and click ok</li>
<li>No open the &#8220;Content Editor&#8221;</li>
<li>Click on the &#8220;Home&#8221; item (default one supplied by Sitecore)</li>
<li>Click Presentation tab</li>
<li>Hit &#8220;Reset&#8221; in ribbon and continue</li>
<li>Now Click on another item somewhere even &#8220;Content&#8221;</li>
<li>Click &#8220;View&#8221; from ribbon and enable &#8220;Standard Fields&#8221;</li>
<li>Now click on the &#8220;home&#8221; item and it should now load</li>
</ul>
<p>What the issue seems to be is a reference to a layout, rendering, sublayout etc.<br />
Hope this helps someone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=156&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2011/03/28/sitecore-value-cannot-be-null-parameter-name-path/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>

		<media:content url="http://cjgiddings.files.wordpress.com/2011/03/sitecoreerror.png" medium="image">
			<media:title type="html">SitecoreError</media:title>
		</media:content>
	</item>
		<item>
		<title>Embed Sitecore in an existing ASP.NET site</title>
		<link>http://cjgiddings.wordpress.com/2011/01/10/embed-sitecore-in-an-existing-asp-net-site/</link>
		<comments>http://cjgiddings.wordpress.com/2011/01/10/embed-sitecore-in-an-existing-asp-net-site/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 00:24:34 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=140</guid>
		<description><![CDATA[Sometimes I&#8217;m asked can we quickly embed Sitecore in our existing ASP.NET site because of various reasons or it&#8217;s just a quick way to get it up and working while slowly migrating there site over. Well this you can do but you have to make a few small modifications to get it working or else [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=140&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes I&#8217;m asked can we quickly embed Sitecore in our existing ASP.NET site because of various reasons or it&#8217;s just a quick way to get it up and working while slowly migrating there site over. Well this you can do but you have to make a few small modifications to get it working or else you&#8217;ll run into some small headaches.<br />
<em>PS: This is a very very quick wiki article so don&#8217;t mind my rushing <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </em></p>
<p><span id="more-140"></span>So what do you need to do firstly;</p>
<ol>
<li>Setup your new empty Sitecore site and test that you get the default homepage</li>
<li>Mirge your previous web.config file with Sitecores and any other configuration files</li>
<li>Copy over your existing DLL files and other flat files such as aspx, ascx etc</li>
<li>Make sure you have setup your IIS to work correctly with sitecore, that means any new changes etc</li>
<li>Test the site</li>
</ol>
<p>What you will notice that when you load up you&#8217;ll see the Sitecore test home page. But if you call a different url to access another page such as http://site/about.aspx you will get your page, test that most work and we will get back to the homepage soon.</p>
<p>From what i&#8217;ve seen there are actually two main things you have to work out and these are listed below;</p>
<ul>
<li>Homepage doesn&#8217;t load my custom homepage</li>
<li>Previous URLRewriting rules don&#8217;t work</li>
</ul>
<p><strong>Fixing the Homepage to point to your custom page<br />
</strong>This isn&#8217;t a bug in sitecore, but sitecore is stopping the system from loading up the correct default.aspx etc. To resolve this you need to create a small little httpRequestBegin processor which is done below;</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #929292; background-color: #424242} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #83ab8c; background-color: #424242} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #87d8d9; background-color: #424242} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #e5e6c9; background-color: #424242} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #e5e6c9; background-color: #424242; min-height: 12.0px} span.s1 {color: #83ab8c} span.s2 {color: #e5e6c9} span.s3 {color: #929292} span.s4 {color: #f8d394} span.s5 {color: #87d8d9} span.s6 {color: #eebb9e} --></p>
<blockquote><p>/// &lt;summary&gt;<br />
/// Default Override Resolver used to make sure default.aspx is actually fired instead of using Sitecores<br />
/// default page.<br />
/// &lt;/summary&gt;<br />
public class DefaultOverrideResolver : Sitecore.Pipelines.HttpRequest.HttpRequestProcessor<br />
{<br />
/// &lt;summary&gt;<br />
/// The proces using to use<br />
/// &lt;/summary&gt;<br />
/// &lt;param name=&#8221;args&#8221;&gt;&lt;/param&gt;<br />
public override void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args)<br />
{<br />
// make sure we have the data we want<br />
Sitecore.Diagnostics.Assert.ArgumentNotNull(args, &#8220;args&#8221;);</p>
<p>// get the site to make sure we have the correct data<br />
Sitecore.Sites.SiteContext site = Sitecore.Context.Site;<br />
string filePath = args.Url.FilePath;</p>
<p>if (Sitecore.Context.Site.Name.ToLower() == &#8220;website&#8221; &amp;&amp; args.LocalPath == &#8220;/default&#8221;)<br />
{<br />
Sitecore.Context.Page.FilePath = filePath;<br />
Sitecore.Context.Item = null;<br />
}<br />
}<br />
}</p></blockquote>
<p>What this processor does is quite simple, it gets the file which is being requests well trying to be requested and then checks to see if it&#8217;s the default &#8220;website&#8221; site and the &#8220;default&#8221; page. If this is the page and site then don&#8217;t get the home item (sets it to null) and reset the Sitecore Filepath as the default page.</p>
<p>But for this to work you need to place it in the correct position so where;</p>
<blockquote><p>&lt;httpRequestBegin&gt;<br />
&lt;processor type=&#8221;Sitecore.Pipelines.HttpRequest.DefaultResolver, Sitecore.Kernel&#8221; /&gt;<br />
&#8230;	INSERT PROCESSOR HERE	&#8230;<br />
&lt;processor type=&#8221;Sitecore.Pipelines.HttpRequest.FileResolver, Sitecore.Kernel&#8221; /<br />
&lt;/httpRequestBegin&gt;</p></blockquote>
<p>Save the configuration and build etc, then try and run the homepage now, you should see your custom homepage now.</p>
<p>As for the custom urlrewriting, this you&#8217;ll have to tackle on your own, the reason for this is that there are lots and lots of rewriting modules/custom modules/global.ascx methods out there and most of the time if your embedding siteecore into your existing site you have created your own custom rules and code to do this in which you&#8217;ll have to spend the time changing and working with. Also if that is the case it might be quicker to just use the IISREwrite module for IIS7.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=140&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2011/01/10/embed-sitecore-in-an-existing-asp-net-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitecore XSLT with Padlocks on navigation</title>
		<link>http://cjgiddings.wordpress.com/2010/09/10/sitecore-xslt-with-padlocks-on-navigation/</link>
		<comments>http://cjgiddings.wordpress.com/2010/09/10/sitecore-xslt-with-padlocks-on-navigation/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 02:50:38 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=134</guid>
		<description><![CDATA[Sitecore will renderer out the navigation items based on the security that the user has, this is great in most cases but say you need a site where you have a simple is logged in/logged out approach and the navigation needs to always indicate that a page is secure. Of course our actual padlocks are images but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=134&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sitecore will renderer out the navigation items based on the security that the user has, this is great in most cases but say you need a site where you have a simple is logged in/logged out approach and the navigation needs to always indicate that a page is secure. Of course our actual padlocks are images but you get the idea.</p>
<p>Well with Sitecore it&#8217;s not as difficult as you would think</p>
<p><span id="more-134"></span>Firstly in our XSLT we need to make sure we disable the security before we actually make our selection of items (this is just a quick display of data).</p>
<blockquote><p>&lt;sc:disableSecurity&gt;<br />
&lt;xsl:for-each select=&#8221;*&#8221;&gt;<br />
&lt;div&gt;<br />
&lt;xsl:value-of select=&#8221;@name&#8221;/&gt;<br />
&lt;/div&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/sc:disableSecurity&gt;</p></blockquote>
<p>Now we are displaying the items no matter what user we user, that being the anon user or a logged in user, great but what about displaying my little pad locks. For this we need to get a little bit creative and read the security field from the Sitecore item (&#8220;__Security&#8221; field). But for us to work with it we need to make sure we only get that user as well as the user can&#8217;t read the item we&#8217;re processing. Below is the code to undertake this;</p>
<blockquote><p>&lt;sc:disableSecurity&gt;<br />
&lt;xsl:for-each select=&#8221;*&#8221;&gt;<br />
&lt;div&gt;</p>
<p>&lt;xsl:apply-templates select=&#8221;sc:SplitFieldValue(&#8216;__Security&#8217;, &#8216;\&#8217;, .)&#8221; mode=&#8221;secure&#8221;/&gt;</p>
<p>&lt;xsl:value-of select=&#8221;@name&#8221;/&gt;<br />
&lt;/div&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/sc:disableSecurity&gt;</p>
<p>&lt;!&#8211;==============================================================&#8211;&gt;<br />
&lt;!&#8211; secure : determines if the field is secure                   &#8211;&gt;<br />
&lt;!&#8211;==============================================================&#8211;&gt;<br />
&lt;xsl:template match=&#8221;*&#8221; mode=&#8221;secure&#8221;&gt;<br />
&lt;xsl:if test=&#8221;contains(.,&#8217;Anonymous|pd|&#8217;) and contains(.,&#8217;-item:read&#8217;)&#8221;&gt;<br />
&lt;xsl:attribute name=&#8221;class&#8221;&gt;<br />
&lt;xsl:value-of select=&#8221;&#8216;titleIconPadlock&#8217;&#8221;/&gt;<br />
&lt;/xsl:attribute&gt;<br />
&lt;/xsl:if&gt;<br />
&lt;/xsl:template&gt;</p></blockquote>
<p>So what this gives us is a way to render our navigation with a mixture of secure and non-secure items and indicate to the user what pages they have access to.</p>
<p>Hope this helps someone.</p>
<p><em>PS: You could also undertake this in an XSLT Extension but this is a simple XSLT implementation.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=134&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2010/09/10/sitecore-xslt-with-padlocks-on-navigation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Speed up Azure Site</title>
		<link>http://cjgiddings.wordpress.com/2010/09/08/speed-up-azure-site/</link>
		<comments>http://cjgiddings.wordpress.com/2010/09/08/speed-up-azure-site/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:24:16 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=132</guid>
		<description><![CDATA[When you deploy onto the Microsoft Azure cloud platform you may have noticed that by default the system will not produce cached or compressed output for the user. This has been designed this way to assist those developers that well don&#8217;t know to much about deployments and site optimizations (Not having a go, sometimes you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=132&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When you deploy onto the Microsoft Azure cloud platform you may have noticed that by default the system will not produce cached or compressed output for the user. This has been designed this way to assist those developers that well don&#8217;t know to much about deployments and site optimizations (Not having a go, sometimes you don&#8217;t need to worry about this as its someone elses problem).</p>
<p><span id="more-132"></span>So what have we got firstly when you deploy you get a site that well has no compression enabled nor is the site caching the site you&#8217;ve just deployed. What this does is cause the system to be well slower for a user to browse as well as download.</p>
<p>So what can you do to quickly speed this up with just a few configuration settings in the web.config;</p>
<ul>
<li>enable compression</li>
<li>enable caching</li>
<li>use a CDN</li>
<li>use some basic tools to see why your site is dam slow</li>
</ul>
<p>This blog doesn&#8217;t tell you all about azure, caching, compression etc it will assume you know what these are. If you do have trouble just do a google search for the data and see what im talking about.</p>
<h2>Tools</h2>
<p>For this i use all Firefox plugins;</p>
<ul>
<li>Firebug</li>
<li>YSlow</li>
<li>Page Speed</li>
</ul>
<h2>CDN</h2>
<p>For this you want to make sure to use a CDN for all your Javascript files if possible;</p>
<ul>
<li>For jQuery use the google CDN as it&#8217;s the most heavily used. Just look at some of the top 100 sites in the world, they use google as there CDN</li>
<li>For ASP.NET and you run .net 4.0 you can set your ScriptManager to use Microsofts CDN by just enabling it on the ScriptManager control;
<ul>
<li>Set on the ScriptManager the EnableCdn property to &#8220;true&#8221;, EG: EnableCdn=&#8221;true&#8221;</li>
</ul>
</li>
</ul>
<h2>Compression</h2>
<p>To enable compression you need to set this on the web.config file this is basically what i use;</p>
<blockquote><p>&lt;urlCompression doStaticCompression=&#8221;true&#8221; doDynamicCompression=&#8221;true&#8221; dynamicCompressionBeforeCache=&#8221;true&#8221; /&gt;</p></blockquote>
<p>What this does is allow static compression of JS and CSS files, Compresses the dynamic files such as aspx, json etc but we also have the property dynamicCompressionBeforeCache set to true. This allows the system to fetch the dynamic page before it&#8217;s sent into the cache, this also requires you to make sure that the cache settings have been setup correct</p>
<h2>Caching</h2>
<p>To cache you have to enable this from the web.config file just like the compression for this i use the following;</p>
<blockquote><p>&lt;caching&gt;<br />
&lt;profiles&gt;<br />
&lt;add extension=&#8221;.aspx&#8221; policy=&#8221;CacheUntilChange&#8221; kernelCachePolicy=&#8221;DontCache&#8221; duration=&#8221;00:00:30&#8243; varyByHeaders=&#8221;User-Agent&#8221; /&gt;<br />
&lt;add extension=&#8221;.axd&#8221; policy=&#8221;CacheUntilChange&#8221; kernelCachePolicy=&#8221;DontCache&#8221; duration=&#8221;00:30:00&#8243; varyByQueryString=&#8221;t,d&#8221;/&gt;<br />
&lt;add extension=&#8217;.js&#8217; policy=&#8217;DontCache&#8217; kernelCachePolicy=&#8217;CacheUntilChange&#8217;/&gt;<br />
&lt;add extension=&#8217;.css&#8217; policy=&#8217;DontCache&#8217; kernelCachePolicy=&#8217;CacheUntilChange&#8217;/&gt;<br />
&lt;/profiles&gt;<br />
&lt;/caching&gt;</p></blockquote>
<p>What this code does is firstly allow the js and css files to be cached in kernal mode until there is a file change. The axd setting is used to cache those dam embedded resource files and to make sure we cache the actual files and not just a single file we need to vary by querysting on the t and d keys. Now we have the aspx file, ths obviously has a small caching duration as the system is dynamic and changes, so every 30 seconds is more than enough. But we have different presentation based on the User-Agent so we want to make sure we have a unique cache for each User-Agent supplied.</p>
<h2>Conclusion</h2>
<p>With these we have been able to reduce the overall size of the site (including images etc) from around 700K to around 200K (this was also done by setting the deploy type to &#8220;Release). So what we have now is a cached and compressed collection of the following files;</p>
<ul>
<li>js</li>
<li>css</li>
<li>aspx</li>
<li>axd</li>
</ul>
<p>Obviously there are even more things you can do to speed up your site but for now these will help to reduce the load on the server and to deliver a user a much small site which will basically load the site quicker thus increasing your responsiveness to a new user. Hope this helps</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=132&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2010/09/08/speed-up-azure-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>ubeeTech Site v2</title>
		<link>http://cjgiddings.wordpress.com/2010/09/01/ubeetech-site-v2/</link>
		<comments>http://cjgiddings.wordpress.com/2010/09/01/ubeetech-site-v2/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 05:18:40 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ubeeTech]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=129</guid>
		<description><![CDATA[Got our site up! @bobandmax came up with the great concept of using cut-paper models to illustrate our services: http://bit.ly/ubeeTechWWW So what is special about the site; Browser friendly, well except IE6 no one likes IE6 anymore Works with devices such as iPhone, Android etc (can&#8217;t guarantee it will be perfect) Uses Cufon to render [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=129&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Got our site up! <a href="http://twitter.com/bobandmax" target="_blank">@bobandmax</a> came up with the great concept of using cut-paper models to illustrate our services: <a href="http://bit.ly/ubeeTechWWW" target="_blank">http://bit.ly/ubeeTechWWW</a></p>
<p>So what is special about the site;</p>
<ul>
<li>Browser friendly, well except IE6 no one likes IE6 anymore</li>
<li>Works with devices such as iPhone, Android etc (can&#8217;t guarantee it will be perfect)</li>
<li>Uses <a href="http://cjgiddings.wordpress.com/2009/09/29/cufon-a-sifr-alternative/" target="_self">Cufon</a> to render our main header fonts</li>
<li>Running on the <a href="http://www.microsoft.com/windowsazure/" target="_blank">Microsoft Azure</a> platform</li>
<li>Some more little features</li>
</ul>
<p>If you want to know more you can always <a href="http://www.ubeetech.com" target="_blank">visit us</a> or follow us on <a href="http://twitter.com/ubeeTech" target="_blank">twitter feed</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=129&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2010/09/01/ubeetech-site-v2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Helpful links for new iPhone Devs &#8211; includes me</title>
		<link>http://cjgiddings.wordpress.com/2010/08/24/helpful-links-for-new-iphone-devs-includes-me/</link>
		<comments>http://cjgiddings.wordpress.com/2010/08/24/helpful-links-for-new-iphone-devs-includes-me/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 00:52:05 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=121</guid>
		<description><![CDATA[I&#8217;m new to iPhone development and have found a few helpful links that will at least push you in the right direction. These links aren&#8217;t all the links but just some basic pages and links that have helped me in finding what and how to get started. Enjoy http://www.daleisphere.com/iphone-app-development-where-to-start/ http://forums.whirlpool.net.au/forum-replies-archive.cfm/1173999.html http://stackoverflow.com/questions/1939/how-to-articles-for-iphone-development-objective-c http://deimos.apple.com/WebObjects/Core.woa/Browse/matcmadison.edu.3989485784.03989485786 There are plenty [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=121&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m new to iPhone development and have found a few helpful links that will at least push you in the right direction. These links aren&#8217;t all the links but just some basic pages and links that have helped me in finding what and how to get started.</p>
<p>Enjoy <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.daleisphere.com/iphone-app-development-where-to-start/" target="_blank">http://www.daleisphere.com/iphone-app-development-where-to-start/</a></li>
<li><a href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/1173999.html" target="_blank">http://forums.whirlpool.net.au/forum-replies-archive.cfm/1173999.html</a></li>
<li><a href="http://stackoverflow.com/questions/1939/how-to-articles-for-iphone-development-objective-c" target="_blank">http://stackoverflow.com/questions/1939/how-to-articles-for-iphone-development-objective-c</a></li>
<li><a href="http://deimos.apple.com/WebObjects/Core.woa/Browse/matcmadison.edu.3989485784.03989485786" target="_blank">http://deimos.apple.com/WebObjects/Core.woa/Browse/matcmadison.edu.3989485784.03989485786</a></li>
</ul>
<p>There are plenty more such as on the Apple site but these will at least push you in the right direction. Also if you can purchase your self a nice book and have a read, that&#8217;s what im doing at the moment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=121&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2010/08/24/helpful-links-for-new-iphone-devs-includes-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamic &#8220;Sitecore.Caching.ICacheable&#8221; GetDataLength method</title>
		<link>http://cjgiddings.wordpress.com/2010/08/23/dynamic-sitecore-caching-icacheable-getdatalength-method/</link>
		<comments>http://cjgiddings.wordpress.com/2010/08/23/dynamic-sitecore-caching-icacheable-getdatalength-method/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 07:43:21 +0000</pubDate>
		<dc:creator>Christopher Giddings</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://cjgiddings.wordpress.com/?p=115</guid>
		<description><![CDATA[Sitecore uses the Sitecore.Caching.ICacheable interface which is well very easy to start working with but there is one little part which i found to be well a little pain. The issue is that you have to manually work out how big the data being to cached is, well what i see with this is that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=115&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sitecore uses the Sitecore.Caching.ICacheable interface which is well very easy to start working with but there is one little part which i found to be well a little pain. The issue is that you have to manually work out how big the data being to cached is, well what i see with this is that it&#8217;s not as correct as it should be.</p>
<p><span id="more-115"></span>The interface has the following structure;</p>
<blockquote>
<div id="_mcePaste">namespace Sitecore.Caching</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">public interface ICacheable</div>
<p>{<br />
bool Cacheable { get; set; }<br />
bool Immutable { get; }<br />
event DataLengthChangedDelegate DataLengthChanged;<br />
long GetDataLength();<br />
}<br />
}</p></blockquote>
<p>The main method we are focusing on is the &#8220;long GetDataLength();&#8221; aspect as it requires the actual size of the object, this can be hard if the data is dynamic and you are basically just guessing.<br />
So what we need is a way to clearly tell how much everything is and here is my solution (This is only including the DataLength data and will have to be changed to get it work correctly);</p>
<blockquote><p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using System.Web.Security;</p>
<p>namespace SitecoreTest<br />
{</p>
<p>/// &lt;summary&gt;<br />
/// The Test Caching<br />
/// &lt;/summary&gt;<br />
[Serializable]<br />
public class Test : Sitecore.Caching.ICacheable<br />
{</p>
<p>#region Private Variables<br />
/// &lt;summary&gt;<br />
/// Is the class cachable<br />
/// &lt;/summary&gt;<br />
private bool _cacheable = true;</p>
<p>/// &lt;summary&gt;<br />
/// The data length<br />
/// &lt;/summary&gt;<br />
private int _dataLength = 0;<br />
#endregion</p>
<p>#region Public Properties<br />
/// &lt;summary&gt;<br />
/// Is the class cachable<br />
/// &lt;/summary&gt;<br />
public bool Cacheable<br />
{<br />
get<br />
{<br />
return this._cacheable;<br />
}<br />
set<br />
{<br />
this._cacheable = value;<br />
}<br />
}</p>
<p>/// &lt;summary&gt;<br />
/// Is the class immutable<br />
/// &lt;/summary&gt;<br />
public bool Immutable<br />
{<br />
get<br />
{<br />
return true;<br />
}<br />
}<br />
#endregion</p>
<p>#region Event Delegates<br />
/// &lt;summary&gt;<br />
/// The event when the data length changes<br />
/// &lt;/summary&gt;<br />
public event Sitecore.Caching.DataLengthChangedDelegate DataLengthChanged;<br />
#endregion</p>
<p>#region GetDataLength<br />
/// &lt;summary&gt;<br />
/// Gets the data length of the class<br />
/// &lt;/summary&gt;<br />
/// &lt;returns&gt;Returns the data length of the class&lt;/returns&gt;<br />
public long GetDataLength()<br />
{<br />
if (this._dataLength == 0)<br />
{<br />
try<br />
{<br />
System.IO.MemoryStream mem = new System.IO.MemoryStream();<br />
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter binFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();<br />
binFormatter.Serialize(mem, this);<br />
this._dataLength = System.Convert.ToInt32(mem.Length);<br />
}<br />
catch (System.Exception ex)<br />
{<br />
this._dataLength = 700; // default size<br />
Sitecore.Diagnostics.Log.Warn(&#8220;Get Size &#8211; Test&#8221;, ex, typeof(Test));<br />
}<br />
}</p>
<p>return (long)this._dataLength;<br />
}<br />
#endregion<br />
}<br />
}</p></blockquote>
<p>So what do we get, it&#8217;s simple a way to add the class to cache without having to worry about the actual size, enjoy <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cjgiddings.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cjgiddings.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cjgiddings.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cjgiddings.wordpress.com&amp;blog=6270985&amp;post=115&amp;subd=cjgiddings&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://cjgiddings.wordpress.com/2010/08/23/dynamic-sitecore-caching-icacheable-getdatalength-method/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5cc3e72de2b12b439700daccf56f1a4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cjgiddings</media:title>
		</media:content>
	</item>
	</channel>
</rss>
