<?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/"
	>

<channel>
	<title>MarkvanAalst.com</title>
	<atom:link href="http://www.markvanaalst.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markvanaalst.com</link>
	<description>Sharing Sitecore tips, tricks and techniques to build better solutions</description>
	<lastBuildDate>Wed, 25 Jan 2012 11:09:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dutch webinar about faster developing with Sitecore Rocks and VS2010</title>
		<link>http://www.markvanaalst.com/2012/01/24/dutch-webinar-about-faster-developing-with-sitecore-rocks-and-vs2010/</link>
		<comments>http://www.markvanaalst.com/2012/01/24/dutch-webinar-about-faster-developing-with-sitecore-rocks-and-vs2010/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 09:46:12 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Sitecore Rocks]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=194</guid>
		<description><![CDATA[On February 9th Pieter and I will give a webinar showing you how to develop a basic website by using only Visual Studio 2010 and Sitecore Rocks. The webinar starts at 15.00 hours. Topics that will be covered are: Navigating into the content tree Managing data templates Creating presentation components Job and log management Managing Lucene search indexes Searching in Sitecore Publishing Validation Wizard You can sign up for the webinar here. Note: the webinar [...]]]></description>
			<content:encoded><![CDATA[<p>On February 9<sup>th</sup> <a href="http://www.newguid.net/Sitecore/">Pieter</a> and I will give a webinar showing you how to develop a basic website by using only Visual Studio 2010 and Sitecore Rocks. The webinar starts at 15.00 hours.</p>
<p>Topics that will be covered are:</p>
<ul>
<li>Navigating into the content tree</li>
<li>Managing data templates</li>
<li>Creating presentation components</li>
<li>Job and log management</li>
<li>Managing Lucene search indexes</li>
<li>Searching in Sitecore</li>
<li>Publishing</li>
<li>Validation Wizard</li>
</ul>
<p>You can sign up for the webinar <a href="http://bit.ly/AnLU4f">here</a>.</p>
<address><strong>Note: the webinar will be given in Dutch</strong></address>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2012/01/24/dutch-webinar-about-faster-developing-with-sitecore-rocks-and-vs2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using XAML controls outside the Sitecore folder</title>
		<link>http://www.markvanaalst.com/2012/01/23/using-xaml-controls-outside-the-sitecore-folder/</link>
		<comments>http://www.markvanaalst.com/2012/01/23/using-xaml-controls-outside-the-sitecore-folder/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 23:19:05 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Xaml]]></category>
		<category><![CDATA[sheerui]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=179</guid>
		<description><![CDATA[In certain cases you want to offer the end-user a userfriendly interface to manage content, users or anything else. Thanks to Sitecore&#8217;s backend flexibility this is possible in more ways than one. In this case I will use the technique which is described in this blogpost by Adam Conn. In the example you can see that a new window is opened by the code below: public override void Execute&#40;CommandContext context&#41; &#123; Assert.ArgumentNotNull&#40;context, &#34;context&#34;&#41;; UrlString url [...]]]></description>
			<content:encoded><![CDATA[<p>In certain cases you want to offer the end-user a userfriendly interface to manage content, users or anything else. Thanks to Sitecore&#8217;s backend flexibility this is possible in more ways than one. In this case I will use the technique which is described in <a href="http://www.sitecore.net/Community/Technical-Blogs/Getting-to-Know-Sitecore/Posts/2010/06/Customizing-With-Large-Data-Sets.aspx" target="_blank">this blogpost</a> by Adam Conn.</p>
<p>In the example you can see that a new window is opened by the code below:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">override</span> <span style="color: #6666cc; font-weight: bold;">void</span> Execute<span style="color: #008000;">&#40;</span>CommandContext context<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">ArgumentNotNull</span><span style="color: #008000;">&#40;</span>context, <span style="color: #666666;">&quot;context&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	UrlString url <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> UrlString<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;/sitecore/shell/~/xaml/GridExample.GridExamplePage&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	url<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;id&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> context<span style="color: #008000;">.</span><span style="color: #0000FF;">Items</span><span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	SheerResponse<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowModalDialog</span><span style="color: #008000;">&#40;</span>url<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;650&quot;</span>, <span style="color: #666666;">&quot;500&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

</p>
<p>As you can see this is done by calling a url with a /~xaml/ handler. The xaml handler calls the Sitecore.Web.UI.XamlSharp.Xaml.XamlPageHandlerFactory class which basicly searches for the control. In the example from Adam the control which is being searched for is placed in the &#8220;/sitecore modules&#8221; folder. By default Sitecore searches these controls in the &#8220;/sitecore modules&#8221;  and &#8220;/sitecore/shell/Applications&#8221; folders.</p>
<p>But if you build custom applications within Sitecore the chance is that you do not want to place the custom code into the &#8220;/sitecore&#8221; or &#8220;/sitecore modules&#8221; folders. Of course you can place the code into your own location, but then the XAML handler cannot find the control.</p>
<p>The configuration which defines the folders for Sitecore to look for controls is inside the &#8220;/App_Config/XamlSharp.config&#8221; file. There are two watchers defined which tell Sitecore to look into the folder mentioned earlier. You can add a new watcher by adding it to the XamlSharp.config. Or better, use a Sitecore include config file.</p>
<p>That would be something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration</span> <span style="color: #000066;">xmlns:patch</span>=<span style="color: #ff0000;">&quot;http://www.sitecore.net/xmlconfig/&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sitecore<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xamlsharp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;Sitecore.Web.UI.XamlSharp.Xaml.XamlFileControlSource,Sitecore.Kernel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;watchers</span> <span style="color: #000066;">hint</span>=<span style="color: #ff0000;">&quot;list:AddWatcher&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;watcher</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;Sitecore.Web.UI.XamlSharp.Xaml.XamlFileWatcher,Sitecore.Kernel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;folder<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/CustomShell/GridExample<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/folder<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>*.xaml.xml<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;codefilter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>*.xaml.xml.cs<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/codefilter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;includesubdirectories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/includesubdirectories<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/watcher<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/watchers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xamlsharp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sitecore<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>and the url to call in the command would be like this</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">override</span> <span style="color: #6666cc; font-weight: bold;">void</span> Execute<span style="color: #008000;">&#40;</span>CommandContext context<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">ArgumentNotNull</span><span style="color: #008000;">&#40;</span>context, <span style="color: #666666;">&quot;context&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	UrlString url <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> UrlString<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;/~/xaml/GridExample.GridExamplePage&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	url<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;id&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> context<span style="color: #008000;">.</span><span style="color: #0000FF;">Items</span><span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ID</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	SheerResponse<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowModalDialog</span><span style="color: #008000;">&#40;</span>url<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;650&quot;</span>, <span style="color: #666666;">&quot;500&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><em>Update:</em></p>
<p>Mike Ursino (check out his blog <a href="http://firebreaksice.com/">here</a>) added a comment that it is also possible to register a single control by adding the namespace and assembly to the XamlSharp.config file. In that case your config file would be like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration</span> <span style="color: #000066;">xmlns:patch</span>=<span style="color: #ff0000;">&quot;http://www.sitecore.net/xmlconfig/&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sitecore<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xamlsharp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;Sitecore.Web.UI.XamlSharp.AssemblyControlSource,Sitecore.Kernel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;namespaceuri<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.yourcompany.com/webcontrols<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/namespaceuri<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;assemblyname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Company.Controls<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/assemblyname<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;namespace<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Company.Web.UI.WebControls<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/namespace<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sources<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>    
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xamlsharp<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sitecore<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2012/01/23/using-xaml-controls-outside-the-sitecore-folder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Configure a authoring server as publishing instance</title>
		<link>http://www.markvanaalst.com/2012/01/12/configure-a-authoring-server-as-publishing-instance/</link>
		<comments>http://www.markvanaalst.com/2012/01/12/configure-a-authoring-server-as-publishing-instance/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 20:24:21 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[authoring server]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=169</guid>
		<description><![CDATA[This week I got a question from one of our partners about a publishing server. They have an environment in which the authors edit the content on several content authoring servers and publish it to the content delivery servers. In my example underneath we have an environment with multiple content management servers (CM) and multiple content delivery (CD) servers. Whenever a content editor publishes one or more items from the CM to the CD servers [...]]]></description>
			<content:encoded><![CDATA[<p>This week I got a question from one of our partners about a publishing server. They have an environment in which the authors edit the content on several content authoring servers and publish it to the content delivery servers.</p>
<p>In my example underneath we have an environment with multiple content management servers (CM) and multiple content delivery (CD) servers. Whenever a content editor publishes one or more items from the CM to the CD servers this will all run on that CM server. This can cause a slower work environment for the content editors.</p>
<p><a href="http://www.markvanaalst.com/wp-content/uploads/2012/01/m-without-pi.png"><img class="alignnone size-full wp-image-170" title="CM Environment without a pulishing instance" src="http://www.markvanaalst.com/wp-content/uploads/2012/01/m-without-pi.png" alt="This week I got a question from one of our partners about a publishing server. They have an environment in which the authors edit the content on several content authoring servers and publish it to the content delivery servers." width="608" height="280" /></a></p>
<p>In Sitecore 6.3 we introduced an option to configure a CM server as a publishing server. The only operations the publishing instance does are related to the publishing mechanism. So for performance reasons you can enable a CM server to be a (dedicated) publishing instance, and keep the CM servers solely for content editing. This will optimize the performance for the content authoring servers, so the content editor won’t have performance issues related to publishing.</p>
<h2>How can you enable a publishing instance?</h2>
<p>The first thing to do is to configure the ScalabilitySettings.config file in the App_Config\Include folder. You need to rename the ScalabilitySettings.config.example to ScalabilitySettings.config. Otherwise the config file won’t override the settings in the web.config file.</p>
<p>When you renamed the file you can edit the settings. A publishing instance is identified by the InstanceName. By default the InstanceName setting in the web.config if empty. Be aware that that same setting is also available in the ScalabilitySettings.config. It’s recommended that you change the value of the setting in the separate config file. This will override the web.config setting value.</p>
<p>If the value is empty Sitecore will use the instance name by combining the (NetBIOS) machine name and the IIS Site name. So for the IIS Site ProjectA on the server CM1 the instance name would become CM1-ProjectA.</p>
<p>You can check for the instance name in the Sitecore log file. There will be a log entry like: “5224 12:00:00 INFO Instance Name: CM1-Project1”.</p>
<p>When you know the instance name of the publishing server you can look for the settings Publishing.PublishingInstance in the ScalabilitySettings.config file. In the value of the setting you enter the name of the configured publishing instance.</p>
<p><a href="http://www.markvanaalst.com/wp-content/uploads/2012/01/m-with-pi.png"><img class="alignnone size-full wp-image-171" title="CM Environment with publishing instance" src="http://www.markvanaalst.com/wp-content/uploads/2012/01/m-with-pi.png" alt="In Sitecore 6.3 we introduced an option to configure a CM server as a publishing server. The only operations the publishing instance does are related to the publishing mechanism. So for performance reasons you can enable a CM server to be a (dedicated) publishing instance, and keep the CM servers solely for content editing. This will optimize the performance for the content authoring servers, so the content editor won’t have performance issues related to publishing." width="594" height="280" /></a></p>
<p>And now you have an environment like illustrated above. In this example we have two dedicated content management server and one separate publishing instance which handles all publishing operations.  At this moment the content management servers send their local events to the event queue in the remote instance which handles the events.</p>
<p>In the ScalabilitySettings.config there is a setting “EnableEventQueues” which by default is true. This setting is required to be true to enable a publishing instance.</p>
<p>Whenever you are going to configure an environment with techniques like this, make sure that you fully read the <a href="http://sdn.sitecore.net/upload/sitecore6/64/scaling_guide_sc63-64-a4.pdf">Sitecore Scaling Guide</a> first. You can find it on the Sitecore Developers Network.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2012/01/12/configure-a-authoring-server-as-publishing-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New job: Sitecore Solution Architect</title>
		<link>http://www.markvanaalst.com/2012/01/10/new-job-sitecore-solution-architect/</link>
		<comments>http://www.markvanaalst.com/2012/01/10/new-job-sitecore-solution-architect/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 23:31:01 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=164</guid>
		<description><![CDATA[As of the first of january I am the new solution architect for Sitecore in the Netherlands. I am the second solution architect next to Pieter Brinkman. Together we will be responsible for: Technical Presentations and demonstrations Providing Technical Trainings Defining Sitecore architecture/blueprint for customer and partners Developing CMS relevant (sales) propositions Develop demo’s and POC with sales, product specialist and product development Support local sales in responding to tenders/rfi/rfp Keep relevant technical/market knowledge up [...]]]></description>
			<content:encoded><![CDATA[<p>As of the first of january I am the new solution architect for Sitecore in the Netherlands. I am the second solution architect next to <a title="The blog of Pieter Brinkman" href="http://www.newguid.net/Sitecore/" target="_blank">Pieter Brinkman</a>. Together we will be responsible for:</p>
<ul>
<li>Technical Presentations and demonstrations</li>
<li>Providing Technical Trainings</li>
<li>Defining Sitecore architecture/blueprint for customer and partners</li>
<li>Developing CMS relevant (sales) propositions</li>
<li>Develop demo’s and POC with sales, product specialist and product development</li>
<li>Support local sales in responding to tenders/rfi/rfp</li>
<li>Keep relevant technical/market knowledge up to date</li>
<li>Advise customers &amp; partners on how to best use Sitecore products</li>
</ul>
<p>One of our means to keep the knowledge up to date will be blogging. So, you can exspect a lot more blogging in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2012/01/10/new-job-sitecore-solution-architect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using ELMAH for error logging within Sitecore</title>
		<link>http://www.markvanaalst.com/2011/03/24/using-elmah-for-error-logging-within-sitecore/</link>
		<comments>http://www.markvanaalst.com/2011/03/24/using-elmah-for-error-logging-within-sitecore/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 21:31:34 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Elmah]]></category>
		<category><![CDATA[Exceptions]]></category>
		<category><![CDATA[Logging]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=147</guid>
		<description><![CDATA[Since a while I use ELMAH for error logging in my custom ASP.NET applications. Normally in a Sitecore project I log all exceptions to the Sitecore log files. But the disadvantage of this is that the exceptions are in the same files as all Sitecore log messages. So I tried to implement ELMAH within my Sitecore installation. What is ELMAH? According to the official site: “ELMAH (Error Logging Modules and Handlers) is an application-wide error [...]]]></description>
			<content:encoded><![CDATA[<p>Since a while I use ELMAH for error logging in my custom ASP.NET applications. Normally in a Sitecore project I log all exceptions to the Sitecore log files. But the disadvantage of this is that the exceptions are in the same files as all Sitecore log messages. So I tried to implement ELMAH within my Sitecore installation.</p>
<h3>What is ELMAH?</h3>
<p>According to the official site: “ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.”</p>
<h3>What does this mean?</h3>
<p>ELMAH has the following features</p>
<ul>
<li>Log all (unhandled) exceptions</li>
<li>A user interface which lets you view remotely all exceptions, including detailed information (even when customerrors mode is turned off!) and the original yellow error screen (YSOD)</li>
<li>Email notification when errors occur</li>
<li>RSS feeds which show the latest errors</li>
</ul>
<p>ELMAH uses two key components. There is one HTTP module which logs exceptions, and one HTTP Handler that shows the exceptions. You can choose SQL Server, SQLite, MS Access, Oracle, Vista DB or MySQL  as a storage medium to save the exceptions to.</p>
<h3>How do you implement it?</h3>
<p>First off all you need to download the right version from the official <a href="http://code.google.com/p/elmah/downloads/list">download</a> page. Then copy the Elmah.dll file to your Bin folder. If you want to use the SQLite data storage then you also need to copy the System.Data.SQLite.dll into the Bin folder. For this example I will use the SQLite data storage.</p>
<p>When you copied the files into the Bin folder, you need to edit the web.config. Unfortunately the web.config changes are outside the &lt;sitecore&gt; node, so we can’t use the config include files.</p>
<dl>
<dt>1. First we need to add a new sectiongroup to the configuration/configSections node</dt>
<dd> &lt;sectionGroup name=&#8221;elmah&#8221;&gt;<br />
&lt;section name=&#8221;errorLog&#8221; requirePermission=&#8221;false&#8221; type=&#8221;Elmah.ErrorLogSectionHandler, Elmah&#8221;/&gt;<br />
&lt;/sectionGroup&gt; </dd>
<dt>2. Then we need to add the ELMAH section to the configuration node. In this section is configured what type of storage we use</dt>
<dd> &lt;elmah&gt;<br />
&lt;errorLog type=&#8221;Elmah.SQLiteErrorLog, Elmah&#8221; connectionStringName=&#8221;ELMAH.SQLite&#8221;/&gt;<br />
&lt;/elmah&gt; </dd>
<dt>3. As you might noticed we also need to add a connectionstring. This can be added to the /App_Config/ConnectionStrings.config</dt>
<dd> &lt;add name=&#8221;ELMAH.SQLite&#8221; connectionString=&#8221;Data Source=|DataDirectory|errors.s3db&#8221;/&gt; </dd>
<dt>4. ELMAH uses a HTTP Handler with the file extension .axd. To prevent IIS returning a 404 we need to add the location and filename of the handler  to the IgnoreUrlPrefixes setting.</dt>
<dd> &lt;setting name=&#8221;IgnoreUrlPrefixes&#8221; value=&#8221;/sitecore/admin/elmah.axd|/sitecore…. </dd>
<dt>5. Then we need to add the Http module which logs the exceptions to the end of the system.webserver/modules section</dt>
<dd> &lt;add name=&#8221;ErrorLog&#8221; type=&#8221;Elmah.ErrorLogModule, Elmah&#8221;/&gt; </dd>
<dt>6. The last part is adding the Http handler to the end of to the system.webserver/handlers section</dt>
<dd> &lt;add name=&#8221;Elmah&#8221; path=&#8221;/sitecore/admin/elmah.axd&#8221; verb=&#8221;POST,GET,HEAD&#8221; type=&#8221;Elmah.ErrorLogPageFactory, Elmah&#8221; preCondition=&#8221;integratedMode&#8221; /&gt; </dd>
</dl>
<p>If all it setup correctly you can now view ELMAH log at <a href="http://www.mysite.com/sitecore/admin/elmah.axd">http://www.mysite.com/sitecore/admin/elmah.axd</a></p>
<p>Right now ELMAH only logs the unhandled exceptions. If you want ELMAH to log exceptions which you handle in a catch statement you need to add the following line in your catch statement:</p>
<p>Elmah.ErrorSignal.FromCurrentContext().Raise(ex);</p>
<p>I created a simple application which lets you view the ELMAH error log within Sitecore. I will put this on the Shared Source environment later this week.</p>
<p><a href="http://www.markvanaalst.com/wp-content/uploads/2011/03/Elmah.png"><img class="alignnone size-full wp-image-148" title="View Elmah logs within Sitecore" src="http://www.markvanaalst.com/wp-content/uploads/2011/03/Elmah.png" alt="View Elmah logs within Sitecore" width="465" height="258" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2011/03/24/using-elmah-for-error-logging-within-sitecore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EviBlog future plans</title>
		<link>http://www.markvanaalst.com/2010/11/24/eviblog-future-plans/</link>
		<comments>http://www.markvanaalst.com/2010/11/24/eviblog-future-plans/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 22:14:03 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[WeBlog]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.com/?p=140</guid>
		<description><![CDATA[EviBlog 2.0 update A lot has happened since I released the EviBlog module in november 2009. What started as a small eductional project quickly became one of the largest modules in the Shared Source repository. It became so large that I just didn&#8217;t have enough time to build a newer version on my own. So I am please to announce that I&#8217;m going to team up with Alistair Deneys (also an Sitecore MVP) and Nick [...]]]></description>
			<content:encoded><![CDATA[<p>EviBlog 2.0 update A lot has happened since I released the EviBlog module in november 2009. What started as a small eductional project quickly became one of the largest modules in the Shared Source repository. It became so large that I just didn&#8217;t have enough time to build a newer version on my own.</p>
<p>So I am please to announce that I&#8217;m going to team up with <a title="Alistair Deneys" href="http://adeneys.wordpress.com/" target="_blank">Alistair Deneys</a> (also an Sitecore MVP) and <a title="Nick Wesselman" href="http://www.techphoria414.com" target="_blank">Nick Wesselman</a>. The three of us are going to work together to build a brand new version of the module. At the moment we are testing the 1.6 release in which they both added enhancements and included new functionality. Hopefully we are able to release that version somewhere next week.</p>
<p>At the same time we are thinking of more enhancements and new functionality. So when you have any ideas about the future of this module please let us know. I have opened a <a href="http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?PostID=30984" target="_blank">thread</a> on the Sitecore SDN forum where you can write down your ideas.</p>
<p>Personally I am very proud that we have three developers from Australia, the United States and the Netherlands all collaborating on one project. This is a nice example of how people from the community can build something for the community.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2010/11/24/eviblog-future-plans/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using JQuery in custom fields</title>
		<link>http://www.markvanaalst.com/2010/02/18/using-jquery-in-custom-fields/</link>
		<comments>http://www.markvanaalst.com/2010/02/18/using-jquery-in-custom-fields/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:27:38 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Custom field]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.net/?p=99</guid>
		<description><![CDATA[At the moment I&#8217;m creating a custom field for tagging content items. I prototyped my custom field in html using JQuery. But when I wanted to convert this to the actual custom field I ran into a problem. As you might know Sitecore uses the Prototype library for all of it&#8217;s javascript. And prototype uses the same dollar sign for all of its functions and variables as JQuery does. But JQuery provides a noConflict function [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment I&#8217;m creating a custom field for tagging content items. I prototyped my custom field in html using JQuery. But when I wanted to convert this to the actual custom field I ran into a problem. As you might know Sitecore uses the Prototype library for all of it&#8217;s javascript. And prototype uses the same dollar sign for all of its functions and variables as JQuery does. But JQuery provides a <a href="http://api.jquery.com/jQuery.noConflict/">noConflict</a> function where you can reassign the default $.</p>
<p>But then came the next challenge. I needed to use the noConflict function before all other javascript was called. Luckally I remembered that I have seen it before in other custom fields that are on the <a href="http://trac.sitecore.net/Index/">Shared Source</a> environment. So I started browsing the source code of Alexey Rusakov&#8217;s project (<a href="http://trac.sitecore.net/FieldTypes/">Sitecore Fieldtypes</a>) and I found the <a href="http://svn.sitecore.net/FieldTypes/trunk/sitecore%20modules/Outercore.FieldTypes/Common/InjectScripts.cs">InjectScripts</a> class which provides an option to add HTML to the section of the Content Editor. There I just added a reference to my JQuery library and off course calling the .noConflict funtion.</p>
<p>[sourcecode language="csharp"]</p>
<p>namespace Sitecore.SharedSource.Taxonomy<br />
{<br />
class AddScripts<br />
{<br />
public void Process(PipelineArgs args)<br />
{<br />
if (Sitecore.Context.ClientPage.IsEvent)<br />
return;</p>
<p>HttpContext context = HttpContext.Current;<br />
if (context == null)<br />
return;</p>
<p>Page page = context.Handler as Page;<br />
if (page == null)<br />
return;</p>
<p>Assert.IsNotNull(page.Header, &#8220;Content Editor <head> tag is missing runat=&#8217;value&#8217;&#8221;);</p>
<p>string[] scripts = new[]<br />
{<br />
&#8220;/sitecore modules/Shell/Taxonomy/jquery-1.4.1.min.js&#8221;<br />
};</p>
<p>foreach (string script in scripts)<br />
{<br />
page.Header.Controls.Add(new LiteralControl(&#8220;<script type='text/javascript' language='javascript' src='{0}'></script>&#8220;.FormatWith(script)));<br />
page.Header.Controls.Add(new LiteralControl(&#8220;<script type="text/javascript">$.noConflict();</script>&#8220;));<br />
}<br />
}</p>
<p>}<br />
}</p>
<p>[/sourcecode]</p>
<p>So now I can call my JQuery by using &#8220;jQuery&#8221; in stead of &#8220;$&#8221; and the field works.</p>
<p>In my opinion this is just an example of how the Shared Source environment can help you. So if you have created a module, field or any thing else please put it on the Shared Source environment so others can benefit from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2010/02/18/using-jquery-in-custom-fields/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Restricting FieldEditor to specific template based items</title>
		<link>http://www.markvanaalst.com/2010/02/17/restricting-fieldeditor-to-specific-template-based-items/</link>
		<comments>http://www.markvanaalst.com/2010/02/17/restricting-fieldeditor-to-specific-template-based-items/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 11:28:04 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[FieldEditor]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.net/?p=94</guid>
		<description><![CDATA[In Sitecore 6.2 it is possible to integrate FieldEditors. These are command which enables users edit item settings when they work in the page editor. Personally I think it is a great option when you want editors to only work within the Page Editor, and still let them edit settings. For the blog module that I created I implemented two FieldEditorCommands which let the user edit the blog and entry settings. When you use the [...]]]></description>
			<content:encoded><![CDATA[<p>In Sitecore 6.2 it is possible to integrate FieldEditors. These are command which enables users edit item settings when they work in the page editor. Personally I think it is a great option when you want editors to only work within the Page Editor, and still let them edit settings.<br />
For the blog module that I created I implemented two FieldEditorCommands which let the user edit the blog and entry settings. When you use the default implementation as described in one of the cookbooks users can always click on the ribbon button regarding if the fields are on the currentitem. When those field don not exist on that item, they just get a empty popup.<br />
I decided to restrict the option only to items which are based on a certain template. You can do this the following way:<br />
You’ll need to override the Execute method in the your class (which overrides from Sitecore.Shell.Applications.WebEdit.Commands.FieldEditorCommand).</p>
<p>Then you isolate the function Context.ClientPage.Start in for instance an if statement.</p>
<p>Example:<br />
[sourcecode language="csharp"]<br />
if (context.Items[0].TemplateID == new ID(Settings.Default.EntryTemplateID))<br />
{<br />
Context.ClientPage.Start(this, &#8220;StartFieldEditor&#8221;, args);<br />
}<br />
else<br />
{<br />
Context.ClientPage.ClientResponse.Alert(&#8220;Please select an entry first&#8221;);<br />
}<br />
[/sourcecode]</p>
<p>If anyone else has a better way to get the same results please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2010/02/17/restricting-fieldeditor-to-specific-template-based-items/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog module update</title>
		<link>http://www.markvanaalst.com/2009/11/27/blog-module-update/</link>
		<comments>http://www.markvanaalst.com/2009/11/27/blog-module-update/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 09:08:57 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.net/?p=90</guid>
		<description><![CDATA[This week I released the stable version of the EviBlog module. You can download the module from the Sitecore Shared Source. The module works on all Sitecore solutions based on version 6.2. The module now includes the following features: Inline Editing support Windows Live Writer integration Pingback RSS (using the Sitecore 6.2 Integrated RSS) Tagging and tagcloud Categories Comments (you can disable per setting) FieldEditors for blog and entry settings Custom webcontrols for integrating your [...]]]></description>
			<content:encoded><![CDATA[<p>This week I released the stable version of the EviBlog module. You can download the module from the <a href="http://trac.sitecore.net/EviBlog">Sitecore Shared Sourc</a>e. The module works on all Sitecore solutions based on version 6.2.</p>
<p>The module now includes the following features:</p>
<ul>
<li>Inline Editing support</li>
<li>Windows Live Writer integration</li>
<li>Pingback</li>
<li>RSS (using the Sitecore 6.2 Integrated RSS)</li>
<li>Tagging and tagcloud</li>
<li>Categories</li>
<li>Comments (you can disable per setting)</li>
<li>FieldEditors for blog and entry settings</li>
<li>Custom webcontrols for integrating your own theme</li>
</ul>
<p>The Shared Source coordinator Jimmie Overby created two video’s (<a href="http://www.youtube.com/watch?v=qe3Ppqkxhxw">1</a>, <a href="http://www.youtube.com/watch?v=XQUaXWTJyLs">2</a>) which shows you the most common use of the module. Currently I am writing some documentation about how to use the webcontrols in your own theme. With these webcontrols it’s quite easy to integrate the module within an existing Sitecore installation.</p>
<p>Please do not hesitate to use the Shared Source forum when you have questions about the module.<br />
<span id="more-90"></span></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/qe3Ppqkxhxw&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qe3Ppqkxhxw&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/XQUaXWTJyLs&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XQUaXWTJyLs&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2009/11/27/blog-module-update/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>New Sitecore 6 blog module released</title>
		<link>http://www.markvanaalst.com/2009/11/07/new-sitecore-6-blog-module-released/</link>
		<comments>http://www.markvanaalst.com/2009/11/07/new-sitecore-6-blog-module-released/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 23:08:38 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[blog module]]></category>
		<category><![CDATA[Sitecore 6]]></category>

		<guid isPermaLink="false">http://www.markvanaalst.net/?p=83</guid>
		<description><![CDATA[In the last couple of months I have been working on a new blog module for Sitecore 6.2. It started as a small module just for my own educational purpose but ended up as one of the largest modules I created. The module is a complete rewritten blog module, based upon the functionality of the old 5.3 version. The new version supports inline editing, fieldeditors, webcontrols for custom themes and Windows Live Writer integration. This [...]]]></description>
			<content:encoded><![CDATA[<p>In the last couple of months I have been working on a new blog module for Sitecore 6.2. It started as a small module just for my own educational purpose but ended up as one of the largest modules I created. The module is a complete rewritten blog module, based upon the functionality of the old 5.3 version. The new version supports inline editing, fieldeditors, webcontrols for custom themes and <a href="http://download.live.com/writer" target="_blank">Windows Live Writer</a> integration. This release includes two sample blogs. One with a standard theme and one custom theme which shows you how to use the custom webcontrols.</p>
<p><span style="text-decoration: underline;">List of features</span></p>
<ul>
<li>Windows Live Writer integration (MetaWeblog API)</li>
<li>Full frontend (inline) editing</li>
<li>Webedit ribbon (with fieldeditors)</li>
<li>CSS based themes</li>
<li>Custom themes possible (one demo included)</li>
<li>Custom webcontrols (with inline editing)</li>
<li>Comments</li>
<li>Tagging and a tagcloud</li>
<li>RSS Feeds</li>
</ul>
<p>At this moment the module in still in betá, and I would like to hear your feedback. You can use the comments or just send me a email (mark at evident.nl). When you encounter problems, found a bug or have any other kind of feedback please let me know and I will try to reply as soon as possible.</p>
<p>You can find the installation package and sources on the <a href="http://trac.sitecore.net/EviBlog" target="_blank">Shared Source environment</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markvanaalst.com/2009/11/07/new-sitecore-6-blog-module-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.458 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-04 12:50:14 -->

