<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Frederik Vig - ASP.NET developer</title>
	
	<link>http://www.frederikvig.com</link>
	<description />
	<lastBuildDate>Wed, 28 Jul 2010 14:08:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/frederikvig" /><feedburner:info uri="frederikvig" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>EPiCode.Extensions and ambiguous reference</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/X-fvl4TxT9s/</link>
		<comments>http://www.frederikvig.com/2010/07/epicode-extensions-and-ambiguous-reference/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 13:34:11 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>
		<category><![CDATA[EPiCode.Extensions]]></category>
		<category><![CDATA[EPiServer Composer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1321</guid>
		<description><![CDATA[On new projects where I use EPiCode.Extensions I always register the namespace EPiCode.Extensions in my web.config &#8211; that way I can use the extension methods in my .aspx and .ascx files without needing to register EPiCode.Extensions in every file. ... &#60;namespaces&#62; ... &#60;add namespace=&#34;EPiCode.Extensions&#34; /&#62; &#60;/namespaces&#62; &#60;/pages&#62; ... Sometimes this can cause some problems when [...]]]></description>
			<content:encoded><![CDATA[<p>On new projects where I use <a href="https://www.coderesort.com/p/epicode/wiki/Extensions">EPiCode.Extensions</a> I always register the namespace EPiCode.Extensions in my web.config &#8211; that way I can use the extension methods in my .aspx and .ascx files without needing to register EPiCode.Extensions in every file.</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;namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        ...
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">namespace</span>=<span style="color: #ff0000;">&quot;EPiCode.Extensions&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>     
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pages<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...</pre></div></div>

<p>Sometimes this can cause some problems when you have other extension methods with the same method signature.</p>
<p><a href="http://www.frederikvig.com/wp-content/uploads/ambiguous-extension-method-call.png"><img src="http://www.frederikvig.com/wp-content/uploads/ambiguous-extension-method-call.png" alt="Ambiguous call between two extension methods with the same signature" width="800" /></a></p>
<p>In this case it was with EPiServer Composer. To fix it I created a simple web.config file that I placed inside the Dropit\Plugin\Extension folder.</p>
<p>Here&#8217;s the code.</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: #000000; font-weight: bold;">?&gt;</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>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;system.web<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pages<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
              <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">namespace</span>=<span style="color: #ff0000;">&quot;EPiCode.Extensions&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pages<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/system.web<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>You can also use the location element of your main web.config file instead.</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;location</span> <span style="color: #000066;">path</span>=<span style="color: #ff0000;">&quot;dropit&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;system.web<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pages<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">namespace</span>=<span style="color: #ff0000;">&quot;EPiCode.Extensions&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/namespaces<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pages<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/system.web<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/location<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And that&#8217;s it! This will also work for all the sub directories as well. </p>
<p>On a side-note: I&#8217;ve been adding a lot of new extension methods lately to the project. I&#8217;ve listed them on the <a href="https://www.coderesort.com/p/epicode/wiki/Extensions">project&#8217;s wiki-page</a>. Go check them out!<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/11/epicode-extensions-new-epicode-community-project/" rel="bookmark" title="November 1, 2009">EPiCode.Extensions new EPiCode Community Project</a></li>
<li><a href="http://www.frederikvig.com/2009/10/slideshare-dynamic-content/" rel="bookmark" title="October 25, 2009">SlideShare Dynamic Content</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-1-setting-up-the-development-environment-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 4, 2009">Part 1: Setting up the development environment &#8211; Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2010/03/updated-all-episerver-posts-for-episerver-cms-6/" rel="bookmark" title="March 28, 2010">Updated all EPiServer posts for EPiServer CMS 6</a></li>
<li><a href="http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/" rel="bookmark" title="April 3, 2010">Creating a simple image gallery with EPiServer</a></li>
</ul>
<p><!-- Similar Posts took 9.446 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/X-fvl4TxT9s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/07/epicode-extensions-and-ambiguous-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/07/epicode-extensions-and-ambiguous-reference/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=epicode-extensions-and-ambiguous-reference</feedburner:origLink></item>
		<item>
		<title>Specify a canonical domain name for your site with IIS 7</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/VsyscE38zwQ/</link>
		<comments>http://www.frederikvig.com/2010/07/specify-a-canonical-domain-name-for-your-site-with-iis-7/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 07:57:17 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1312</guid>
		<description><![CDATA[When setting up new sites in IIS you specify which host names map to your site. Usually this is at least two: www.example.com and example.com, sometimes even more. One great new addition to IIS 7 is the URL Rewriting extension. This allows you to setup a few rules for your URLs. Let&#8217;s start by downloading [...]]]></description>
			<content:encoded><![CDATA[<p>When setting up new sites in IIS you specify which host names map to your site. Usually this is at least two: www.example.com and example.com, sometimes even more. One great new addition to IIS 7 is the URL Rewriting extension. This allows you to setup a few rules for your URLs.</p>
<p>Let&#8217;s start by downloading and installing the URL Rewrite extension. The <a href="http://iis.net">official IIS site</a> has a <a href="http://www.iis.net/download">download section</a> with some very cool extension that I recommend you check out when you have the time. For now we only need the <a href="http://www.iis.net/download/URLRewrite">URL Rewrite extension</a>. This will launch the Web Platform Installer, click Install and Accept. You should now see a new module in IIS. </p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/canonical-domain/iis-url-rewrite.png" alt="URL Rewrite extension in IIS 7" /></p>
<p>To setup the rule we need for our canonical domain, just click the Add Rule(s) link and and under Search Engine Optimization (SEO) section choose Canonical domain name. Select a primary host name and you&#8217;re done!</p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/canonical-domain/add-rule-iis-url-rewrite.png" alt="Choose primary host name during Add rule with IIS URL Rewrite" /></p>
<p>What this does is redirect all traffic going to www.frederikvig.com to frederikvig.com,  www.frederikvig.com/news to frederikvig.com/news etc, with a 301 (permanent redirect). </p>
<p>The reason this is important for SEO purposes is that search engines treat all URLs differently, so when you have two or more URLs all pointing to the same content your search ranking will suffer. Fortunately we have fixed this now with this rule, next time Google or some other search engine visits your site it will update it&#8217;s indexes, making all links point to the same domain name.</p>
<p>There are a lot of other great enhancements (Enforce lowercase URLs, User Friendly URLs etc) that I recommend checking out. Here are <a href="http://learn.iis.net/tags/URL+Rewrite+Module/default.aspx">a few articles</a> to get you started.<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/11/specify-your-preferred-external-url-in-episerver/" rel="bookmark" title="November 7, 2009">Specify your preferred external URL in EPiServer</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-7-creating-the-sitemap-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 22, 2009">Part 7: Creating the Sitemap page – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-8-preparing-for-launch-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 24, 2009">Part 8: Preparing for launch – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2010/01/episerver-code-walkthrough-1-404-handler/" rel="bookmark" title="January 29, 2010">EPiServer code walkthrough #1 &#8211; 404 handler</a></li>
<li><a href="http://www.frederikvig.com/2009/06/using-multiple-forms-on-an-asp-net-web-forms-page/" rel="bookmark" title="June 21, 2009">Using multiple forms on an ASP.NET web forms page</a></li>
</ul>
<p><!-- Similar Posts took 11.555 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/VsyscE38zwQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/07/specify-a-canonical-domain-name-for-your-site-with-iis-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/07/specify-a-canonical-domain-name-for-your-site-with-iis-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=specify-a-canonical-domain-name-for-your-site-with-iis-7</feedburner:origLink></item>
		<item>
		<title>CSS and JavaScript compression and bundling</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/yvhuVchu1Ys/</link>
		<comments>http://www.frederikvig.com/2010/06/css-and-javascript-compression-and-bundling/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 22:26:50 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1298</guid>
		<description><![CDATA[In the last post in Create an EPiServer site from scratch I go through some optimization tips and tricks from YSlow. One of these are CSS and JavaScript compression and bundling of files to create fewer HTTP requests and to send the least amount of data back to the client as possible, removing whitespaces, comments [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://www.frederikvig.com/2009/12/part-8-preparing-for-launch-create-an-episerver-site-from-scratch/">last post</a> in <a href="http://www.frederikvig.com/2009/12/introduction-create-an-episerver-site-from-scratch/">Create an EPiServer site from scratch</a> I go through some optimization tips and tricks from <a href="http://developer.yahoo.com/yslow/">YSlow</a>. One of these are CSS and JavaScript compression and bundling of files to create fewer HTTP requests and to send the least amount of data back to the client as possible, removing whitespaces, comments etc, that we don&#8217;t need to run our code. </p>
<p>In the past I&#8217;ve done this as part of my deployment process, but recently I&#8217;ve come across a tool called <a href="http://www.codethinked.com/post/2010/05/26/SquishIt-The-Friendly-ASPNET-JavaScript-and-CSS-Squisher.aspx">SquishIt</a>. Which basically is a wrapper for <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> (you can easily replace it with your compressor of choice). It is dead simple to use, you simply add a reference to SquishIt.Framework.dll in your project, and replace your old CSS and JavaScript links and script tags with code like this.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;%=</span> Bundle.<span style="color: #0000FF;">Css</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Styles/screen.css&quot;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Styles/print.css&quot;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Styles/mobile.css&quot;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Render</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Styles/combined-#.css&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">%&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;%=</span> Bundle.<span style="color: #0000FF;">JavaScript</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Scripts/belatedPNG-0.0.8a-min.js&quot;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Scripts/ie6.js&quot;</span><span style="color: #000000;">&#41;</span>
          .<span style="color: #0000FF;">Render</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Scripts/ie6combined-#.js&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span></pre></div></div>

<p>Using a fluent interface makes it easy to add more file references, ending with the Render method that takes a parameter for where to store the combined and minimized file. </p>
<p>It is very easy to toggle SquishIt on and off. Simply set debug=&#8221;true&#8221; in your web.config file to turn it off and render CSS and JavaScript files as normal, great for when you need to debug your code. Set debug=&#8221;false&#8221; to enable compression and bundling again.</p>
<p>Best part is that it only took me 2 minutes to setup and add to my current project! Works like a charm so far <img src='http://www.frederikvig.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/08/adding-css-and-javascript-files-dynamically-to-your-asp-net-page/" rel="bookmark" title="August 15, 2009">Adding CSS and JavaScript files dynamically to your ASP.NET page</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-8-preparing-for-launch-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 24, 2009">Part 8: Preparing for launch – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2009/07/episerver-web-controls-newslist/" rel="bookmark" title="July 25, 2009">EPiServer web controls: NewsList</a></li>
<li><a href="http://www.frederikvig.com/2009/07/episerver-web-controls-pagelist/" rel="bookmark" title="July 20, 2009">EPiServer web controls: PageList</a></li>
<li><a href="http://www.frederikvig.com/2010/01/episerver-code-walkthrough-1-404-handler/" rel="bookmark" title="January 29, 2010">EPiServer code walkthrough #1 &#8211; 404 handler</a></li>
</ul>
<p><!-- Similar Posts took 12.760 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/yvhuVchu1Ys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/06/css-and-javascript-compression-and-bundling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/06/css-and-javascript-compression-and-bundling/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=css-and-javascript-compression-and-bundling</feedburner:origLink></item>
		<item>
		<title>EPiServer Developer Resources</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/fGCvDUXtMz4/</link>
		<comments>http://www.frederikvig.com/2010/05/episerver-developer-resources/#comments</comments>
		<pubDate>Thu, 27 May 2010 13:53:10 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>
		<category><![CDATA[EPiServer Resources]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1269</guid>
		<description><![CDATA[Last updated 05.07.2010 Table of Contents Report Center Mobile Bugs and where to find help FAQ Subscription Categories Import / Export Content Channels URL rewriting / friendly URL TinyMCE / Editor XForms Globalization / localization File system / VPP Security, Membership and roles Events Oracle SEO Workflows Errors, Logging and debugging Logging Errors and Error [...]]]></description>
			<content:encoded><![CDATA[<p>Last updated 05.07.2010</p>
<p><script src="http://www.gmodules.com/ig/ifr?url=http://www.google.com/cse/api/009828010126686317309/cse/34dln55a5g4/gadget&amp;synd=open&amp;w=320&amp;h=75&amp;title=EPiServer+Dev+Search&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script></p>
<div class="toc">
<h2>Table of Contents</h2>
<ol class="toc">
<li><a href="#toc-report-center">Report Center</a></li>
<li><a href="#toc_mobile">Mobile</a></li>
<li><a href="#toc-bugs">Bugs and where to find help</a>
<ol>
<li><a href="#toc-faq">FAQ</a></li>
</ol>
</li>
<li><a href="#toc-subscription">Subscription</a></li>
<li><a href="#toc-categories">Categories</a></li>
<li><a href="#toc-import-export">Import / Export</a></li>
<li><a href="#toc-content-channels">Content Channels</a></li>
<li><a href="#toc-url-rewriting">URL rewriting / friendly URL</a></li>
<li><a href="#toc-tinymce-editor">TinyMCE / Editor</a></li>
<li><a href="#toc-xforms">XForms</a></li>
<li><a href="#toc-globalization-localization">Globalization / localization</a></li>
<li><a href="#toc-file-system-vpp">File system / VPP</a></li>
<li><a href="#toc-security-membership-roles">Security, Membership and roles</a></li>
<li><a href="#toc-events">Events</a></li>
<li><a href="#toc-oracle">Oracle</a></li>
<li><a href="#toc-seo">SEO</a></li>
<li><a href="#toc-workflows">Workflows</a>
    </li>
<li><a href="#toc-errors-logging-debugging">Errors, Logging and debugging</a>
<ol>
<li><a href="#toc-logging">Logging</a></li>
<li><a href="#toc-errors-error-handling">Errors and Error handling</a></li>
<li><a href="#toc-debugging">Debugging</a></li>
</ol>
</li>
<li><a href="#toc-configuration">Configuration</a></li>
<li><a href="#toc-getting-started">Getting started guides and tutorials</a></li>
<li><a href="#toc-checklists">Checklists</a></li>
<li><a href="#toc-sdk">SDK and API documentation</a></li>
<li><a href="#toc-guides">Guides</a></li>
<li><a href="#toc-episerver-framework">EPiServer Framework</a>
<ol>
<li><a href="#toc-online-center">Online Center</a>
<ol>
<li><a href="#toc-gadgets">Gadgets</a></li>
</ol>
</li>
<li><a href="#toc-dynamic-data-store">Dynamic Data Store</a>
<ol>
<li><a href="#toc-page-objects">Page Objects</a></li>
<li><a href="#toc-dynamic-data-store2">Dynamic Data Store</a></li>
</ol>
</li>
<li><a href="#toc-initialization-system">Initialization System</a></li>
</ol>
</li>
<li><a href="#toc-modules">Modules</a>
<ol>
<li><a href="#toc-modules-deployment-center">Modules and deployment center</a></li>
<li><a href="#toc-open-source-modules">Open Source Modules</a>
<ol>
<li><a href="#toc-templates">Templates</a></li>
<li><a href="#toc-gadgets2">Gadgets</a></li>
<li><a href="#toc-page-providers2">Page Providers</a></li>
<li><a href="#toc-virtual-page-providers">Virtual Page Providers</a></li>
<li><a href="#toc-google-analytics-seo">Google Analytics and SEO</a></li>
<li><a href="#toc-dynamic-content2">Dynamic Content</a></li>
<li><a href="#toc-images2">Images, Image galleries and slideshows</a></li>
<li><a href="#toc-google-map">Google Map</a></li>
<li><a href="#toc-properties2">Properties</a></li>
<li><a href="#toc-language-globalization-localization">Language, Globalization and Localization</a></li>
<li><a href="#toc-reports2">Reports</a></li>
<li><a href="#toc-debugging-diagnostics">Debugging and diagnostics</a></li>
<li><a href="#toc-frameworks">Frameworks</a></li>
<li><a href="#toc-performance-caching2">Performance and caching</a></li>
<li><a href="#toc-rss-feeds">RSS and feeds</a></li>
<li><a href="#toc-edit-mode-enhancements">Edit mode enhancements</a></li>
<li><a href="#toc-blog">Blog</a></li>
<li><a href="#toc-various-modules">Various modules</a></li>
<li><a href="#toc-enhancements-editors">Enhancements for editors</a></li>
<li><a href="#toc-editor-enhancements">Rich Text Editor enhancements</a></li>
</ol>
</li>
<li><a href="#toc-episerver-composer">EPiServer Composer</a></li>
<li><a href="#toc-episerver-community">EPiServer Community</a>
<ol>
<li><a href="#toc-tech-notes">Tech-notes</a></li>
<li><a href="#toc-more-resources2">More resources</a></li>
</ol>
</li>
<li><a href="#toc-episerver-commerce">EPiServer Commerce</a></li>
<li><a href="#toc-episerver-relate">EPiServer Relate+</a></li>
<li><a href="#toc-episerver-mail">EPiServer Mail</a></li>
<li><a href="#toc-episerver-cmo">EPiServer CMO</a></li>
<li><a href="#toc-episerver-connect-crm">EPiServer Connect for CRM</a></li>
<li><a href="#toc-episerver-connect-sharepoint">EPiServer Connect for SharePoint</a></li>
</ol>
</li>
<li><a href="#toc-extending-episerver">Extending EPiServer</a>
<ol>
<li><a href="#toc-plugins">Plugins</a></li>
<li><a href="#toc-custom-property">Custom Property</a></li>
<li><a href="#toc-dynamic-content">Dynamic Content</a></li>
<li><a href="#toc-scheduled-jobs">Scheduled Jobs</a></li>
</ol>
</li>
<li><a href="#toc-episerver-enterprise">EPiServer Enterprise</a>
<ol>
<li><a href="#toc-load-balancing">Load Balancing</a></li>
<li><a href="#toc-server-architecture">Server Architecture</a></li>
<li><a href="#toc-episerver-enterprise2">EPiServer Enterprise</a></li>
<li><a href="#toc-mirroring">Mirroring</a></li>
<li><a href="#toc-page-providers">Page Providers</a></li>
</ol>
</li>
<li><a href="#toc-developing-with-episerver">Developing with EPiServer</a>
<ol>
<li><a href="#toc-web-controls">Web Controls</a></li>
<li><a href="#toc-page-types-pagedata">Page Types and PageData</a></li>
<li><a href="#toc-properties-dynamic-properties">Properties / Dynamic Properties</a></li>
<li><a href="#toc-code-architecture">Code architecture</a></li>
<li><a href="#toc-searching-filtering">Searching and filtering</a></li>
</ol>
</li>
<li><a href="#toc-performance-caching">Performance and caching</a>
<ol>
<li><a href="#toc-caching">Caching</a></li>
<li><a href="#toc-performance">Performance</a></li>
</ol>
</li>
<li><a href="#toc-episerver-quick-publishing">EPiServer Quick Publishing</a></li>
</ol>
<hr />
</div>
<h2 id="toc-report-center">Report Center</h2>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/report-center.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/report-center.png" width="400" alt="EPiServer Report Center" /></a></p>
<p>EPiServer&rsquo;s  Report Center comes with 6 predefined reports.</p>
<ul>
<li>Not  Published Pages</li>
<li>Published  Pages</li>
<li>Changed  Pages</li>
<li>Expired  Pages</li>
<li>Simple  Addresses</li>
<li>Link  Status</li>
</ul>
<p>For a short  guide to using the existing reports see the guide: <a href="http://guides.episerver.com/smartass/players/guideplayer/GuidePlayer.jsp?Guide=http://guides.episerver.com/smartass/media/20081204/54/Guide.xml">EPiServer CMS R2: Report Center</a>.</p>
<p>To get  started developing your own reports see: <a href="http://world.episerver.com/Articles/Items/Create-Your-Own-Reports-in-the-New-Report-Center/">Create Your Own Reports in the  Report Center</a> and <a href="http://world.episerver.com/Blogs/Oyvind-Wabakken-Hognestad/Dates/2010/2/PageName-vs-UrlSegment-Report/">PageName vs UrlSegment Report</a>.</p>
<h2 id="toc_mobile">Mobile</h2>
<ul>
<li><a href="http://world.episerver.com/Blogs/Mari-Jorgensen/Dates/2010/4/IPhone-Optimization-Made-Easy/">IPhone Optimization Made Easy</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Jacob-Khan/Dates/2008/8/iPhone-specific-EPiServer-website/">iPhone specific EPiServer website</a></li>
<li><a href="http://www.frederikvig.com/2009/10/creating-a-mobile-version-of-a-web-site/">Creating a mobile version of a web  site</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-CMS/Version-5/EPiServer-CMS-5-R2/iPhone-Module/">iPhone Templates Module</a></li>
</ul>
<h2 id="toc-bugs">Bugs and where to find help</h2>
<p>Often the  first thing I do when I&rsquo;m stuck on a problem is to go to EPiServer&rsquo;s bug list  and do a quick search to see if by problem might be reported in as a bug. Next  up after that is Google, if I cannot find an answer there I try to post a clear  description of my problem on the forum or create a support ticket.</p>
<ul>
<li><a href="http://world.episerver.com/bugs">Bug List</a></li>
<li><a href="http://world.episerver.com/Templates/Forum/Pages/Forum.aspx?id=17180&amp;epslanguage=en">Problems and bugs</a></li>
<li><a href="http://world.episerver.com/Forum/">EPiServer World Forums</a></li>
<li><a href="http://world.episerver.com/Support/">EPiServer Support</a></li>
<li><a href="http://www.google.com/cse/home?cx=009828010126686317309%3A34dln55a5g4">EPiServer Dev Search</a></li>
</ul>
<h3 id="toc-faq">FAQ</h3>
<p>Not sure if  it&rsquo;s still in use but EPiServer World&rsquo;s FAQ still contains some valuable  information.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Release-Notes/EPiServer-CMS/EPiServer-CMS-60/EPiServer-CMS-6-FAQ/">EPiServer CMS 6 FAQ</a></li>
<li><a href="http://world.episerver.com/FAQ/">EPiServer FAQ</a></li>
</ul>
<h2 id="toc-subscription">Subscription</h2>
<p>EPiServer  Subscription is used for sending email updates to users when new content is  published.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Subscription---Configuration/">Configuration – Subscription</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Mari-Jorgensen/Dates/112298/5/Overriding-subscription-email-formatting/">Overriding subscription email  formatting</a></li>
<li><a href="http://blog.dileno.com/archive/200909/handling-subscription-and-languages-in-episerver/">Handling subscription and languages  in EPiServer</a></li>
</ul>
<p>These  articles should at least give you a little information about EPiServer&rsquo;s  subscription functionality. For some sample code see the Public Templates under  Pages and SubscriptionPage.aspx.</p>
<h2 id="toc-categories">Categories</h2>
<p>Like with  Subscription there is not much documentation and blog posts about EPiServer&rsquo;s  built in category functionality. I&rsquo;ve started using categories more for tagging  pages, which I then use to filter search pages and list pages.</p>
<p>Here are a  few resources on categories.</p>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2009/3/Category---more-than-labeling/">Category &#8211; more than labeling</a></li>
<li><a href="http://www.dodavinkeln.se/post.aspx?id=6f69b931-308f-45d4-b48e-66c1869121b8">Using categories as tags in  EPiServer</a></li>
<li> <a href="http://www.frederikvig.com/2009/11/extending-episerver-categories/">Extending EPiServer Categories</a></li>
</ul>
<h2 id="toc-import-export">Import / Export</h2>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/export-data.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/export-data.png" width="400" alt="Export data from EPiServer" /></a></p>
<p>EPiServer  has built in functionality for importing and exporting pages, files,  categories, page types, and more. This creates an .episerverdata file that you  can open up with a program like <a href="http://www.rarlab.com/">WinRar</a> and see its content, which consists of a bunch  of xml files.</p>
<ul>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/1/Custom-Export--Handle-your-own-stream/">Custom Export – Handle your &ldquo;own&rdquo;  stream</a></li>
</ul>
<h2 id="toc-content-channels">Content Channels</h2>
<p>Content  Channels are used for pushing external data into EPiServer. This is for  instance used by the <a href="http://world.episerver.com/Documentation/Categories/EPiServer-Connect/Connect-for-SharePoint/">SharePoint connector</a> for pushing data into  EPiServer from SharePoint.</p>
<p>For a nice  introduction see:  <a href="http://world.episerver.com/Blogs/Jeff-Wallace/Dates/2010/3/Pushing-Data-into-EPiServer-CMS-5-via-Content-Channels/">Pushing Data into EPiServer CMS 5  via Content Channels</a>,  there is also the video: <a href="http://world.episerver.com/Video/DevSummit/Content-Channel-and-Custom-Page-Store-in-EPiServer-CMS-5-/">Content Channel and Custom Page  Store in EPiServer CMS 5</a>. </p>
<h2 id="toc-url-rewriting">URL rewriting / friendly URL</h2>
<p>Both for  users and search engines it helps to use friendly urls. Since EPiServer&rsquo;s URL  rewriter is provider based, it is easy to replace it with your own  implementation.</p>
<p>Below are a  couple of resources for changing the built in functionality of EPiServer&rsquo;s URL  rewriter. I recommend using <a href="http://www.red-gate.com/products/reflector/">Reflector</a> to learn more about the inner workings of the URL  rewriter (in EPiServer.dll and the EPiServer.Web namespace).</p>
<ul>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/UrlRewrite/Friendly%20URL.htm">Friendly URL</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/UrlRewrite/Permanent%20Links.htm">Permanent Links</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Tutorials/HTML%20Rewriting%20Functionality.htm">HTML Rewriting Functionality</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Ted-Nyberg/Dates/112276/7/Implementing-a-custom-URL-rewrite-provider-for-EPiServer/">Implementing a custom URL rewrite  provider for EPiServer</a></li>
<li><a href="http://world.episerver.com/Blogs/David-Knipe/Dates/2010/4/Automatically-convert-external-links-to-the-current-site-into-internal-links/">Automatically convert external links  to the current site into internal links</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/11/EPiServer-and-Custom-URLS-using-ASPNET-UrlRouting/">EPiServer and Custom URLS using  ASP.NET UrlRouting</a></li>
<li><a href="http://sourcecodebean.com/archives/episerver-friendly-urls-for-paginated-pages-and-why-the-asplinkbutton-must-die/510">EPiServer friendly URLs for  paginated pages</a></li>
</ul>
<h2 id="toc-tinymce-editor">TinyMCE / Editor</h2>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/tinymce.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/tinymce.png" width="400" alt="TinyMCE Editor for EPiServer" /></a></p>
<p> With the rich text  editor we want to add custom styles to the content and add new functionality  and plugins, below are a couple of links that should help you with this. </p>
<p>
  The default  editor for EPiServer CMS 6 is <a href="http://tinymce.moxiecode.com/">TinyMCE</a>, if you upgrade from EPiServer CMS 5 or use  EPiServer CMS 5, EPiServer&rsquo;s built in editor is used. You can change which  editor you wish to use in your web.config file, see: <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/PropertyXHTMLString-and-PropertyLongString-in-EPiServer-CMS-6/">XHTML Editor &#8211; PropertyXHTMLString  and PropertyLongString</a> for more information. </p>
<ul>
<li><a href="http://www.meridium.se/sv/blogg/2010/04/14/adding-buttons-to-the-tinymce-editor-in-episerver-6-programmatically/">Adding buttons to the TinyMce editor  in EPiServer 6 programmatically</a></li>
<li><a href="http://world.episerver.com/Blogs/Ben-Edwards/Dates/2010/4/EPiServer-6--Its-2010-and-we-can-check-our-spelling-with-a-bit-of-configuration/">EPiServer 6 – It&rsquo;s 2010 and we can  check our spelling… with a bit of configuration</a></li>
<li><a href="http://www.meridium.se/sv/blogg/2010/03/23/add-functionality-to-the-rich-text-editor-in-episerver-cms-6/">Add functionality to the rich text  editor in EPiServer CMS 6</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Working-with-the-new-XHTML-Editor-in-EPiServer-CMS-6/">Working with the new XHTML Editor in  EPiServer CMS 6</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/TinyMCE-Developers-Guide/">TinyMCE Developers Guide</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/PropertyXHTMLString-and-PropertyLongString-in-EPiServer-CMS-6/">XHTML Editor &#8211; PropertyXHTMLString  and PropertyLongString</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Tutorials/Change%20the%20CSS%20for%20the%20editor.htm">Change the style sheet for the  Editor</a></li>
<li><a href="http://sourceforge.net/tracker/?atid=738747&amp;group_id=103281&amp;func=browse">TinyMCE:  Plugins</a></li>
</ul>
<h2 id="toc-xforms">XForms</h2>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/xform-editor.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/xform-editor.png" width="400" alt="EPiServer XForms Editor" /></a></p>
<p> EPiServer XForm is  used for creating user forms. EPiServer uses an editor for letting the editors  of the site build the forms. As developers we can easily extend and attach our  self to various events that get triggered when the forms is sent (as an email,  stored in the database or both). </p>
<p>
  A trick to  note when using the XForm editor is that ctrl + shift + c and ctrl + shift + v copies/pastes  the markup generated by the XForm editor, allowing you to easily change it  without needing to attach yourself to various events and change the markup  there.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/XForms/">XForms</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Jacob-Khan/Dates/2009/7/Add-validation-to-XForms-textbox/">Add validation to XForms textbox</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Jacob-Khan/Dates/2008/6/File-upload-in-XForm/">File upload in XForm</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2009/8/Altering-the-XForm-email-body-to-make-it-look-more-like-the-actual-form/">Altering the XForm email body to  make it look more like the actual form</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2008/10/Inserting-XForms-as-dynamic-content/">Inserting XForms as dynamic content</a></li>
<li><a href="http://www.frederikvig.com/2009/10/sending-confirmation-email-to-the-user-when-using-episerver-xforms/">Sending confirmation email to the  user when using EPiServer XForms</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-6-creating-the-xform-page-create-an-episerver-site-from-scratch/">Part 6: Creating the XForm page –  Create an EPiServer site from scratch</a></li>
<li><a href="http://world.episerver.com/Blogs/Jacob-Khan/Dates/2010/5/XForms-validation/">XForms validation</a></li>
<li><a href="http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2010/5/Extend-EPiServer-XForm/">Extend EPiServer XForm</a></li>
<li><a href="http://world.episerver.com/Blogs/Linus-Ekstrom/Dates/2010/7/Using-the-dynamic-data-store-with-XForms/">Using the dynamic data store with XForms</a></li>
</ul>
<p>For some  sample code on rendering the XForm on your site see the Public Templates and  XForm.ascx and the XForm page type.</p>
<h2 id="toc-globalization-localization">Globalization / localization</h2>
<p>EPiServer  has some powerful globalization and localization support, built on ASP.NET&rsquo;s  globalization and localization functionality. I recommend starting out with the <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Globalization/">Globalization tech-note</a>. EPiServer uses xml files to store the  language information inside the lang folder. When installing a new EPiServer  site there are quite a few default language files that get installed with it, I  recommend deleting all the files you do not use.</p>
<ul>
<li><a href="http://world.episerver.com/Blogs/Ben-Morris/Dates/2009/10/Adding-new-languages-to-EPiServer-5/">Adding new languages to EPiServer 5</a></li>
<li><a href="http://thisisnothing.wordpress.com/?p=144">Embedding EPiServer language files</a></li>
<li><a href="http://world.episerver.com/Blogs/Oyvind-Wabakken-Hognestad/Dates/2009/8/Globalization-categories-and-sorting-using-LINQ/">Globalization, categories and  sorting using LINQ</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Globalization/">Globalization</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Language%20Settings.htm">Language handling</a></li>
</ul>
<p>Also be sure  to check out <a href="https://www.coderesort.com/p/epicode/wiki/ManageLanguages">Manage Languages</a> for keeping language files up to  date and <a href="https://www.coderesort.com/p/epicode/wiki/TranslateX">TranslateX</a> for sending EPiServer CMS pages  to/from a translation service.</p>
<h2 id="toc-file-system-vpp">File system / VPP</h2>
<p>EPiServer  uses Microsoft&rsquo;s Virtual Path Provider for their file system. Each file has a  version history and supports meta data properties for storing information like  author, copyright and other information, see my post:  <a href="http://www.frederikvig.com/2010/04/episerver-file-manager-and-file-summary/">EPiServer File Manager and File  Summary</a> for  information on how to add more meta data properties.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Virtual-Path-Providers/">Virtual Path Providers</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/File%20System/File%20System%20and%20VPPs.htm">File System and VPPs</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/File%20System/How%20To/Access%20Files%20And%20Folders%20in%20EPiServer.htm">Access Files And Folders in  EPiServer</a></li>
<li><a href="http://world.episerver.com/Blogs/Vladimir-Terziyski/Dates/2010/3/Using-EPiServer-VirtualPathUnifiedProvider/">Using EPiServer  VirtualPathUnifiedProvider</a></li>
<li><a href="http://world.episerver.com/Blogs/David-Knipe/Dates/2009/11/Synchronising-EPiServer-VPP-folders-using-the-Microsoft-Sync-Framework/">Synchronising EPiServer VPP folders  using the Microsoft Sync Framework</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Fredrik-Karlsson/Dates/2008/11/Using-EPiServer-Virtual-Path-Provider-with-file-properties/">Using EPiServer Virtual Path  Provider with file properties</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2008/09/05/page-folders-and-uploading-of-files-in-episerver/">Page Folders and Uploading of files  in EPiServer</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Mari-Jorgensen/Dates/2009/11/Searching-for-files-in-EPiServer-CMS-5/">Searching for files in EPiServer CMS  5</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Per/Archive/2008/10/Http-Caching-strategies-VPP-Files/">Http Caching strategies: VPP Files</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/File%20System/How%20To/Create%20a%20Page%20Folder%20Without%20an%20Access%20Exception.htm">Create a Page Folder Without an  Access Exception</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/File%20System/How%20To/Custom%20File%20Manager.htm">Custom File Manager</a></li>
<li><a href="http://www.frederikvig.com/2010/04/episerver-file-manager-and-file-summary/">EPiServer File Manager and File  Summary</a></li>
</ul>
<p>There has  also been developed a module for <a href="https://www.coderesort.com/p/epicode/wiki/DatabaseFileSystem">storing the files in the database</a> instead of on a file share or on  the web server.</p>
<h2 id="toc-security-membership-roles">Security, Membership and roles</h2>
<p>EPiServer  uses ASP.NET&rsquo;s membership and role provider model for their membership and  roles. By default these providers ship with EPiServer:</p>
<ul>
<li>OracleMembershipProvider</li>
<li>WindowsMembershipProvider</li>
<li>SqlServerMembershipProvider</li>
<li>ActiveDirectoryMembershipProvider</li>
<li>MultiplexingMembershipProvider</li>
</ul>
<p>MultiplexingMembershipProvider forwards  requests to the Windows- and SqlServerMembershipProvider, allowing for creating  and storing users and roles in EPiServer&rsquo;s database and using the Windows users  and roles (this is the mostly used provider).</p>
<ul>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Membership%20and%20Role%20Providers.htm">Membership and Role Providers</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Authentication-and-Authorization/">Authentication and Authorization</a></li>
<li><a href="http://blog.bergdaniel.se/post.aspx?id=621084bf-3247-43dc-aa55-30f377f95a6e">Using the active directory  membership provider with EPiServer</a></li>
<li><a href="http://feedproxy.google.com/~r/TomStenius/~3/FNq6XBRAQ8g/episerver-community-role-and-membership.html">EPiServer Community role and  membership providers</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2010/03/08/episerver-security-and-access-control-12/">EPiServer – Security and Access  Control (1/2)</a></li>
<li><a href="http://blog.bergdaniel.se/post/Setting-up-user-permissions-in-EPiServer-CMS-part-2.aspx">Setting up user permissions in  EPiServer CMS, part 2</a></li>
<li><a href="http://blog.bergdaniel.se/post/Setting-up-user-permissions-in-EPiServer-CMS-part-1.aspx">Setting up user permissions in  EPiServer CMS, part 1</a></li>
<li><a href="http://world.episerver.com/Blogs/Jonas-Lindau/Dates/2009/6/EPiServer-and-Microsoft-Anti-Cross-Site-Scripting-30/">EPiServer and Microsoft Anti-Cross  Site Scripting 3.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Securing-Edit-and-Admin/">Securing Edit and Admin</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/LotusNotesMembershipRoleProvider">Membership- and role provider for  Lotus Notes</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/9/Using-OpenID-With-EPiServer-CMS/">Using OpenID With EPiServer CMS</a></li>
<li><a href="http://world.episerver.com/Blogs/Ben-Morris/Dates/2010/6/Converting-EPiServer-6-to-use-claims-based-authentication-with-WIF/">Converting EPiServer 6 to use claims-based authentication with WIF</a></li>
</ul>
<h2 id="toc-events">Events</h2>
<ul>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/09/22/episerver-cms-how-to-configure-remote-events-with-many-servers-and-firewalls-between-them/">EPiServer CMS: How to configure  Remote Events with many servers and Firewalls between them</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2008/12/Page-events-what-events-are-registered/">Page events, what events are  registered</a></li>
<li><a href="http://jarlef.wordpress.com/2009/11/15/cross-server-events/">Cross server events</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Ruwen/Dates/2008/112202/112251/">Determine if it is a new page on  page publish event</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Event-Management-System-Specification/">Event Management System  Specification</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/ListenSubscribe-to-File-Events/">Listen/Subscribe to File Events</a></li>
</ul>
<h2 id="toc-oracle">Oracle</h2>
<p>EPiServer supports  Oracle databases and even comes with sample configuration settings in their  config files.</p>
<ul>
<li><a href="http://world.episerver.com/Blogs/Gonzalo-Gonzalez/Dates/2010/3/How-to-Switch-the-Configuration-File-to-Oracle/">Updating configuration to run CMS 6  on Oracle database</a></li>
<li><a href="http://world.episerver.com/Blogs/Gonzalo-Gonzalez/Dates/2010/3/Upgrade-an-EPiServer-on-Oracle-Site-from-CMS5-R2SP2-to-CMS6/">Upgrading an EPiServer CMS 5 R2 SP2  Site to CMS6 when running Oracle</a></li>
<li><a href="http://world.episerver.com/Blogs/Gonzalo-Gonzalez/Dates/2010/3/EPiServer-CMS6-on-Oracle-moving-on-to-ODPNET/">EPiServer CMS6 on Oracle moving on  to ODP.NET</a></li>
<li><a href="http://world.episerver.com/en/Blogs/Paul-Smith/Dates1/2008/10/Installing-Public-Templates-on-an-EPiServer-CMS-5-R2-site-with-an-Oracle-Database/">Installing Public Templates on an  EPiServer CMS 5 R2 site with an Oracle Database</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-CMS/Version-6/EPiServer-CMS-60/Oracle-Database---Configuration/">Oracle Database &#8211; Configuration</a></li>
</ul>
<h2 id="toc-seo">SEO</h2>
<p>Here are a  few blog posts and modules with tips on making EPiServer even more SEO  friendly.</p>
<ul>
<li><a href="http://www.kloojed.com/2009/08/rebuild-name-for-web-addresses-on-steroids">Rebuild Name for Web Addresses on steroids</a></li>
<li><a href="http://www.dodavinkeln.se/post.aspx?id=02db0e13-34cc-4d88-9518-5ff226d012e5">Seo tip: canonical domain</a></li>
<li><a href="http://blog.bigfinger.se/2010/4/22/seo-lowercase-urls-in-episerver-cms-6.aspx">SEO lowercase urls, in EPiServer CMS  6</a></li>
<li><a href="http://world.episerver.com/Blogs/Deane-Barker/Dates/2010/5/Redirecting-to-a-Simple-Address/">Redirecting to a Simple Address</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-von-Wachenfeldt/Dates/2010/2/Making-EPiServer-and-Search-Engines-Work-Together/">Making EPiServer and Search Engines  Work Together</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/2/Nightly-Fun-with-301/">Nightly Fun with 301</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/02/15/episerver-seo-reduce-duplicate-content/">EPiServer SEO: Reduce Duplicate  Content Links</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/5/A-simple-solution-for-custom-404-pages-and-permanent-redirects/">A simple solution for custom 404  pages and permanent redirects</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/3/Automatically-ping-Google-and-MSN-when-your-site-is-updated/">Automatically ping Google and MSN  when your site is updated</a></li>
<li><a href="http://world.episerver.com/Blogs/Oyvind-Wabakken-Hognestad/Dates/2010/2/PageName-vs-UrlSegment-Report/">PageName vs UrlSegment Report</a></li>
<li><a href="http://world.episerver.com/Blogs/Peter-Ragndahl/Dates/2009/4/Using-redirects-in-HttpModules-with-EPiServer/">Using redirects in HttpModules with  EPiServer</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Svante-Seleborg/Dates/2008/10/When-a-404-Not-Found-should-be-a-404-Not-Found/">When a 404 Not Found should be a 404  Not Found</a></li>
<li><a href="http://world.episerver.com/Articles/Items/How-to-create-and-maintain-a-SEO-Web-site-based-on-EPiServer-CMS-5/">Working with Search Engine  Optimization in EPiServer CMS 5</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/SearchEngineSitemaps">Search Engine Sitemaps</a></li>
</ul>
<h2 id="toc-workflows">Workflows</h2>
<p>EPiServer uses  Windows Workflow Foundation for their Workflows and even ship with 4 workflows:</p>
<ul>
<li>Sequential  Approval</li>
<li>Parallel  Approval</li>
<li>Request  for feedback</li>
<li>Ready  for translation</li>
</ul>
<p>See <a href="http://world.episerver.com/Blogs/Joe-Bianco/Dates/2009/10/Enabling-the-EPiServer-CMS-Workflows/">Enabling the EPiServer CMS Workflows</a> for information on how to  activate them.</p>
<ul>
<li><a href="http://world.episerver.com/Blogs/Andreas-Ek/Dates/2009/3/Workflows-with-EPiServer-is-really-easy/">Workflows with EPiServer is really  easy!</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2010/1/Building-a-Twitter-Workflow/">Building a Twitter Workflow</a></li>
<li><a href="http://krompaco.nu/create-a-episerver-task-by-code/">How to create a EPiServer role task by code</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Workflows/Developing%20Workflows.htm">Developing workflows</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Workflows/workflows.htm">Workflows Overview</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Workflows/How%20To/Create%20and%20Use%20a%20Workflow.htm">Create and Use a Workflow</a></li>
</ul>
<h2 id="toc-errors-logging-debugging">Errors, Logging and debugging</h2>
<h3 id="toc-logging">Logging</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Steve-Celius/Dates/2010/3/log4net-tips-Shortening-the-type-name/">log4net tips: Shortening the type  name</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/02/03/episerver-log-more-configuration-tips/">EPiServer log: More configuration  tips</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2008/09/02/using-logview4net-with-episerver/">Using LogView4Net with EPiServer</a></li>
<li><a href="http://world.episerver.com/Blogs/Nicklas-Israelsson/Dates/2009/2/EPiServer-log-Excluding-rows-from-selected-namespaces/">EPiServer log: Excluding rows from  selected namespaces</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Svante-Seleborg/Dates/2009/1/Logging-woes-with-log4net-and-enterprise-sites/">Logging woes with log4net and  enterprise sites</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Logging/">Logging</a></li>
</ul>
<h3 id="toc-errors-error-handling">Errors and Error handling</h3>
<ul>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/01/20/episerver-error-handling-broken-in-r2/">EPiServer Error Handling (broken in  R2 &amp; IIS7)</a></li>
<li><a href="http://blog.bergdaniel.se/post/Keep-your-web-editors-in-the-loop!.aspx">Keep your web editors in the loop!</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/5/A-simple-solution-for-custom-404-pages-and-permanent-redirects/">A simple solution for custom 404  pages and permanent redirects</a></li>
</ul>
<h3 id="toc-debugging">Debugging</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Enes-Bajramovic/Dates/2010/4/Symbols-for-EPiServer-CMS-6-available/">Symbols for EPiServer CMS 6  available</a></li>
<li><a href="http://world.episerver.com/Blogs/Enes-Bajramovic/Dates/2010/4/EPiServer-CMS-6-XML-documentation-files/">EPiServer CMS 6 XML documentation  files</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Debugging-EPiServer-CMS-5-R2/">Debugging EPiServer CMS 5 R2 with  Symbols</a></li>
</ul>
<h2 id="toc-configuration">Configuration</h2>
<p>EPiServer  stores a lot of its configuration settings in various .config files. Below are  a few resources that&rsquo;ll help you navigate through most of what you can  configure.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Configuration/">Configuration</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Configuration---Active-Directory-Membership-Provider/">Configuration &#8211; Active Directory  Membership Provider</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Enterprise---Configuration/">Configuration &#8211; Enterprise</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Configuration---Image-Service/">Configuration &#8211; Image Service</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Live-Monitor---Configuration/">Configuration &#8211; Live Monitor</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Quick-Publishing---Configuration/">Configuration &#8211; Quick Publishing</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Subscription---Configuration/">Configuration &#8211; Subscription</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/TinyMCE-Developers-Guide3/">Configuration &#8211; TinyMCE</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2010/03/10/configuration-management-and-episerver-cms-6/">Configuration Management and  EPiServer CMS 6</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/09/22/episerver-cms-how-to-configure-remote-events-with-many-servers-and-firewalls-between-them/">EPiServer CMS: How to configure  Remote Events with many servers and Firewalls between them</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2009/02/03/episerver-log-more-configuration-tips/">EPiServer log: More configuration  tips</a></li>
<li><a href="http://joelabrahamsson.com/entry/handling-multiple-aspnet-configuration-files-with-build-events">Handling multiple ASP.NET  configuration files with build events</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Mari-Jorgensen/Dates/2009/11/Searching-for-files-in-EPiServer-CMS-5/">Searching for files in EPiServer CMS  5</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Mari-Jorgensen/Dates/112298/112299/Configuring-Enterprise-Sites/">Configuring Enterprise Sites</a></li>
<li><a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Mirroring-and-Monitoring-Configurations/">Mirroring and Monitoring  Configurations</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-CMS/Version-6/EPiServer-CMS-60/Oracle-Database---Configuration/">Oracle Database &#8211; Configuration</a></li>
<li><a href="http://www.markeverard.com/blog/?p=54">Default EPiServer Web.Configs for  IIS6 and IIS7</a></li>
</ul>
<p>Overview of  the default config files that come with EPiServer (containing both ASP.NET and  EPiServer settings).</p>
<ul>
<li><strong>web.config</strong> &#8211; The main configuration file for the  application. Contains configuration for the ASP.NET API and some parts of the  EPiServer CMS API.</li>
<li><strong>episerver.config</strong> &#8211; The main configuration file for the  EPiServer CMS API. Contains the basic settings for the EPiServer CMS site (or  sites &#8211; in an enterprise installation).</li>
<li><strong>episerverFramework.config</strong> &#8211; Contains mapping information  describing which host addresses leads to a particular EPiServer CMS site.</li>
<li><strong>connectionStrings.config</strong> &#8211; Contains a list of database  connection strings</li>
</ul>
<p>There are  two further configuration files located in the application&#8217;s root folder. These  two configuration files are separate and not related to the files listed above  or each other. </p>
<ul>
<li><strong>episerverLog.config</strong> &#8211; Contains the log4net settings for the  application, please see the <a href="http://logging.apache.org/log4net/">log4net homepage</a> for full information on  configuration options.</li>
<li><strong>fileSummary.config</strong> &#8211; An XForm defining the meta data properties  attached to files that are uploaded to EPiServer CMS.</li>
</ul>
<h2 id="toc-getting-started">Getting started guides and tutorials</h2>
<ul>
<li><a href="http://blog.bergdaniel.se/post/A-developere28099s-first-EPiServer-CMS-project-at-Sogeti-part-1.aspx">A developer&rsquo;s first EPiServer CMS  project at Sogeti, part 1</a></li>
<li><a href="http://blog.bergdaniel.se/post/A-developers-first-EPiServer-CMS-project-at-Sogeti-part-2.aspx">A developer&rsquo;s first EPiServer CMS  project at Sogeti, part 2</a></li>
<li><a href="http://world.episerver.com/Get-Started/Start-Developing-with-EPiServer-Community-and-Relate-/">Developing  with Relate+</a></li>
<li><a href="http://world.episerver.com/Get-Started/Start-Developing-with-EPiServer-Composer/">Developing  with Composer</a></li>
<li><a href="http://world.episerver.com/Get-Started/Developing-with-EPiServer-CMS/">Developing  with EPiServer CMS 5</a></li>
<li><a href="http://world.episerver.com/Get-Started/Your-First-EPiServer-Project/">Your First EPiServer Project</a></li>
<li><a href="http://world.episerver.com/Get-Started/Complex-EPiServer-CMS-Projects/" title="Complex EPiServer Projects - ">Complex EPiServer Projects </a></li>
<li><a href="http://www.frederikvig.com/2009/12/introduction-create-an-episerver-site-from-scratch/">Create an EPiServer site from  scratch</a></li>
</ul>
<h2 id="toc-checklists">Checklists</h2>
<ul>
<li><a href="http://labs.dropit.se/blogs/post/2010/01/10/Checklist-for-deploying-EPiServer-sites.aspx">Checklist for deploying EPiServer  sites</a></li>
</ul>
<h2 id="toc-sdk">SDK and API documentation</h2>
<ul>
<li><a href="http://world.episerver.com/Documents/SDK/EPiServer%20Composer%204.0%20SDK%20Documentation.zip">EPiServer Composer 4.0 SDK Documentation</a></li>
<li><a href="http://sdk.episerver.com/composer/">EPiServer Composer SDK</a></li>
<li><a href="http://world.episerver.com/PageFiles/86399/EPiServer%20Mail%204.4%20SP1%20SDK%20Documentation.zip">EPiServer Mail 4.4 SP1 SDK  Documentation</a></li>
<li><a href="http://sdk.episerver.com/episervermail/">EPiServer Mail SDK</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/">EPiServer CMS 6 SDK</a></li>
<li><a href="http://world.episerver.com/PageFiles/90532/EPiServer%20CMS%20SDK%20Documentation_6.0.530.0.zip">EPiServer CMS 6 R1 SDK Documentation</a></li>
<li><a href="http://world.episerver.com/Blogs/Enes-Bajramovic/Dates/2010/4/EPiServer-CMS-6-XML-documentation-files/">EPiServer CMS 6 XML documentation  files</a></li>
<li><a href="http://sdk.episerver.com/library/cms5/">EPiServer CMS 5 SDK</a></li>
<li><a href="http://sdk.episerver.com/episerverframework/index.aspx">EPiServer Framework SDK</a></li>
<li><a href="http://world.episerver.com/PageFiles/90534/EPiServer.Framework_6.0.318.113.zip">EPiServer Framework 6 R1 SDK  Documentation</a></li>
<li><a href="http://sdk.episerver.com/community/index.aspx">EPiServer Community SDK</a></li>
<li><a href="http://world.episerver.com/PageFiles/93857/EPiServer%20Community%20SDK%20Documentation_4.0.517.255.zip">EPiServer Community 4.0 SDK Documentation</a></li>
<li><a href="http://world.episerver.com/PageFiles/92506/ecf51help.zip">EPiServer Commerce 1.0 API Help File</a></li>
</ul>
<h2 id="toc-guides">Guides</h2>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-Composer/Manuals---EPiServer-Composer-40/">Manuals &#8211; EPiServer Composer 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-Mail/User-Guide---EPiServer-Mail-441/">User Guide &#8211; EPiServer Mail 4.4 SP1</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-CMO-10/User-Guide---EPiServer-CMO-10/">User Guide &#8211; EPiServer CMO 1.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/Relate/Relate-Templates-Package-Developer-Guide/">Relate+ Templates Developer Guide</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/Relate/User-Guide-Relate-Templates-100/">User Guide Relate+ Templates 1.0.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-Community/User-Manual---EPiServer-Community-32/">User Manual &#8211; EPiServer Community  3.2</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-CMS/Administrator-Manuals---EPiServer-CMS-60/">Administrator Manuals &#8211; EPiServer  CMS 6.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-CMS/Editor-Manuals---EPiServer-CMS-60/">Editor Manuals &#8211; EPiServer CMS 6.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Manuals/EPiServer-CMS/User-Guides---EPiServer-OnlineCenter-60/">User Guides &#8211; EPiServer OnlineCenter  6.0</a></li>
<li><a href="http://webhelp.episerver.com/commerce/en/dev/default.htm">EPiServer Commerce Developer Guide</a></li>
<li><a href="http://webhelp.episerver.com/commerce/en/user/default.htm">EPiServer Commerce User Guide</a></li>
</ul>
<h2 id="toc-episerver-framework">EPiServer Framework</h2>
<p>EPiServer Framework consists of:</p>
<ul>
<li>EPiServer OnlineCenter</li>
<li>Dynamic Data Store</li>
<li>Initialization System</li>
</ul>
<p>For a good  introduction see: <a href="http://world.episerver.com/Articles/Items/Introducing-EPiServer-Framework/">Introducing EPiServer Framework</a>.</p>
<h3 id="toc-online-center">Online Center</h3>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/online-center.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/online-center.png" width="400" alt="EPiServer Online Center" /></a></p>
<ul>
<li><a href="http://world.episerver.com/Blogs/Cristian-Libardo/Dates/2010/3/Shell-Playground/">Shell Playground</a></li>
<li><a href="http://world.episerver.com/Blogs/Dung-Le/Dates/2010/2/Create-Global-Navigation-in-EPiServer-CMS-6-RC1/">Create Global Navigation in EPiServer  CMS 6 RC1</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/OnlineCenter-Developer-Documentation/">OnlineCenter Developer Documentation</a></li>
</ul>
<h4 id="toc-gadgets">Gadgets</h4>
<ul>
<li><a href="http://world.episerver.com/Blogs/Cristian-Libardo/Dates/2010/1/Enabling-gadget-development-quickly/">Enabling gadget development quickly</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Gadgets---Tutorial/">Gadgets &#8211; Developer Tutorial</a></li>
</ul>
<h3 id="toc-dynamic-data-store">Dynamic Data Store</h3>
<p>The Dynamic  Data Store is a new feature that came with EPiServer CMS 6 and is essentially a  place to store data that might not be best stored in a page property. XForms  for instance are stored in the Dynamic Data Store.</p>
<h4 id="toc-page-objects">Page Objects</h4>
<p>Page  Objects are .Net objects and collections that are associated with an EPiServer  CMS page.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Page-Objects/">Page Objects</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/1/Saving-Page-Objects/">Saving Page Objects</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/2/Changed-to-Page-Objects-API-in-CMS-6-Release/">Changes to Page Objects API in CMS 6  Release</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/1/Page-Rating-example-using-Page-Objects/">Page Rating example using Page  Objects</a></li>
</ul>
<h4 id="toc-dynamic-data-store2">Dynamic Data Store</h4>
<p>There are two things you need to read to understand most of the Dynamic Data Store. First the tech-note: <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Dynamic-Data-Store/">Dynamic Data Store</a>, and second the examples referred to in the tech-note: <a href="http://world.episerver.com/Download/Items/EPiServer-CMS/Version-6/EPiServer-CMS-60/Dynamic-Data-Store-Examples/">Dynamic Data Store Examples</a>.</p>
<h5>More resources</h5>
<ul>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/1/Using-a-DynamicDataStore-instance-correctly/">Using a DynamicDataStore instance  correctly</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2009/12/Dynamic-Data-Store-Feature-List-in-EPiServer-CMS-6-Release-Candidate/">Dynamic Data Store Feature List in  EPiServer CMS 6 Release Candidate</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/5/Data-Container-Indifference-in-the-Dynamic-Data-Store/">Data Container Indifference in the  Dynamic Data Store</a></li>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/1/Dynamic-Data-Store-caching--The-internals/">Dynamic Data Store caching – The  internals</a></li>
<li><a href="http://world.episerver.com/Blogs/Jonas-Bergqvist/Dates/2010/1/Dynamic-Data-Store-Linq-extension/">Dynamic Data Store Linq extension</a></li>
<li><a href="http://world.episerver.com/Blogs/Cristian-Libardo/Dates/2009/11/Exploring-the-data-lair/">Exploring the data lair</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/6/Storing-EPiServer-CMS-Properties-in-the-Dynamic-Data-Store/">Storing EPiServer CMS Properties in the Dynamic Data Store</a></li>
</ul>
<h3 id="toc-initialization-system">Initialization System</h3>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Initialization/">Initialization</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Strale/Dates/2009/12/Introducing-the-new-Initialization-System-in-EPiServer-CMS-6/">Introducing the new Initialization  System in EPiServer CMS 6</a></li>
<li><a href="http://tedgustaf.com/en/blog/2010/5/attach-episerver-event-handlers-on-startup-using-initializablemodule/">Attach EPiServer event handlers on startup using InitializableModule</a></li>
</ul>
<h2 id="toc-modules">Modules</h2>
<p>This  section contains how to create module packages for the deployment center, open  source modules, and other EPiServer modules.</p>
<h3 id="toc-modules-deployment-center">Modules and deployment center</h3>
<p>The  deployment center allows us to easily install new packages on existing sites. A  package is a zip file with the necessary files that the modules needs along  with configuration settings that need to be added to the various configuration  files.</p>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Mari-Jorgensen/Dates/112298/4/Module-Packaging/">Module Packaging</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Module-Installation-for-R2-SP1/">Getting Started with Module  Installation</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Module-Packaging-in-EPiServer-CMS/">Module Packaging in EPiServer CMS</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Powershell-for-EPiServer-Applications/">Powershell for EPiServer  Applications</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/XML-Update-Reference/">XML Update Reference</a></li>
</ul>
<h3 id="toc-open-source-modules">Open Source Modules</h3>
<p>Most of the  open source modules out there are hosted on either <a href="https://www.coderesort.com/p/epicode/">EPiCode</a> or <a href="http://www.codeplex.com/">CodePlex</a>. Here is a list of the various open  source modules that I know about.</p>
<h4 id="toc-templates">Templates</h4>
<ul>
<li><a href="http://springshield.codeplex.com/">Demo Site for Local Governments</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-CMS/Version-6/EPiServer-CMS-60/EPiServer-CMS-6-Demo-Site/">Alloy  Technologies Demo Site</a></li>
<li><a href="http://episervercms6vb.codeplex.com/">EPiServer CMS 6 Visual Studio  Project Template for VB w/ Public Templates</a></li>
<li><a href="http://joelabrahamsson.codeplex.com/">JoelAbrahamsson.com &#8211; A blog built  with EPiServer and ASP.NET MVC</a></li>
</ul>
<h4 id="toc-gadgets2">Gadgets</h4>
<ul>
<li><a href="http://episervergadgets.codeplex.com/">EPiServer  Gadgets</a></li>
<li><a href="http://quickwatchgadget.codeplex.com/">QuickWatch Gadget for EPiServer CMS</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/6/Online-Center--Admin-Plugin-for-EPiServer-Events-System-Load-Balancing/">Online Center / Admin Plugin for EPiServer Events System (Load Balancing)</a></li>
</ul>
<h4 id="toc-page-providers2">Page Providers</h4>
<ul>
<li><a href="http://bpp.codeplex.com/">EPiServer Blog Page Provider</a></li>
<li><a href="http://remotepageprovider.codeplex.com/">Remote Page Provider for EPiServer  CMS</a></li>
<li><a href="http://mappedpageprovider.codeplex.com/">Mapped Page Provider for EPiServer  CMS</a></li>
</ul>
<h4 id="toc-virtual-page-providers">Virtual Page Providers</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/browser/EPiCode.DataBaseFileSystem/5.x">Database Virtual Path Provider</a></li>
<li><a href="https://www.coderesort.com/p/epicode/browser/EPiCode.NativeVPPWithMeta">Native Virtual Path Provider With  Meta Data Support</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ImageVirtualPathProvider">Image Virtual Path Provider</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/DatabaseFileSystem">Database File System</a></li>
</ul>
<h4 id="toc-google-analytics-seo">Google Analytics and SEO</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/GoogleAnalyticsAPI">GoogleAnalyticsAPI</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/GoogleAnalyticsAPI">Google Analytics Module</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/SearchEngineSitemaps">Search Engine Sitemaps</a></li>
</ul>
<h4 id="toc-dynamic-content2">Dynamic Content</h4>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Peter-Sunna/Dates/2009/3/Tweets-and-dynamic-content-decided-to-become-friends/">Tweets and dynamic content decided  to become friends</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Peter-Sunna/Dates/2009/3/Display-youtube-videos-in-episerver-using-dynamic-content/">Display youtube videos in episerver using  dynamic content</a></li>
<li><a href="http://dynamiccontent.codeplex.com/">Dynamic Content Contrib for  EPiServer CMS</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/DynamicPropertyVersionManager">Dynamic Property Version Manager</a></li>
</ul>
<ul>
<li><a href="http://www.frederikvig.com/2009/11/flash-and-flash-video-episerver-dynamic-content/">Flash and Flash Video EPiServer  Dynamic Content</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/FV.DynamicSlideShare">FV.DynamicSlideShare</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2008/12/Dynamic-Content-base-class/">Dynamic Content base class</a></li>
</ul>
<h4 id="toc-images2">Images, Image galleries and slideshows</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/HyperThumbnail">HyperThumbnail  for EPiServer</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/IteraMedia">Itera.Media</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/PictureGallery">Picture gallery template</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Picasa2EPiServer">Picasa 2 EPiServer</a></li>
<li><a href="http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/">Creating a simple image gallery with  EPiServer</a></li>
</ul>
<h4 id="toc-google-map">Google Map</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/DynamicContentGoogleMaps">Google Map as Dynamic Content</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/GoogleMaps">Google Maps in EPiServer</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/GoogleMapsLocation">Google Maps  Location</a></li>
</ul>
<h4 id="toc-properties2">Properties</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/CollapsableProperty">CollapsableProperty</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/FolderBrowserProperty">Folder Browser Property</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/MultiPageProperty">MultiPage Property</a></li>
<li><a href="http://labs.dropit.se/blogs/post/2009/08/23/A-page-property-plugin-for-EPiServer-CMS.aspx">A page property plugin for EPiServer  CMS</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ImageListProperty">ImageList Property</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/FV.ShareIt">FV.ShareIt</a></li>
<li><a href="http://marekmusielak.blogspot.com/2009/02/extended-image-url-property.html">Extended Image Url Property</a></li>
<li><a href="http://propertypack.codeplex.com/">Property Pack for EPiServer CMS</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Itera.MultiProperty">Itera.MultiProperty</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2009/1/Show-value-of-a-inherit-property-in-Edit-mode/">Show value of a inherit property in  Edit mode</a></li>
</ul>
<h4 id="toc-language-globalization-localization">Language, Globalization and Localization</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ManageLanguages">Manage Languages</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/TranslateX">TranslateX</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EPiServer.Research.Google.SimpleTranslation">Google  Translate</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/LanguageTools">EPiCode.LanguageTool</a></li>
</ul>
<h4 id="toc-reports2">Reports</h4>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Johano/Dates/2009/2/Generating-Excel-reports/">Generating Excel reports</a></li>
</ul>
<h4 id="toc-debugging-diagnostics">Debugging and diagnostics</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Log4NetContextInformation">Log 4 Net Context Information</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/DiagnosticConsole">Diagnostic Console</a></li>
</ul>
<h4 id="toc-frameworks">Frameworks</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Extensions">Extensions</a></li>
<li><a href="http://pagetypebuilder.codeplex.com/">EPiServer CMS Page Type Builder</a></li>
<li><a href="http://epiabstractions.codeplex.com/">EPiAbstractions</a></li>
<li><a href="http://epimvc.codeplex.com/">EPiMVC</a></li>
<li><a href="http://metabolite.codeplex.com/">Metabolite Enterprise Libraries for  EPiServer CMS using Page Type Builder</a></li>
<li><a href="http://github.com/joelabrahamsson/EPiServer-MVP">EPiMVP</a></li>
<li><a href="http://etf.codeplex.com/">EPiServer Template Foundation</a></li>
</ul>
<h4 id="toc-performance-caching2">Performance and caching</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/CacheFramework">Cache Framework for EPiServer</a></li>
<li><a href="http://cdn4episerver.codeplex.com/">CDN Support for EPiServer CMS</a></li>
</ul>
<h4 id="toc-rss-feeds">RSS and feeds</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/RssNewsList">RssNewsList</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/RssToPage">RssToPage module</a></li>
</ul>
<h4 id="toc-edit-mode-enhancements">Edit mode enhancements</h4>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Johano/Dates/2008/9/StickyTabs-for-EPiServerCMS5/">StickyTabs for EPiServer CMS5</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/QuickSearchExtender">QuickSearchExtender</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/PageTreeIcons">PageTreeIcons</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ContentGenerator">Content Generator</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/HelpText">Help Text</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/LinkDetective">LinkDetective</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/NewPage">NewPage Module</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/PageContainer">Page Container</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ManageChildren">Manage Children</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/PageMockup">Page Mockup</a></li>
</ul>
<h4 id="toc-blog">Blog</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/CloudCuckoo">CloudCuckoo for EPiServer</a></li>
</ul>
<h4 id="toc-various-modules">Various modules</h4>
<ul>
<li><a href="http://episerverwiki.codeplex.com/">WikiX</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/ResourceBooking">Resource Booking For EPiServer CMS</a></li>
<li><a href="http://scrumdashboard.codeplex.com/">Scrum Dashboard</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/NetMeeting">NetMeeting</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EventX">EventX</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/LotusNotesMembershipRoleProvider">Membership- and role provider for Lotus  Notes</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EPiPageTypeUtil/About">BVNetwork.EPiPageTypeUtil Module</a></li>
<li><a href="http://virtualroles.codeplex.com/">Virtual Roles Sample Pack for  EPiServer CMS</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/PageScripts">PageScripts</a></li>
<li><a href="http://world.episerver.com/en/Download/Categories/Download-Type/Code-Samples1/">EPiServer Code Samples</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/404Handler">Custom 404 Handler</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/DeploymentWizard">Web Deployment Wizard</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EnterpriseConfig">Enterprise Configuration</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Hattis.EmbeddedResource">Hattis.EmbeddedResource</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-CMS/Version-5/EPiServer-CMS-5-R2/iPhone-Module/">iPhone Templates Module</a></li>
<li><a href="http://relateplus.codeplex.com/">Add-ons for EPiServer Relate+</a></li>
</ul>
<h4 id="toc-enhancements-editors">Enhancements for editors</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Flexigrid">Flexigrid</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EPiWebParts">Web Part Framework for EPiServer</a>
<ul>
<li><a href="http://www.epinova.no/blog/Thomas-Leela/dates/2009/4/web-part-framework-for-episerver-tuned-and-polished/">Web Part Framework for EPiServer  tuned and polished</a></li>
<li><a href="http://www.epinova.no/blog/Thomas-Leela/dates/2009/10/web-parts-and-episerver-in-perfect-harmony/">Web parts and EPiServer in perfect  harmony</a></li>
</ul>
</li>
<li><a href="http://world.episerver.com/en/Download/Categories/Modules/EPiTrace/">EPiTrace</a></li>
</ul>
<h4 id="toc-editor-enhancements">Rich Text Editor enhancements</h4>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/TinyMceAdapter">TinyMceAdapter</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/EditorHtmlCleanSweep">EditorHtmlCleanSweep</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/RestrictedPaste">RestrictedPaste</a></li>
</ul>
<h3 id="toc-episerver-composer">EPiServer Composer</h3>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/composer.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/composer.png" width="300" alt="EPiServer Composer Toolbox" /></a></p>
<p>EPiServer&rsquo;s  Composer module is used to add extra functionality to EPiServer CMS pages,  allowing editors to drag and drop functionality on predefined placeholders.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Composer/Installation-Instructions---EPiServer-Composer-40/">Installation Instructions &#8211; EPiServer Composer 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Release-Notes/EPiServer-Composer/Release-Notes---EPiServer-Composer-40/">Release Notes &#8211; EPiServer Composer 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/EPiServer-Composer/System-Requirements---EPiServer-Composer-40/">System Requirements &#8211; EPiServer Composer 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Composer/EPiServer-Composer-40---Configuration-Settings/">EPiServer Composer 4.0 &#8211; Configuration Settings</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Composer/EPiServer-Composer-40---Globalization-Mirroring-Dynamic-Functions-and-Properties-/">Globalization, Mirroring, Dynamic Functions and Properties in EPiServer Composer 4</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Composer/EPiServer-Composer-40---Upgrading-from-Composer-326/">Upgrading from EPiServer Composer 3.2.6 (CMS 5 R2 SP2) to EPiServer Composer 4.0 (CMS 6.0)</a></li>
<li><a href="http://world.episerver.com/Articles/Items/EPiServer-Composer---Best-Practices-for-Developers/">EPiServer Composer &#8211; Best Practices  For Developers</a></li>
<li><a href="http://world.episerver.com/Blogs/Stefan-Forsberg/Dates/2010/4/Using-PageTypeBuilder-with-Composer/">Using PageTypeBuilder with Composer</a></li>
<li><a href="http://labs.dropit.se/blogs/post.aspx?id=57d6c336-e0e5-4450-9b00-415295714224">How to determine if an EPiServer  Composer function is placed in another Composer function</a></li>
<li><a href="http://world.episerver.com/Blogs/Hieu-Doan/Dates/2009/11/Handle-the-error-in-Composer-function/">Handle the error in Composer  function</a></li>
<li><a href="http://world.episerver.com/Blogs/Hieu-Doan/Dates/2009/12/Organize-your-Composer-functions-in-the-Toolbox/">Organize your Composer functions in  the Toolbox</a></li>
<li><a href="http://world.episerver.com/Blogs/Jeff-Wallace/Dates/2009/11/EPiServer-Composer-32x-Installation-and-Configuration-Instructions--Including-the-Extra-Details-You-May-Want-to-Know/">EPiServer Composer 3.2.x  Installation and Configuration Instructions – Including the Extra Details You  May Want to Know</a></li>
</ul>
<h3 id="toc-episerver-community">EPiServer Community</h3>
<p>EPiServer  Community is a framework for building online communities and consists of  modules for user management, video galleries, chat, blogs etc. </p>
<p>
  The <a href="http://sdk.episerver.com/community">EPiServer Community SDK</a> has a great howto section that covers a lot of the topics you as a  developer will come across when working with EPiServer Community. </p>
<p>
  Joel  Abrahamsson has also written a great series on creating new modules for  EPiServer Community:</p>
<ul>
<li><a href="http://world.episerver.com/Articles/Items/Creating-a-Custom-EPiServer-Community-Module---Part-One/">Creating a Custom EPiServer  Community Module &#8211; Part One</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Creating-a-Custom-EPiServer-Community-Module---Part-Two/">Creating a Custom EPiServer  Community Module &#8211; Part Two</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Creating-a-Custom-EPiServer-Community-Module---Part-Three/">Creating a Custom EPiServer  Community Module &#8211; Part Three</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Creating-a-Custom-EPiServer-Community-Module---Attribute-Data-Types/">Creating a Custom EPiServer  Community Module &#8211; Attribute Data Types</a></li>
</ul>
<h4 id="toc-tech-notes">Tech-notes</h4>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Release-Notes/EPiServer-Community/EPiServer-Community-40/">Release Notes for EPiServer Community 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/EPiServer-Community/new-page/">System Requirements &#8211; EPiServer Community 4.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Framework/EPiServer-Framework-61/Full-text-search/">EPiServer Full Text Search Client</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Framework/EPiServer-Framework-61/EPiServer-Full-Text-Search-Service/">EPiServer FTS Service</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Community/EPiServer-Community-32/The-Cache-Replication-System/">Running EPiServer Community in a web cluster</a></li>
</ul>
<h4 id="toc-more-resources2">More resources</h4>
<ul>
<li><a href="http://world.episerver.com/Blogs/Erik-Engstrand/Dates/2009/8/EPiServer-Community-and-user-attributes/">EPiServer Community and user  attributes</a></li>
<li><a href="http://www.jarlef.com/2010/03/03/polling-your-community/">Polling your community</a></li>
<li><a href="http://jarlef.wordpress.com/2009/12/26/adding-images-using-the-community-api/">Adding images using the Community  API</a></li>
<li><a href="http://joelabrahamsson.com/entry/windows-live-writer-integration-for-episerver-community">Windows Live Writer Integration for  EPiServer Community</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/4/Forum-Topic-subscription-using-attributes/">Forum Topic subscription using  attributes</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/3/Getting-EPiServer-Community-entities-ndash-filtering-and-sorting-strategies/">Getting EPiServer Community entities  &#8211; filtering and sorting strategies</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/3/Extending-community-entities/">Extending community entities</a></li>
<li><a href="http://karolikl.blogspot.com/2009/09/using-query-system-in-episerver.html">Using the query system in EPiServer  Community</a></li>
<li><a href="http://karolikl.blogspot.com/2009/09/customizing-episerver-community-module.html">Customizing an EPiServer Community  Module using Attributes</a></li>
<li><a href="http://world.episerver.com/Blogs/Leif-Bostrom/Dates/2010/1/Keeping-track-of-the-EPiServer-Community-user-limit/">Keeping track of the EPiServer  Community user limit</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Paulsson/Dates/2009/4/Generic-Property-Type-Selection-Tree/">Generic Property Value Selection  Tree</a></li>
<li><a href="http://world.episerver.com/Blogs/Per-Hemmingson/Dates/2009/6/Do-you-want-Community-features-on-your-CMS-pages-PageEntity-to-the-rescue/">Do you want Community features on  your CMS pages? PageEntity to the rescue</a></li>
<li><a href="http://blog.tomstenius.com/2009/04/episerver-community-role-and-membership.html">EPiServer Community role and  membership providers</a></li>
</ul>
<h3 id="toc-episerver-commerce">EPiServer Commerce</h3>
<p>Before trying to install EPiServer Commerce read the <a href="http://world.episerver.com/Documentation/Items/Release-Notes/EPiServer-Commerce/EPiServer-Commerce-10-Release-Notes/">release notes</a> and the section &#8220;Known Limitations&#8221;.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Commerce/Installation-Instructions---EPiServer-Commerce/">Installation Instructions &#8211; EPiServer Commerce</a></li>
<li><a href="http://webhelp.episerver.com/commerce/en/dev/default.htm">EPiServer Commerce Developer Guide</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Commerce/EPiServer-Commerce-10/Commerce-Manager-License/">Commerce Manager License</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Commerce/EPiServer-Commerce-10/Integration-and-Architecture-Overview/">Integration and Architecture Overview </a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Commerce/EPiServer-Commerce-10/Product-Search-Provider/">Product Search Provider</a></li>
</ul>
<h3 id="toc-episerver-relate">EPiServer Relate+</h3>
<p class="featured"><a href="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/relate.png"><img src="http://www.frederikvig.com/wp-content/uploads/episerver-resources-list/relate.png" width="400" alt="EPiServer Relate+ Templates" /></a></p>
<p> EPiServer Relate+  consists of a set of templates that builds on EPiServer Community and EPiServer  CMS, and gets you started with a sample site. </p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/Relate/Installation-Instructions---EPiServer-Relate-20/">Installation Instructions for EPiServer Relate+ 2.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Release-Notes/Relate/Release-Notes---EPiServer-Relate-20/">Release Notes for EPiServer Relate+ 2.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/Relate/System-Requirements---Relate-20/">System Requirements for Relate+ 2.0</a></li>
<li><a href="http://world.episerver.com/Blogs/Jeff-Wallace/Dates/2009/12/How-to-Add-Custom-Fields-to-a-Users-My-Page-in-EPiServer-Relate/">How to Add Custom Fields to a Users  &ldquo;My Page&rdquo; in EPiServer Relate+</a></li>
<li><a href="http://world.episerver.com/Blogs/Jeff-Wallace/Dates/2009/12/Getting-EPiServer-FileManager-into-Relate-Clubs--Verbose-Version/">Getting EPiServer FileManager into  Relate+ Clubs – Verbose Version</a></li>
<li><a href="http://karolikl.blogspot.com/2009/07/attributes-in-episerver-relate.html">Attributes in EPiServer Relate+</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Paulsson/Dates/2009/4/Generic-Property-Type-Selection-Tree/">Generic Property Value Selection  Tree</a></li>
<li><a href="http://world.episerver.com/Blogs/Naveed-Ahmad/Dates/2010/1/Configuring-video-settings-in-EPiServer-Relate/">Configuring video settings in  EPiServer Relate+</a></li>
<li><a href="http://world.episerver.com/Blogs/Per-Hemmingson/Dates/2009/10/Getting-EPiServer-FileManager-into-Relate-clubs/">Getting EPiServer FileManager into  Relate+ clubs</a></li>
</ul>
<h3 id="toc-episerver-mail">EPiServer Mail</h3>
<p>EPiServer  Mail is used for sending emails and newsletters and is used by EPiServer  Community and EPiServer Relate+.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/EPiServer-Mail1/EPiServer-Mail-50---System-Requirements/">System Requirements for EPiServer Mail 5</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Mail/Installation-Instructions---EPiServer-Mail-50/">Installation Instructions EPiServer Mail 5.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/">Developers Guide &#8211; EPiServer Mail 5.0</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-Mail/EPiServer-Mail-50/EPiServer-Mail-50-Code-Sample/">EPiServer Mail 5.0 Code Sample</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Mail-50/EPiServer-Mail-Configuration-in-an-Enterprise-Environment/">EPiServer Mail Configuration in an Enterprise Environment</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/Managing-and-Creating-Recipients-Lists/">Managing and Creating Recipients Lists</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/Order-Mail/">Order Mail</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/Developers-Guide_Rev4/">Recipient Sources</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/Statistics/">Statistics</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Mail-50/Uninstall-EPiServer-Mail-50/">Uninstall EPiServer Mail 5.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-50/Unsubscribe/">Unsubscribe</a></li>
<li><a href="http://world.episerver.com/Blogs/Alistair-Garrison/Dates/2009/11/EPiServerMail-should-be-reactivated-if-the-project-is-moved--copied/">EPiServerMail should be reactivated  if the project is moved / copied</a></li>
<li><a href="http://world.episerver.com/Blogs/Alistair-Garrison/Dates/2009/9/A-bit-more-information-about-the-different-EPiServerMail-44--44-SP1-installation-options/">A bit more information about the  different EPiServerMail 4.4 / 4.4 SP1 installation options</a></li>
<li><a href="http://world.episerver.com/Blogs/Alistair-Garrison/Dates/2009/9/Unistalling-EPiServerMail-44/">Uninstalling EPiServerMail 4.4</a></li>
<li><a href="http://world.episerver.com/Blogs/Alistair-Garrison/Dates/2009/9/Inserting-an-unsubscribe-link-into-an-HTML-Template-in-EPiServerMail-44/">Inserting an unsubscribe link into  an HTML Template in EPiServerMail 4.4</a></li>
<li><a href="http://world.episerver.com/Blogs/Sebastian-Lundh/Dates/2008/12/EPiServer-Mail-43-to-work-with-R2/">EPiServer Mail 4.3 to work with R2</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-Mail/Developers-Guide---EPiServer-Mail-441/">Developers Guide &#8211; EPiServer Mail  4.4 SP1</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-Mail/EPiServer-Mail-4401/EPiServer-Mail-44-SP1-Code-Sample/">EPiServer Mail 4.4 SP1 Code Sample</a></li>
<li><a href="http://world.episerver.com/Download/Items/EPiServer-Mail/EPiServer-Mail-4401/Mail-Template/">EPiServer Mail 4.4 SP1 Mail Template</a></li>
</ul>
<h3 id="toc-episerver-cmo">EPiServer CMO</h3>
<p>EPiServer  CMO is used for monitoring and optimizing pages on your website by learning  about your users&rsquo; behavior and helping your editors easily create A/B tests.</p>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-CMO/Installation-Instructions---EPiServer-CMO-1011/">Installation Instructions &#8211;  EPiServer CMO 1.1</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/EPiServer-CMO/System-Requirements---EPiServer-CMO-11---605300/">System Requirements &#8211; EPiServer CMO  1.1 &#8211; 6.0.530.0</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMO/Configure-Live-Monitor-for-Multiple-Bindings/">Configure Live Monitor for Multiple  Bindings</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMO/Configuring-the-Statistics-Handler/">Configuring the Statistics Handler</a></li>
</ul>
<h3 id="toc-episerver-connect-crm">EPiServer Connect for CRM</h3>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/System-Requirements/EPiServer-Connect/EPiServer-Connect-for-CRM-SystemRequirements12/">EPiServer Connect for CRM System  Requirements 1.2</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Connect/Installation-Instructions---EPiServer-Connect-for-CRM-12/">Installation Instructions &#8211;  EPiServer Connect for CRM 1.2</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Connect/EPiServer-Connect-for-CRM-Configuration12/">Connect for CRM 1.2 &#8211; Configuration</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-CRM-R111/EPiServer-Connect-for-CRM-Creating-a-Connection/">Creating a Connection in EPiServer  Connect for CRM</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-CRM-R111/EPiServer-Connect-for-CRM-Functionality/">Functionality of EPiServer Connect  for CRM</a></li>
</ul>
<h3 id="toc-episerver-connect-sharepoint">EPiServer Connect for SharePoint</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Dan-Matthews/Dates/2009/5/MOSS-in-perfect-harmony1/">MOSS in perfect harmony</a></li>
<li><a href="http://world.episerver.com/Blogs/Dan-Matthews/Dates/2009/4/A-voyage-with-the-SharePoint-Connector/">A voyage with the SharePoint  Connector</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Integrating-EPiServer-CMS-5-with-Microsoft-SharePoint--user-examples-and-benefits/">Integrating EPiServer CMS 5 with  Microsoft SharePoint – user examples and benefits</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Installation-Instructions/EPiServer-Connect/Connnect-for-SharePoint-22---Installation-Instructions/">Connect for SharePoint 2.2 &#8211;  Installation Instructions</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/EPiServer-Connect-for-Sharepoint-Configuration-File/">Connect for SharePoint 2.2 &#8211;  Configuration File</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/Connect-for-SharePoint-22---Extensibility/">Connect for SharePoint 2.2 &#8211;  Extensibility</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/Connect-for-SharePoint-22---Known-Limitations-and-Troubleshooting/">EPiServer Connect for SharePoint  Known Limitations and Troubleshooting</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/Connect-for-SharePoint-22---Search-Configuration/">Connect for SharePoint 2.2 &#8211; Search  Configuration</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/Connect-for-SharePoint-22---Security-and-Delegation/">Connect for SharePoint 2.2 &#8211;  Security and Delegation</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-Connect/EPiServer-Connect-for-SharePoint-22/Connect-for-SharePoint-22---Work-around-for-Recycle-Bin-items/">Workaround for Recycle Bin items for  EPiServer Connect for SharePoint</a></li>
</ul>
<h2 id="toc-extending-episerver">Extending EPiServer</h2>
<p>One of  EPiServer&rsquo;s biggest strengths in my humble opinion is how easy EPiServer is to  extend. Take a look <a href="http://gadgetopia.com/images/EPiServerAdminCustomization.png">at this picture by Deane Barker</a> for a great overview of what is  possible.</p>
<h3 id="toc-plugins">Plugins</h3>
<ul>
<li><a href="http://www.frederikvig.com/2009/10/creating-an-episerver-plugin/">Creating  an EPiServer Plugin</a></li>
<li><a href="http://world.episerver.com/Blogs/Dan-Matthews/Dates/2010/3/A-few-tips-on-UI-Plugins-in-CMS6/">A few tips on UI Plugins in CMS6</a></li>
<li><a href="http://labs.dropit.se/blogs/post/2009/08/23/A-page-property-plugin-for-EPiServer-CMS.aspx">A page property plugin for EPiServer  CMS</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2009/2/Action-window-template/">Action window template</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Johano/Dates/2008/6/EPiServer-PlugIns-in-one-single-dll/">EPiServer PlugIns in one single dll</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Strale/Dates/2009/12/Introducing-the-new-Initialization-System-in-EPiServer-CMS-6/">Introducing the new Initialization  System in EPiServer CMS 6</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Ruwen/Dates/2008/8/Simple-way-to-make-your-plug-in-settings-editable/">Simple way to make your plug-in  settings editable</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/2009/8/Edit-Panel-plug-in-performance/">Edit Panel plug-in performance</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Tutorials/Admin%20Page%20to%20Administer%20User%20Settings.htm">Admin  Page to Administer User Settings</a></li>
</ul>
<h3 id="toc-custom-property">Custom Property</h3>
<ul>
<li><a href="http://world.episerver.com/Articles/Items/Creating-custom-properties-in-EPiServer-CMS-5/">How to create custom properties in  EPiServer CMS 5</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/How%20To/Create%20a%20Custom%20Property.htm">How to Create a Custom Property</a></li>
<li><a href="http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/">EPiServer Custom Property with  Custom Settings</a></li>
<li><a href="http://www.ben-morris.com/episerver-creating-a-re-usable-generic-custom-property">EPiServer: Creating a re-usable generic custom property</a></li>
<li><a href="http://www.dodavinkeln.se/post.aspx?id=c9c76e1a-5c8d-4509-a382-3a2c98dd8083">Country custom property</a></li>
<li><a href="http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2010/3/Property-to-make-one-link-with-text-and-target-LinkCollection-style/">Property to make one link with text  and target (LinkCollection style)</a></li>
<li><a href="http://antecknat.se/blog/2010/06/09/quick-way-to-create-checkboxlist-dropdownlist-properties/">Quick way to create checkboxlist / dropdownlist properties</a></li>
</ul>
<h3 id="toc-dynamic-content">Dynamic Content</h3>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Dynamic-Content/">Dynamic Content</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Dynamic%20Content/Introduction%20to%20Dynamic%20Content.htm">Introduction to Dynamic Content</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Dynamic%20Content/How%20To/Create%20Dynamic%20Content.htm">How to Create Dynamic Content</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Dynamic%20Content/How%20To/Create%20UI%20Settings%20for%20Dynamic%20Content.htm">How to Create UI Settings for  Dynamic Content</a></li>
<li><a href="http://www.kloojed.com/2008/10/dynamic-content-and-invalid-html-markup">Dynamic content and invalid html  markup</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/7/Referrer-Search-Dynamic-Content/">Referrer-Search Dynamic Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/2/Turn-your-User-Controls-into-Dynamic-Content/">Turn your User Controls into Dynamic  Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/1/Automatically-Load-Property-Types-as-Dynamic-Content/">Automatically Load Property Types as  Dynamic Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/12/WikiX-Dynamic-Content-in-Dynamic-Content/">WikiX: Dynamic Content in Dynamic  Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/10/Auto-Loading-of-Dynamic-Content/">Auto Loading of Dynamic Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2008/12/Dynamic-Content-base-class/">Dynamic Content base class</a></li>
<li><a href="http://www.dodavinkeln.se/post.aspx?id=f9314161-f511-400e-acd8-bf68385ecc0a">Using block elements as Dynamic  Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2008/10/Inserting-XForms-as-dynamic-content/">Inserting XForms as dynamic content</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Paulsson/Dates/2009/1/Dynamic-Content-goes-personal/">Dynamic Content goes personal</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Paul-Smith/Dates/2008/10/How-to-localize-Dynamic-Content/">How to localize Dynamic Content</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Peter-Sunna/Dates/2009/3/Tweets-and-dynamic-content-decided-to-become-friends/">Tweets and dynamic content decided  to become friends</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Peter-Sunna/Dates/2009/3/Display-youtube-videos-in-episerver-using-dynamic-content/">Display youtube videos in episerver  using dynamic content</a></li>
</ul>
<h3 id="toc-scheduled-jobs">Scheduled Jobs</h3>
<ul>
<li><a href="http://thisisnothing.wordpress.com/?p=130">Scheduled jobs in EPiServer CMS 6</a></li>
<li><a href="http://world.episerver.com/Blogs/Erik-Engstrand/Dates/2010/2/Subscription-job-deadlock-on-site-with-large-number-of-users/">Subscription job deadlock on site  with large number of users</a></li>
<li><a href="http://antecknat.se/blog/?p=64">Scheduled tasks &#8211; tips</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2008/04/03/enable-debug-logging-for-episerver-scheduler/">Enable debug logging for EPiServer  Scheduler</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Jacob-Khan/Dates/2009/8/Scheduled-backup-of-your-site/">Scheduled backup of your site</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/3/Getting-the-date-of-last-successful-execution-of-a-scheduled-job/">Getting the date of last successful  execution of a scheduled job</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Link-Validation/">Link Validation</a></li>
<li><a href="http://mattnield.co.uk/2010/05/custom-scheduled-task-intervals-in-episerver/">Custom Scheduled Task Intervals in  EPiServer</a></li>
</ul>
<h2 id="toc-episerver-enterprise">EPiServer Enterprise</h2>
<h3 id="toc-load-balancing">Load Balancing</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Shamrez-Iqbal/Dates/2008/10/Problems-with-access-rights-to-VPP-in-a-load-balanced-enviroment/">Problems with access rights to VPP  in a load balanced enviroment</a></li>
<li><a href="http://world.episerver.com/Blogs/David-Knipe/Dates/2009/11/Synchronising-EPiServer-VPP-folders-using-the-Microsoft-Sync-Framework/">Synchronising EPiServer VPP folders  using the Microsoft Sync Framework</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Cache-Update-and-Load-Balancing-for-EPiServer-CMS-5/">Cache Update and Load Balancing for  EPiServer CMS 5</a></li>
<li><a href="http://world.episerver.com/Blogs/Paul-Smith/Dates1/2010/6/Online-Center--Admin-Plugin-for-EPiServer-Events-System-Load-Balancing/">Online Center / Admin Plugin for EPiServer Events System (Load Balancing)</a></li>
</ul>
<h3 id="toc-server-architecture">Server Architecture</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Chris-Bennett/Dates/2009/12/Server-Architecture-Options-for-EPiServer/">Server Architecture Options for  EPiServer</a></li>
</ul>
<h3 id="toc-episerver-enterprise2">EPiServer Enterprise</h3>
<ul>
<li><a href="http://world.episerver.com/Blogs/Joe-Bianco/Dates/2009/12/Setting-Up-Multiple-Sites-in-EPiServer-CMS-5-Enterprise/">Setting Up Multiple Sites in  EPiServer CMS 5 Enterprise</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Enterprise-Functionality-in-EPiServer-CMS-6/">Enterprise Functionality in  EPiServer CMS 6</a></li>
</ul>
<h3 id="toc-mirroring">Mirroring</h3>
<ul>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Mirroring/">Mirroring</a></li>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/2/Continuous-mirroring--CMS-6/">Continuous mirroring – CMS 6</a></li>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/2/Mirroring--Modules-and-Custom-code/">Mirroring – Modules and Custom code</a></li>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/2/Mirroring-20--Overview/">Mirroring 2.0 – Overview</a></li>
<li><a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Mirroring-and-Monitoring-Configurations/">Mirroring and Monitoring  Configurations</a></li>
<li><a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Custom-Mirroring-Transfer-Provider-on-USB/">Custom Mirroring Transfer Provider  on USB</a></li>
<li><a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Monitoring-On-Mirroring/">MoM Server</a></li>
<li><a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Catch-Monitoring-Event-inside-CMS/">Catch Monitoring Event inside CMS</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Mirroring---Monitoring/">Mirroring &#8211; Monitoring</a></li>
</ul>
<h3 id="toc-page-providers">Page Providers</h3>
<ul>
<li><a href="http://world.episerver.com/Articles/Items/Introducing-Page-Providers/">Introducing Page Providers</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Page-Providers/">Page Providers</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/XmlPageProvider/">XmlPageProvider</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Page%20Providers/Page%20Providers.htm">Page Providers &#8211; An Introduction</a></li>
<li><a href="http://world.episerver.com/Blogs/Stefan-Forsberg/Dates/2009/4/Page-Provider--Part-one/">Page Provider – Part one</a></li>
<li><a href="http://world.episerver.com/Blogs/Stefan-Forsberg/Dates/2009/4/Page-Provider--Part-two/">Page Provider – Part two</a></li>
<li><a href="http://world.episerver.com/Blogs/Stefan-Forsberg/Dates/2009/5/Page-Provider--Part-three/">Page Provider – Part three</a></li>
<li><a href="http://world.episerver.com/Blogs/Marthin-Freij/Dates/2010/2/Configuring-page-provider-capabilities/">Configuring page provider  capabilities</a></li>
<li><a href="http://world.episerver.com/Blogs/Marthin-Freij/Dates/2010/2/Problem-with-constructing-PageReferences-in-Page-Providers/">Problem with constructing  PageReferences in Page Providers</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2010/1/Attaching-a-Page-Provider-programmatically/">Attaching a Page Provider  programmatically</a></li>
<li><a href="http://world.episerver.com/Blogs/Ben-Morris/Dates/2009/10/Developing-EPiServer-page-providers-optimizing-performance/">Developing EPiServer page providers:  optimizing performance</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/1/Mapped-Page-Provider/">Mapped Page Provider</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/1/Fun-with-the-Mapping-Page-Provider/">Fun with the Mapped Page Provider</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/11/Guide-Northwind-Page-Provider/">Guide: Northwind Page Provider</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Johan-Bjornfot/Dates/2008/12/Page-Provider---Structure-your-site/">Page Provider &#8211; Structure your site</a></li>
<li><a href="http://world.episerver.com/Blogs/Per-Bjurstrom/Archive/2009/4/Optimizing-Friendly-URL-for-Page-Providers/">Optimizing Friendly URL for Page  Providers</a></li>
<li><a href="http://world.episerver.com/Articles/Items/EPiServer-loves-UK-top-40/">EPiServer Loves UK Top 40 (Or Yet  Another Article About Page Providers)</a></li>
</ul>
<h2 id="toc-developing-with-episerver">Developing with EPiServer</h2>
<h3 id="toc-web-controls">Web Controls</h3>
<ul>
<li><a href="http://www.frederikvig.com/tag/episerver-web-controls/">EPiServer web controls</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/Data%20Sources.htm">Data Source Controls</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/Menus%20and%20Listings.htm">Menu and Listing Controls</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/How%20To/Create%20a%20Main%20Menu.htm">How to Create a Main Menu</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/How%20To/Create%20a%20Sub%20Menu.htm">How to Create a Sub Menu</a></li>
<li><a href="http://antecknat.se/blog/?p=47">EPiServer:PageList with  SelectedItemTemplate</a></li>
<li><a href="http://antecknat.se/blog/?p=56">EPiServer:PageList with  ItemDataBound</a></li>
<li><a href="http://www.frederikvig.com/2009/09/creating-a-custom-episerver-paging-control/">Creating a Custom EPiServer Paging  Control</a></li>
</ul>
<h3 id="toc-page-types-pagedata">Page Types and PageData</h3>
<ul>
<li><a href="http://labs.episerver.com/en/Blogs/Allan/Dates/2009/3/Output-PageData-as-JSON/">Output PageData as JSON</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Convert-Page-Types-for-Pages/">Convert Page Types for Pages</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Pages,%20Page%20Types%20and%20Page%20Templates/Introduction%20to%20Pages,%20Page%20Types%20and%20Page%20Templates.htm">Pages, Page Types and Page Templates</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Pages,%20Page%20Types%20and%20Page%20Templates/How%20To/Create%20a%20Page%20Programmatically.htm">How to Create a Page  Programmatically</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Pages,%20Page%20Types%20and%20Page%20Templates/How%20To/Create%20a%20Page%20Template.htm">How to Create a Page Template</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Pages,%20Page%20Types%20and%20Page%20Templates/How%20To/Modify%20values%20for%20page%20properties%20in%20edit%20mode.htm">Modify values for page properties  when loading the page for editing in edit mode</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Johano/Dates/2010/6/Querying-EPiServer-PageData-using-LINQ/">Querying EPiServer PageData using LINQ</a></li>
</ul>
<h3 id="toc-properties-dynamic-properties">Properties / Dynamic Properties</h3>
<ul>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/Property%20Types.htm">Property Types</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/Using%20String%20Properties.htm">Using String Properties in EPiServer  CMS</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/Working%20with%20page%20properties.htm">Working With Page Properties in  EPiServer CMS</a></li>
<li><a href="http://world.episerver.com/Blogs/Per-Nergard/Dates/2010/4/Display-the-property-name-for-developers-in-edit-mode/">Display the property name for  developers in edit mode</a></li>
<li><a href="http://thisisnothing.wordpress.com/2010/04/09/modify-the-built-in-episerver-properties/">Modify the built-in EPiServer  properties</a></li>
<li><a href="http://blog.fredrikhaglund.se/blog/2008/07/02/epipattern-do-dont-with-episerver-properties/">EPiPattern: DO &amp; DONT with  EPiServer Properties</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2009/10/Setting-up-multiple-property-controls-for-a-property-in-EPiServer-CMS-6/">Setting up multiple property  controls for a property in EPiServer CMS 6</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2009/10/Settings-for-properties/">Settings for properties</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-Paulsson/Dates/2009/9/Automatic-Sub-Category-Property-Type/">Automatic Sub Category Property Type</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/How%20To/Modify%20values%20for%20page%20properties%20in%20edit%20mode.htm">Modify values for page properties  when loading the page for editing in edit mode</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Properties/How%20To/Use%20Link%20Collection%20property.htm">How to Use Link Collection property</a></li>
<li><a href="http://www.frederikvig.com/2009/05/episerver-link-collection/">EPiServer Link Collection Property</a></li>
</ul>
<h3 id="toc-code-architecture">Code architecture</h3>
<ul>
<li><a href="http://www.jarlef.com/2010/02/12/sharing-templates-and-plugins-between-projects/">Sharing templates and plugins  between projects</a></li>
<li><a href="http://world.episerver.com/Blogs/Magnus-von-Wachenfeldt/Dates/2010/2/Setting-up-a-Maintainable-EPiServer-Site--Part-1/">Setting up a Maintainable EPiServer  Site – Part 1</a></li>
<li><a href="http://jarlef.wordpress.com/2009/10/14/tips-sharing-episerver-projects-between-developers/">Tips: Sharing episerver-projects  between developers</a></li>
<li><a href="http://joelabrahamsson.com/entry/handling-multiple-aspnet-configuration-files-with-build-events">Handling multiple ASP.NET  configuration files with build events</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Setting%20Up%20a%20New%20EPiServer%20Site%20with%20Visual%20Studio.htm">Setting Up a New EPiServer Site with  Visual Studio</a></li>
</ul>
<h3 id="toc-searching-filtering">Searching and filtering</h3>
<ul>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/Searching%20and%20Filtering.htm">Searching and Filtering</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Navigation%20and%20Listings/How%20To/Search%20for%20pages%20based%20on%20page%20type%20property.htm">How to search for pages based on  page type</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Core%20Features/Pages,%20Page%20Types%20and%20Page%20Templates/How%20To/Search%20for%20pages.htm">How to Search for Pages</a></li>
<li><a href="http://www.frederikvig.com/2009/05/episerver-filter-part-1/">EPiServer filter – part 1</a></li>
<li><a href="http://www.frederikvig.com/2009/06/episerver-filter-part-2/">EPiServer filter – part 2: create  your own filter</a></li>
<li><a href="http://tedgustaf.com/en/blog/2010/5/search-episerver-pages-using-findpageswithcriteria/">Search pages in EPiServer using FindPagesWithCriteria</a></li>
</ul>
<h2 id="toc-performance-caching">Performance and caching</h2>
<p>EPiServer  has some great performance and caching out of the box (usually 90-95% of pages  are served from the cache!). Below are some resources for improving it even  more. For client side performance I recommend checking out <a href="http://developer.yahoo.com/yslow/">YSlow</a> as  well.</p>
<h3 id="toc-caching">Caching</h3>
<ul>
<li><a href="http://joelabrahamsson.com/entry/the-episerver-cms-output-cache-explained">The EPiServer CMS Output Cache  Explained</a></li>
<li><a href="http://blog.sallarp.com/?p=865">ASP.NET – Automatic CSS and  Javascript versioning</a></li>
<li><a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2010/1/Dynamic-Data-Store-caching--The-internals/">Dynamic Data Store caching – The  internals</a></li>
<li><a href="http://joelabrahamsson.com/entry/how-episerver-cms-caches-pagedata-objects">How EPiServer CMS caches PageData  objects</a></li>
<li><a href="http://labs.dropit.se/blogs/post/2009/05/29/A-small-cache-manager-see-and-manage-your-cache-items.aspx">A small cache manager &#8211; see and  manage your cache items</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Fredrik-Karlsson/Dates/2008/10/EPiServer-and-cache-not-always-a-love-story/">EPiServer and cache, not always a  love story</a></li>
<li><a href="http://joelabrahamsson.com/entry/how-episerver-cms-caches-pagedata-objects">How EPiServer CMS caches PageData objects</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Per/Archive/2009/3/Configuring-cache-expiration-on-IIS-7/">Configuring cache expiration on IIS  7</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Per/Archive/2008/10/Http-Caching-strategies-Pages/">Http Caching strategies: Pages</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Per/Archive/2008/10/Http-Caching-strategies-VPP-Files/">Http Caching strategies: VPP Files</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Per/Archive/2008/6/Setting-cache-limits-in-ASPNET-20/">Setting cache limits in ASP.NET 2.0</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/112266/10/Client-Caching-in-R2-and-Localhost/">Client Caching in R2 and Localhost</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Cache-Update-and-Load-Balancing-for-EPiServer-CMS-5/">Cache Update and Load Balancing for  EPiServer CMS 5</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Caching/StaticFileCaching.htm">Caching of static files</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Caching/PluggableRuntimeCache.htm">Pluggable Runtime Cache</a></li>
<li><a href="http://sdk.episerver.com/library/cms6/Developers%20Guide/Advanced%20Features/Caching/Read-Only%20PageData%20Cache.htm">Read-Only PageData Cache</a></li>
<li><a href="http://tedgustaf.com/en/blog/2010/5/cache-objects-in-episerver-with-page-dependencies/">Cache objects in EPiServer with page dependencies</a></li>
</ul>
<h3 id="toc-performance">Performance</h3>
<ul>
<li><a href="http://blog.sallarp.com/?p=768">Gzip compression of static files –  EPiServer CMS 5 / IIS 6.0</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Joel-Abrahamsson/Dates2/2009/5/Client-side-performance-optimization-adventures-with-the-CdnSupport-module/">Client side performance optimization  adventures with the CdnSupport module</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Mats-Hellstrom/Dates/2009/3/Client-Side-Performance-Links-and-Presentations/">Client-Side Performance: Links and  Presentations</a></li>
<li><a href="http://world.episerver.com/Blogs/Per-Bjurstrom/Archive/2009/5/CdnSupport-module-preview-2/">CdnSupport module preview 2</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/2009/8/FindPagesWithCriteria-and-Performance/">FindPagesWithCriteria and  Performance</a></li>
<li><a href="http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/2009/8/Edit-Panel-plug-in-performance/">Edit Panel plug-in performance</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Performance-Tuning-and-Optimization-of-EPiServer-CMS/">Performance Tuning and Optimization  of EPiServer CMS</a></li>
</ul>
<h2 id="toc-episerver-quick-publishing">EPiServer Quick Publishing</h2>
<ul>
<li><a href="http://world.episerver.com/Blogs/Mari-Jorgensen/Dates/2010/5/Smooth-Publish-Using-JQuery-and-EPiServer-Quick-Publishing/">Smooth Publish Using JQuery and  EPiServer Quick Publishing</a></li>
<li><a href="http://world.episerver.com/Articles/Items/Streamline-Your-Daily-Work-with-EPiServer-CMS-6/">Streamline Your Daily Work with  EPiServer CMS 6</a></li>
<li><a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Quick-Publishing---Configuration/">Configuration &#8211; Quick Publishing</a></li>
</ul>
<p><strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/10/creating-an-episerver-plugin/" rel="bookmark" title="October 8, 2009">Creating an EPiServer Plugin</a></li>
<li><a href="http://www.frederikvig.com/2010/03/starting-out-with-xslt-in-umbraco/" rel="bookmark" title="March 20, 2010">Starting out with XSLT in Umbraco</a></li>
<li><a href="http://www.frederikvig.com/2009/10/slideshare-dynamic-content/" rel="bookmark" title="October 25, 2009">SlideShare Dynamic Content</a></li>
<li><a href="http://www.frederikvig.com/2010/06/css-and-javascript-compression-and-bundling/" rel="bookmark" title="June 20, 2010">CSS and JavaScript compression and bundling</a></li>
<li><a href="http://www.frederikvig.com/2009/07/episerver-web-controls-property/" rel="bookmark" title="July 5, 2009">EPiServer web controls: Property</a></li>
</ul>
<p><!-- Similar Posts took 16.531 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/fGCvDUXtMz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/05/episerver-developer-resources/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/05/episerver-developer-resources/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=episerver-developer-resources</feedburner:origLink></item>
		<item>
		<title>EPiServer Custom Property with Custom Settings</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/b_H1L_o8Q4s/</link>
		<comments>http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:44:07 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1253</guid>
		<description><![CDATA[I was brushing up on custom properties and came across Allan Thræn&#8217;s post Custom Property: Category Drop Down. The code is simple and works great, but one thing I didn&#8217;t like is that you need to give the property the same name as the root category that you use to populate the drop down. In [...]]]></description>
			<content:encoded><![CDATA[<p>I was brushing up on custom properties and came across Allan Thræn&#8217;s post <a href="http://labs.episerver.com/en/Blogs/Allan/Dates/112230/3/Custom-Property-Category-Drop-Down/">Custom Property: Category Drop Down</a>. The code is simple and works great, but one thing I didn&#8217;t like is that you need to give the property the same name as the root category that you use to populate the drop down.</p>
<p>In EPiServer CMS 6 we now have the ability to add settings to the properties. Linus Ekström wrote a great post on how to use the new settings functionality: <a href="http://labs.episerver.com/en/Blogs/Linus-Ekstrom1/Dates/2009/10/Settings-for-properties/">Settings for properties</a>. After reading both Allan&#8217;s and Linus&#8217; post I decided to give the EPiServer administrator the ability to choose which category should be the root category in the settings tab of the property.</p>
<h3>Custom Property</h3>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Core.PropertySettings</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.PlugIn</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0000FF;">Properties</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #000000;">&#91;</span>Serializable<span style="color: #000000;">&#93;</span>
    <span style="color: #000000;">&#91;</span>PageDefinitionTypePlugIn<span style="color: #000000;">&#93;</span>
    <span style="color: #000000;">&#91;</span>PropertySettings<span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span>, <span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> CategoryDropDown <span style="color: #008000;">:</span> EPiServer.<span style="color: #0000FF;">Core</span>.<span style="color: #0000FF;">PropertyString</span>
    <span style="color: #000000;">&#123;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> EPiServer.<span style="color: #0000FF;">Core</span>.<span style="color: #0000FF;">IPropertyControl</span> CreatePropertyControl<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> CategoryDropDownControl<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The code is almost identical to Allan&#8217;s except for the PropertySettings attribute.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Web.UI.WebControls</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.DataAbstraction</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0000FF;">Properties</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> CategoryDropDownControl <span style="color: #008000;">:</span> EPiServer.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">PropertyControls</span>.<span style="color: #0000FF;">PropertyTextBoxControlBase</span>
    <span style="color: #000000;">&#123;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #FF0000;">bool</span> SupportsOnPageEdit
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> false<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">protected</span> DropDownList ddl<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> CreateEditControls<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            ddl <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DropDownList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            CategoryDropDownSettings settings <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span><span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">PropertyData</span>.<span style="color: #0000FF;">GetSetting</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Category main_c <span style="color: #008000;">=</span> Category.<span style="color: #0000FF;">Find</span><span style="color: #000000;">&#40;</span>settings.<span style="color: #0000FF;">RootCategory</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            ddl.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> ListItem<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;&quot;</span>, <span style="color: #666666;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>Category c <span style="color: #0600FF;">in</span> main_c.<span style="color: #0000FF;">Categories</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                ListItem li <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ListItem<span style="color: #000000;">&#40;</span>c.<span style="color: #0000FF;">LocalizedDescription</span>, c.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                li.<span style="color: #0000FF;">Selected</span> <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>CategoryDropDown.<span style="color: #0000FF;">Value</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">==</span> c.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                ddl.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>li<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">ApplyControlAttributes</span><span style="color: #000000;">&#40;</span>ddl<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            Controls.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>ddl<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> ApplyEditChanges<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            SetValue<span style="color: #000000;">&#40;</span>ddl.<span style="color: #0000FF;">SelectedValue</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> CategoryDropDown CategoryDropDown
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> PropertyData <span style="color: #0600FF;">as</span> CategoryDropDown<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Only difference to Allan&#8217;s code here is in the CreateEditControls method.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">...
<span style="color: #0000FF;">CategoryDropDownSettings</span> settings <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span><span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">PropertyData</span>.<span style="color: #0000FF;">GetSetting</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
Category main_c <span style="color: #008000;">=</span> Category.<span style="color: #0000FF;">Find</span><span style="color: #000000;">&#40;</span>settings.<span style="color: #0000FF;">RootCategory</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
...</pre></div></div>

<h3>Custom Settings</h3>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Core.PropertySettings</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0000FF;">Properties</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #000000;">&#91;</span>PropertySettingsUI<span style="color: #000000;">&#40;</span>AdminControl <span style="color: #008000;">=</span> <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettingsUI<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> CategoryDropDownSettings <span style="color: #008000;">:</span> PropertySettingsBase
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> RootCategory <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> IPropertySettings GetDefaultValues<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> CategoryDropDownSettings <span style="color: #000000;">&#123;</span> RootCategory <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>I&#8217;m setting the default rootCategory to be 0 (root).</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Linq</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Web.UI.WebControls</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Core</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Core.PropertySettings</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Web.WebControls</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0000FF;">Properties</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> CategoryDropDownSettingsUI <span style="color: #008000;">:</span> PropertySettingsControlBase
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">private</span> InputCategoryTree _categoryTree<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> CreateChildControls<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
&nbsp;
            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">CreateChildControls</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            _categoryTree <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> InputCategoryTree <span style="color: #000000;">&#123;</span>ID <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;CategoryTree&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
            Label label <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Label <span style="color: #000000;">&#123;</span> Text <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Root Category&quot;</span>, AssociatedControlID <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;CategoryTree&quot;</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
            Controls.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>label<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            Controls.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>_categoryTree<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> LoadSettingsUI<span style="color: #000000;">&#40;</span>IPropertySettings propertySettings<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
&nbsp;
            EnsureChildControls<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            _categoryTree.<span style="color: #0000FF;">SelectedCategories</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CategoryList<span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span>propertySettings<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">RootCategory</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> UpdateSettings<span style="color: #000000;">&#40;</span>IPropertySettings propertySettings<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
&nbsp;
            EnsureChildControls<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// We only want the first selected category</span>
            <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>CategoryDropDownSettings<span style="color: #000000;">&#41;</span>propertySettings<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">RootCategory</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">int</span>.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>_categoryTree.<span style="color: #0000FF;">SelectedCategories</span>.<span style="color: #0000FF;">ElementAt</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>When we add a new property we now have the option, under custom settings, to choose the root category for our drop down.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/category-drop-down/category-drop-down-settings.png" alt="EPiServer Category Drop Down Settings" />
</p>
<p>Which gives our editors these options.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/category-drop-down/category-drop-down.png" alt="EPiServer Category Drop Down in view mode" />
</p>
<p><strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/11/extending-episerver-categories/" rel="bookmark" title="November 27, 2009">Extending EPiServer Categories</a></li>
<li><a href="http://www.frederikvig.com/2009/06/episerver-filter-part-2/" rel="bookmark" title="June 28, 2009">EPiServer filter – part 2: create your own filter</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-5-creating-the-search-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 16, 2009">Part 5: Creating the search page – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/" rel="bookmark" title="April 3, 2010">Creating a simple image gallery with EPiServer</a></li>
<li><a href="http://www.frederikvig.com/2009/10/episerver-findpageswithcriteria-and-findallpageswithcriteria/" rel="bookmark" title="October 21, 2009">EPiServer FindPagesWithCriteria and FindAllPagesWithCriteria</a></li>
</ul>
<p><!-- Similar Posts took 12.656 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/b_H1L_o8Q4s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=episerver-custom-property-with-custom-settings</feedburner:origLink></item>
		<item>
		<title>Creating a contact form with ASP.NET MVC</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/2wFAmUE9K0Y/</link>
		<comments>http://www.frederikvig.com/2010/05/creating-a-contact-form-with-asp-net-mvc/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:37:07 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1239</guid>
		<description><![CDATA[We&#8217;re going to create a contact form in ASP.NET MVC 2.0, that uses Ajax to send the form data and that uses client side validation to improve the user experience for our users. Start by creating a new ASP.NET MVC 2.0 web application project in Visual Studio. This will create a new project with the [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re going to create a contact form in ASP.NET MVC 2.0, that uses Ajax to send the form data and that uses client side validation to improve the user experience for our users.</p>
<p>Start by creating a new ASP.NET MVC 2.0 web application project in Visual Studio.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/contact-form/create-new-aspnet-mvc-application.png" alt="New project dialog in Visual Studio" />
</p>
<p>This will create a new project with the default ASP.NET MVC 2.0 sample code. </p>
<p>Inside the Models folder create a new class, and give it the name: Contact.cs. The class is very simple with just some properties for Name, Email and Comment.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.ComponentModel</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.ComponentModel.DataAnnotations</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> ContactForm.<span style="color: #0000FF;">Models</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Contact
    <span style="color: #000000;">&#123;</span>
        <span style="color: #000000;">&#91;</span>Required<span style="color: #000000;">&#40;</span>ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;You need to fill in a name&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #000000;">&#91;</span>DisplayName<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Name&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Name <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #000000;">&#91;</span>Required<span style="color: #000000;">&#40;</span>ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;You need to fill in an email address&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #000000;">&#91;</span>DataType<span style="color: #000000;">&#40;</span>DataType.<span style="color: #0000FF;">EmailAddress</span>, ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Your email address contains some errors&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #000000;">&#91;</span>DisplayName<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Email address&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Email <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #000000;">&#91;</span>Required<span style="color: #000000;">&#40;</span>ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;You need to fill in a comment&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #000000;">&#91;</span>DisplayName<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Your comment&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Comment <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Notice the Required, DisplayName and DataType attributes. This is called DataAnnotations, and is a new feature in ASP.NET MVC 2.0, which helps us add validation logic to our models.</p>
<p>Next step is creating the /home/contact URL and the contact view. Open up HomeController.cs, and add the following method.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> ActionResult Contact<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> View<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Place your cursor inside View() and press Ctrl+M, Ctrl+V, or just right-click and choose Add View. Check the &#8220;Create a strongly-typed view&#8221; and type in: ContactForm.Models.Contact.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;%</span>@ Page Title<span style="color: #008000;">=</span><span style="color: #666666;">&quot;&quot;</span> Language<span style="color: #008000;">=</span><span style="color: #666666;">&quot;C#&quot;</span> MasterPageFile<span style="color: #008000;">=</span><span style="color: #666666;">&quot;~/Views/Shared/Site.Master&quot;</span> Inherits<span style="color: #008000;">=</span><span style="color: #666666;">&quot;System.Web.Mvc.ViewPage&lt;ContactForm.Models.Contact&gt;&quot;</span> <span style="color: #008000;">%&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>Content ID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;Content1&quot;</span> ContentPlaceHolderID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;TitleContent&quot;</span> runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&gt;</span>
	Contact
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>Content<span style="color: #008000;">&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>Content ID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;Content2&quot;</span> ContentPlaceHolderID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;MainContent&quot;</span> runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&gt;</span>
&nbsp;
    <span style="color: #008000;">&lt;</span>h2<span style="color: #008000;">&gt;</span>Contact<span style="color: #008000;">&lt;/</span>h2<span style="color: #008000;">&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>Content<span style="color: #008000;">&gt;</span></pre></div></div>

<p>We can now create the form markup.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;%</span>@ Page Title<span style="color: #008000;">=</span><span style="color: #666666;">&quot;&quot;</span> Language<span style="color: #008000;">=</span><span style="color: #666666;">&quot;C#&quot;</span> MasterPageFile<span style="color: #008000;">=</span><span style="color: #666666;">&quot;~/Views/Shared/Site.Master&quot;</span> Inherits<span style="color: #008000;">=</span><span style="color: #666666;">&quot;System.Web.Mvc.ViewPage&lt;ContactForm.Models.Contact&gt;&quot;</span> <span style="color: #008000;">%&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>Content ContentPlaceHolderID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;TitleContent&quot;</span> runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&gt;</span>
	Contact us
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>Content<span style="color: #008000;">&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>Content ContentPlaceHolderID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;MainContent&quot;</span> runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span><span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;%</span> Html.<span style="color: #0000FF;">EnableClientValidation</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008000;">%&gt;</span> 
    <span style="color: #008000;">&lt;%</span> <span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>Ajax.<span style="color: #0000FF;">BeginForm</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> AjaxOptions <span style="color: #000000;">&#123;</span> HttpMethod <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Post&quot;</span>, OnComplete <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Contact.onComplete&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span> <span style="color: #008000;">%&gt;</span>
        <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">ValidationSummary</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span>, <span style="color: #666666;">&quot;A few fields are still empty&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
        <span style="color: #008000;">&lt;</span>fieldset<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>legend<span style="color: #008000;">&gt;</span>Contact us<span style="color: #008000;">&lt;/</span>legend<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-label&quot;</span><span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">LabelFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-field&quot;</span><span style="color: #008000;">&gt;&lt;%:</span> Html.<span style="color: #0000FF;">TextBoxFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">ValidationMessageFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-label&quot;</span><span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">LabelFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Email</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-field&quot;</span><span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">TextBoxFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Email</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">ValidationMessageFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Email</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-label&quot;</span><span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">LabelFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Comment</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;editor-field&quot;</span><span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">TextAreaFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Comment</span>, <span style="color: #FF0000;">10</span>, <span style="color: #FF0000;">25</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
                <span style="color: #008000;">&lt;%:</span> Html.<span style="color: #0000FF;">ValidationMessageFor</span><span style="color: #000000;">&#40;</span>m <span style="color: #008000;">=&gt;</span> m.<span style="color: #0000FF;">Comment</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">%&gt;</span>
            <span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
            <span style="color: #008000;">&lt;</span>p<span style="color: #008000;">&gt;</span>
                <span style="color: #008000;">&lt;</span>input type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;submit&quot;</span> value<span style="color: #008000;">=</span><span style="color: #666666;">&quot;Submit&quot;</span> <span style="color: #008000;">/&gt;</span>
            <span style="color: #008000;">&lt;/</span>p<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;/</span>fieldset<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;</span>p id<span style="color: #008000;">=</span><span style="color: #666666;">&quot;result&quot;</span><span style="color: #008000;">&gt;&lt;%:</span> TempData<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Message&quot;</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">%&gt;&lt;/</span>p<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;%</span> <span style="color: #000000;">&#125;</span> <span style="color: #008000;">%&gt;</span>
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>Content<span style="color: #008000;">&gt;</span></pre></div></div>

<p>&lt;%: &#8230; %&gt; is just a shortcut for HTML encoding the data, a new feature in ASP.NET 4.0. &lt;% Html.EnableClientValidation(); %&gt; enables client side validation for us, and must be included right before the start of the form. Ajax.BeginForm is a helper method that generates the form tag for us and attaches a little JavaScript code for sending the form data with Ajax, if the client supports it, otherwise the form data will be sent like normal.</p>
<p>Lets create the JavaScript method that gets called when the form is finished. Create a new JavaScript file inside the Scripts folder and give it the name: Site.js. Add the Contact object with the property function onComplete.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> Contact <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    onComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>content<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>content.<span style="color: #660066;">get_response</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get_object</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003366; font-weight: bold;">var</span> textNode <span style="color: #339933;">=</span> document.<span style="color: #660066;">createTextNode</span><span style="color: #009900;">&#40;</span>result.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;result&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>textNode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I take the JSON result from the server and add the message to the result paragraph.</p>
<p>If you press F5, the site should open up in your default browser. If you add Home/Contact behind the URL, you should be taken to the Contact Us page.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/contact-form/contact-form.png" alt="Contact us form" />
</p>
<p>For the client side validation to work we need to reference a few JavaScript files. Open up Site.master (located in the shared folder), and add the following code right before the closing body tag.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">...
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;../../Scripts/MicrosoftAjax.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;../../Scripts/MicrosoftMvcAjax.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;../../Scripts/MicrosoftMvcValidation.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;../../Scripts/Site.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></div></div>

<p>You should now receive some friendly error messages when you click the submit button without filling out the form properly.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/contact-form/contact-form-validation.png" alt="Contact us form validation" />
</p>
<p>Next step is adding the action method to HomeController.cs that will handle the form data.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #000000;">&#91;</span>HttpPost<span style="color: #000000;">&#93;</span>
<span style="color: #0600FF;">public</span> ActionResult Contact<span style="color: #000000;">&#40;</span>Contact model<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
        <span style="color: #FF0000;">string</span> message <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;There are a few errors&quot;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ModelState.<span style="color: #0000FF;">IsValid</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
                message <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Thanks! We'll get back to you soon.&quot;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>Request.<span style="color: #0000FF;">IsAjaxRequest</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> JsonResult <span style="color: #000000;">&#123;</span> ContentEncoding <span style="color: #008000;">=</span> Encoding.<span style="color: #0000FF;">UTF8</span>, Data <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #000000;">&#123;</span> success <span style="color: #008000;">=</span> <span style="color: #0600FF;">true</span>, message <span style="color: #008000;">=</span> message <span style="color: #000000;">&#125;</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
        TempData<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Message&quot;</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> message<span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">return</span> View<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Notice that I check if the request is an Ajax request, if it is I return a JSON object with the result, otherwise I return the whole view with the message.</p>
<p>You would also add some other logic here for saving the message in some way.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/contact-form/contact-form-complete.png" alt="The finished form" />
</p>
<p>That&#8217;s it!<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/05/aspnet-validation-and-jquery/" rel="bookmark" title="May 21, 2009">ASP.NET Validation and jQuery</a></li>
<li><a href="http://www.frederikvig.com/2009/10/sending-confirmation-email-to-the-user-when-using-episerver-xforms/" rel="bookmark" title="October 17, 2009">Sending confirmation email to the user when using EPiServer XForms</a></li>
<li><a href="http://www.frederikvig.com/2009/07/asp-net-web-forms-and-jquery-thickbox-plugin/" rel="bookmark" title="July 13, 2009">ASP.NET web forms and jQuery Thickbox plugin</a></li>
<li><a href="http://www.frederikvig.com/2009/07/episerver-web-controls-property/" rel="bookmark" title="July 5, 2009">EPiServer web controls: Property</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-6-creating-the-xform-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 19, 2009">Part 6: Creating the XForm page – Create an EPiServer site from scratch</a></li>
</ul>
<p><!-- Similar Posts took 29.627 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/2wFAmUE9K0Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/05/creating-a-contact-form-with-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/05/creating-a-contact-form-with-asp-net-mvc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=creating-a-contact-form-with-asp-net-mvc</feedburner:origLink></item>
		<item>
		<title>Backup plan when loading the jQuery library from CDN</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/Kb5q_P3dy0A/</link>
		<comments>http://www.frederikvig.com/2010/04/backup-plan-when-loading-the-jquery-library-from-cdn/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 18:30:12 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1228</guid>
		<description><![CDATA[In most of my project I load the jQuery library from a CDN, either Google or Microsoft. This ensures that my page will load faster for my visitors, since the jQuery file will get sent to them from their nearest location, gzipped and compressed. When the visitor visits another site that use the same jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>In most of my project I load the jQuery library from a CDN, either <a href="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">Google</a> or <a href="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">Microsoft</a>. This ensures that my page will load faster for my visitors, since the jQuery file will get sent to them from their nearest location, gzipped and compressed. When the visitor visits another site that use the same jQuery version from the same CDN, they don&#8217;t need to wait for their browser to download the library since it&#8217;s already in their temporary Internet files.</p>
<p>One of the drawbacks to this approach is when the CDN goes offline or becomes unavailable. Fortunately this has not happened to me &#8211; we should however have a backup plan! While reading through <a href="http://west-wind.com/weblog/posts/459197.aspx">Rick Strahl&#8217;s presentations on jQuery</a> I came across a great little snippet that will use a local copy of the jQuery library if the CDN is down or in some way unavailable.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> jQuery <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span>
	document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;%3Cscript src='/scripts/jquery-1.4.2.min.js' type='text/javascript'%3E%3C/script%3E&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Exactly what we need!<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/05/transparent-pngs/" rel="bookmark" title="May 5, 2009">Transparent PNGs</a></li>
<li><a href="http://www.frederikvig.com/2009/10/font-resizing-and-printing-with-jquery/" rel="bookmark" title="October 27, 2009">Font resizing and printing with jQuery</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-8-preparing-for-launch-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 24, 2009">Part 8: Preparing for launch – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2010/02/visual-studio-2010-episerver-snippets/" rel="bookmark" title="February 11, 2010">Visual Studio 2010 EPiServer Snippets</a></li>
<li><a href="http://www.frederikvig.com/2009/07/episerver-web-controls-property/" rel="bookmark" title="July 5, 2009">EPiServer web controls: Property</a></li>
</ul>
<p><!-- Similar Posts took 23.004 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/Kb5q_P3dy0A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/backup-plan-when-loading-the-jquery-library-from-cdn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/04/backup-plan-when-loading-the-jquery-library-from-cdn/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=backup-plan-when-loading-the-jquery-library-from-cdn</feedburner:origLink></item>
		<item>
		<title>ListControl AppendDataBoundItems and DataBind</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/rH74n4qVdUE/</link>
		<comments>http://www.frederikvig.com/2010/04/listcontrol-appenddatabounditems-and-databind/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 11:23:51 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1225</guid>
		<description><![CDATA[By default when using code like this, the list item will be cleared when data binding is performed. &#60;asp:DropDownList runat=&#34;server&#34; ID=&#34;ddlCategories&#34;&#62; &#60;asp:ListItem&#62;Please choose&#60;/asp:ListItem&#62; &#60;/asp:DropDownList&#62; protected override void OnLoad&#40;EventArgs e&#41; &#123; base.OnLoad&#40;e&#41;; &#160; string&#91;&#93; categories = new&#91;&#93; &#123; &#34;C#&#34;, &#34;ASP.NET&#34;, &#34;EPiServer&#34;, &#34;Umbraco&#34;, &#34;jQuery&#34; &#125;; &#160; ddlCategories.DataSource = categories; ddlCategories.DataBind&#40;&#41;; &#125; Will give us. &#60;select name=&#34;ctl00$MainContent$ddlCategories&#34; id=&#34;MainContent_ddlCategories&#34;&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>By default when using code like this, the list item will be cleared when data binding is performed.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>DropDownList runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span> ID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;ddlCategories&quot;</span><span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>ListItem<span style="color: #008000;">&gt;</span>Please choose<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>ListItem<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>DropDownList<span style="color: #008000;">&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> OnLoad<span style="color: #000000;">&#40;</span>EventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">OnLoad</span><span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> categories <span style="color: #008000;">=</span> <span style="color: #008000;">new</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">&quot;C#&quot;</span>, <span style="color: #666666;">&quot;ASP.NET&quot;</span>, <span style="color: #666666;">&quot;EPiServer&quot;</span>, <span style="color: #666666;">&quot;Umbraco&quot;</span>, <span style="color: #666666;">&quot;jQuery&quot;</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
	ddlCategories.<span style="color: #0000FF;">DataSource</span> <span style="color: #008000;">=</span> categories<span style="color: #008000;">;</span>
	ddlCategories.<span style="color: #0000FF;">DataBind</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Will give us.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">select</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ctl00$MainContent$ddlCategories&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;MainContent_ddlCategories&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;C#&quot;</span>&gt;</span>C#<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ASP.NET&quot;</span>&gt;</span>ASP.NET<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;EPiServer&quot;</span>&gt;</span>EPiServer<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Umbraco&quot;</span>&gt;</span>Umbraco<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jQuery&quot;</span>&gt;</span>jQuery<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">select</span>&gt;</span></pre></div></div>

<p>As you see &#8220;Please choose&#8221; is not there any more.</p>
<p>However if you set the AppendDataBoundItems property to true (default is false), the list items will be added before data binding is performed.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> OnLoad<span style="color: #000000;">&#40;</span>EventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">OnLoad</span><span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	...
	<span style="color: #0000FF;">ddlCategories</span>.<span style="color: #0000FF;">AppendDataBoundItems</span> <span style="color: #008000;">=</span> true<span style="color: #008000;">;</span>
	...
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The markup is now correct.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">select</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ctl00$MainContent$ddlCategories&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;MainContent_ddlCategories&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Please choose&quot;</span>&gt;</span>Please choose<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;C#&quot;</span>&gt;</span>C#<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;ASP.NET&quot;</span>&gt;</span>ASP.NET<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;EPiServer&quot;</span>&gt;</span>EPiServer<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Umbraco&quot;</span>&gt;</span>Umbraco<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jQuery&quot;</span>&gt;</span>jQuery<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">select</span>&gt;</span></pre></div></div>

<p><strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/08/episerver-web-controls-menulist-and-pagetree/" rel="bookmark" title="August 16, 2009">EPiServer web controls: MenuList and PageTree</a></li>
<li><a href="http://www.frederikvig.com/2010/03/starting-out-with-xslt-in-umbraco/" rel="bookmark" title="March 20, 2010">Starting out with XSLT in Umbraco</a></li>
<li><a href="http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/" rel="bookmark" title="May 14, 2010">EPiServer Custom Property with Custom Settings</a></li>
<li><a href="http://www.frederikvig.com/2010/02/adding-different-css-classes-when-using-the-episerver-pagetree/" rel="bookmark" title="February 28, 2010">Adding different CSS classes when using the EPiServer PageTree control</a></li>
<li><a href="http://www.frederikvig.com/2010/04/detecting-ajax-requests-on-the-server/" rel="bookmark" title="April 6, 2010">Detecting Ajax requests on the server</a></li>
</ul>
<p><!-- Similar Posts took 10.876 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/rH74n4qVdUE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/listcontrol-appenddatabounditems-and-databind/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/04/listcontrol-appenddatabounditems-and-databind/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=listcontrol-appenddatabounditems-and-databind</feedburner:origLink></item>
		<item>
		<title>Detecting Ajax requests on the server</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/QPvbReU-ViU/</link>
		<comments>http://www.frederikvig.com/2010/04/detecting-ajax-requests-on-the-server/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 19:27:47 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1222</guid>
		<description><![CDATA[If you use jQuery or ASP.NET AJAX you can easily detect Ajax requests on the server by simply checking for the HTTP_X_REQUESTED_WITH HTTP Header. Both libraries automatically add this to the HTTP Header when they send a request. Here&#8217;s a little code snippet that returns true for Ajax requests. public static bool IsAjaxRequest&#40;&#41; &#123; return [...]]]></description>
			<content:encoded><![CDATA[<p>If you use jQuery or ASP.NET AJAX you can easily detect Ajax requests on the server by simply checking for the HTTP_X_REQUESTED_WITH HTTP Header. Both libraries automatically add this to the HTTP Header when they send a request.</p>
<p>Here&#8217;s a little code snippet that returns true for Ajax requests.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">bool</span> IsAjaxRequest<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> HttpContext.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Request</span>.<span style="color: #0000FF;">Headers</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;X-Requested-With&quot;</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span> <span style="color: #008000;">&amp;&amp;</span> HttpContext.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Request</span>.<span style="color: #0000FF;">Headers</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;X-Requested-With&quot;</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">==</span> <span style="color: #666666;">&quot;XMLHttpRequest&quot;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The cool thing about this is that you can use this in a base page or a HTTP Module, and customize the returned data. You could for instance return JSON or XML.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Web.UI</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> MyWebApplication
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> BasePage <span style="color: #008000;">:</span> Page
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> OnInit<span style="color: #000000;">&#40;</span>EventArgs e<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">OnInit</span><span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>Helper.<span style="color: #0000FF;">IsAjaxRequest</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                Response.<span style="color: #0000FF;">Headers</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Response.<span style="color: #0000FF;">ContentType</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;application/json&quot;</span><span style="color: #008000;">;</span>
                Response.<span style="color: #0000FF;">Write</span><span style="color: #000000;">&#40;</span>json output<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Response.<span style="color: #0000FF;">End</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p><strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2010/05/creating-a-contact-form-with-asp-net-mvc/" rel="bookmark" title="May 13, 2010">Creating a contact form with ASP.NET MVC</a></li>
<li><a href="http://www.frederikvig.com/2010/02/getting-the-page-and-episerver-currentpage-object-from-httpcontext/" rel="bookmark" title="February 20, 2010">Getting the Page and EPiServer CurrentPage object from HttpContext</a></li>
<li><a href="http://www.frederikvig.com/2009/05/aspnet-validation-and-jquery/" rel="bookmark" title="May 21, 2009">ASP.NET Validation and jQuery</a></li>
<li><a href="http://www.frederikvig.com/2009/09/creating-a-custom-episerver-paging-control/" rel="bookmark" title="September 20, 2009">Creating a Custom EPiServer Paging Control</a></li>
<li><a href="http://www.frederikvig.com/2009/12/part-8-preparing-for-launch-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 24, 2009">Part 8: Preparing for launch – Create an EPiServer site from scratch</a></li>
</ul>
<p><!-- Similar Posts took 12.408 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/QPvbReU-ViU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/detecting-ajax-requests-on-the-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/04/detecting-ajax-requests-on-the-server/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=detecting-ajax-requests-on-the-server</feedburner:origLink></item>
		<item>
		<title>Creating a simple image gallery with EPiServer</title>
		<link>http://feedproxy.google.com/~r/frederikvig/~3/NRwu0YahFGI/</link>
		<comments>http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 12:23:45 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1213</guid>
		<description><![CDATA[If you have visited sites like Smashing Magazine chances are high that you&#8217;ve seen articles with titles like &#8220;40 most used jQuery plugins&#8221;, or something similar to that. I find articles like that to be great for inspiration. You usually have a section for galleries/slideshows/carousels etc, I thought I&#8217;d implement one of those plugins in [...]]]></description>
			<content:encoded><![CDATA[<p>If you have visited sites like <a href="http://www.smashingmagazine.com/">Smashing Magazine</a> chances are high that you&#8217;ve seen articles with titles like &#8220;40 most used jQuery plugins&#8221;, or something similar to that. I find articles like that to be great for inspiration. You usually have a section for galleries/slideshows/carousels etc, I thought I&#8217;d implement one of those plugins in EPiServer, just to show you have simple it is.</p>
<h3>jQuery GalleryView</h3>
<p><a href="http://plugins.jquery.com/project/galleryview">GalleryView</a> is a jQuery plugin for displaying a gallery of images. The plugin is easy to use and setup, simply <a href="http://plugins.jquery.com/files/galleryview-2.1.1.zip">download the files</a> and include them in your project.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/gallery/galleryview.png" alt="jQuery GalleryView files in Visual Studio" />
</p>
<h3>Dynamic Content</h3>
<p>We&#8217;re going to create a dynamic content plugin that our editors can use to add a gallery to a page. Start by creating a new class and give it the name Gallery.cs. Make sure it implements the <a href="http://sdk.episerver.com/library/cms6/html/AllMembers_T_EPiServer_DynamicContent_IDynamicContent.htm">IDynamicContent interface</a>.</p>
<p>I&#8217;m using the custom property <a href="https://www.coderesort.com/p/epicode/wiki/FolderBrowserProperty">Folder Browser Property</a> from EPiCode to let the editor choose a root folder for the images. I&#8217;ve also added a user control for displaying the result to the users of the site.</p>
<p>The complete class looks like this.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Core</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.DynamicContent</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">Meridium.FolderBrowserProperty.Web.UI.PropertyControls</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0600FF;">Public</span>.<span style="color: #0000FF;">Plugins</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Gallery <span style="color: #008000;">:</span> IDynamicContent
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">protected</span> PropertyFolderBrowser MediaFolder<span style="color: #008000;">;</span> 
&nbsp;
        <span style="color: #0600FF;">public</span> Gallery<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            MediaFolder <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> PropertyFolderBrowser <span style="color: #000000;">&#123;</span>Name <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Media folder&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">UI</span></span>.<span style="color: #0000FF;">Control</span> GetControl<span style="color: #000000;">&#40;</span>PageBase hostPage<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            var gallery <span style="color: #008000;">=</span> hostPage.<span style="color: #0000FF;">LoadControl</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;~/Templates/Public/Units/Gallery.ascx&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0600FF;">as</span> Units.<span style="color: #0000FF;">Gallery</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>gallery <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> null<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            gallery.<span style="color: #0000FF;">Root</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">State</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">return</span> gallery<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> PropertyDataCollection Properties
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> <span style="color: #008000;">new</span> PropertyDataCollection <span style="color: #000000;">&#123;</span>MediaFolder<span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Render<span style="color: #000000;">&#40;</span>PageBase hostPage<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">return</span> <span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Empty</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">bool</span> RendersWithControl
        <span style="color: #000000;">&#123;</span>
            get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> true<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> State
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> MediaFolder.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            set
            <span style="color: #000000;">&#123;</span>
                MediaFolder.<span style="color: #0000FF;">ParseToSelf</span><span style="color: #000000;">&#40;</span>value<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>After you register it in episerver.config (web.config for CMS 5), you&#8217;ll be able to choose it in your sites <a href="http://en.wikipedia.org/wiki/WYSIWYG">WYSIWYG-editor</a>.</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;dynamicContent<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;controls<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      ...
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Gallery&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Gallery&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;EPiServer.Templates.Public.Plugins.Gallery, EPiServer.Templates.Public&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/controls<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dynamicContent<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>
<img src="http://www.frederikvig.com/wp-content/uploads/gallery/dynamic-content.png" alt="Gallery Dynamic Content in EPiServer Edit Mode" />
</p>
<h3>Gallery View Mode</h3>
<p>The user control that displays the actual gallery to the users of the site.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;%</span>@ Control Language<span style="color: #008000;">=</span><span style="color: #666666;">&quot;C#&quot;</span> AutoEventWireup<span style="color: #008000;">=</span><span style="color: #666666;">&quot;false&quot;</span> CodeBehind<span style="color: #008000;">=</span><span style="color: #666666;">&quot;Gallery.ascx.cs&quot;</span> Inherits<span style="color: #008000;">=</span><span style="color: #666666;">&quot;EPiServer.Templates.Public.Units.Gallery&quot;</span> <span style="color: #008000;">%&gt;</span>
<span style="color: #008000;">&lt;</span>link href<span style="color: #008000;">=</span><span style="color: #666666;">&quot;/galleryview-2.1.1/galleryview.css&quot;</span> rel<span style="color: #008000;">=</span><span style="color: #666666;">&quot;stylesheet&quot;</span> type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/css&quot;</span> <span style="color: #008000;">/&gt;</span>
<span style="color: #008000;">&lt;</span>script type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/javascript&quot;</span> src<span style="color: #008000;">=</span><span style="color: #666666;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;</span><span style="color: #008000;">&gt;&lt;/</span>script<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;</span>script src<span style="color: #008000;">=</span><span style="color: #666666;">&quot;/galleryview-2.1.1/jquery.easing.1.3.js&quot;</span> type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/javascript&quot;</span><span style="color: #008000;">&gt;&lt;/</span>script<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;</span>script src<span style="color: #008000;">=</span><span style="color: #666666;">&quot;/galleryview-2.1.1/jquery.timers-1.2.js&quot;</span> type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/javascript&quot;</span><span style="color: #008000;">&gt;&lt;/</span>script<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;</span>script src<span style="color: #008000;">=</span><span style="color: #666666;">&quot;/galleryview-2.1.1/jquery.galleryview-2.1.1.js&quot;</span> type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/javascript&quot;</span><span style="color: #008000;">&gt;&lt;/</span>script<span style="color: #008000;">&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>asp<span style="color: #008000;">:</span>Repeater runat<span style="color: #008000;">=</span><span style="color: #666666;">&quot;server&quot;</span> ID<span style="color: #008000;">=</span><span style="color: #666666;">&quot;rptGallery&quot;</span><span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>HeaderTemplate<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;</span>ul <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;gallery&quot;</span><span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;/</span>HeaderTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>ItemTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;%</span><span style="color: #008080;"># SetImage(Container.DataItem) %&gt;</span>
&nbsp;
        <span style="color: #008000;">&lt;</span>li<span style="color: #008000;">&gt;&lt;</span>img src<span style="color: #008000;">=</span><span style="color: #666666;">&quot;&lt;%# Image.VirtualPath %&gt;&quot;</span> alt<span style="color: #008000;">=</span><span style="color: #666666;">&quot;&lt;%# Image.Summary.Title %&gt;&quot;</span> <span style="color: #008000;">/&gt;</span>
            <span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;panel-overlay&quot;</span><span style="color: #008000;">&gt;</span>
				<span style="color: #008000;">&lt;</span>h3<span style="color: #008000;">&gt;&lt;</span>a href<span style="color: #008000;">=</span><span style="color: #666666;">&quot;&lt;%= Image.Summary.Dictionary[&quot;</span>Website<span style="color: #666666;">&quot;] %&gt;&quot;</span><span style="color: #008000;">&gt;&lt;%=</span> Image.<span style="color: #0000FF;">Summary</span>.<span style="color: #0000FF;">Author</span> <span style="color: #008000;">%&gt;&lt;/</span>a<span style="color: #008000;">&gt;&lt;/</span>h3<span style="color: #008000;">&gt;</span>
				<span style="color: #008000;">&lt;</span>p<span style="color: #008000;">&gt;&lt;%</span><span style="color: #008080;"># Image.Summary.Dictionary[&quot;Description&quot;] %&gt;&lt;/p&gt;</span>
			<span style="color: #008000;">&lt;/</span>div<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;/</span>li<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;/</span>ItemTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>FooterTemplate<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;/</span>ul<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;/</span>FooterTemplate<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;/</span>asp<span style="color: #008000;">:</span>Repeater<span style="color: #008000;">&gt;</span>
&nbsp;
<span style="color: #008000;">&lt;</span>script type<span style="color: #008000;">=</span><span style="color: #666666;">&quot;text/javascript&quot;</span><span style="color: #008000;">&gt;</span>
    $<span style="color: #000000;">&#40;</span><span style="color: #666666;">'.gallery'</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">galleryView</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#123;</span>
        panel_width<span style="color: #008000;">:</span> <span style="color: #FF0000;">800</span>,
        panel_height<span style="color: #008000;">:</span> <span style="color: #FF0000;">300</span>,
        frame_width<span style="color: #008000;">:</span> <span style="color: #FF0000;">100</span>,
        frame_height<span style="color: #008000;">:</span> <span style="color: #FF0000;">100</span>
    <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&lt;/</span>script<span style="color: #008000;">&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">EPiServer.Web.Hosting</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> EPiServer.<span style="color: #0000FF;">Templates</span>.<span style="color: #0600FF;">Public</span>.<span style="color: #0000FF;">Units</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">partial</span> <span style="color: #FF0000;">class</span> Gallery <span style="color: #008000;">:</span> UserControlBase
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Root
        <span style="color: #000000;">&#123;</span>
            get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">protected</span> UnifiedFile Image
        <span style="color: #000000;">&#123;</span>
            get<span style="color: #008000;">;</span> <span style="color: #0600FF;">private</span> set<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">protected</span> <span style="color: #FF0000;">string</span> SetImage<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> dataItem<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Image</span> <span style="color: #008000;">=</span> dataItem <span style="color: #0600FF;">as</span> UnifiedFile<span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">return</span> <span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Empty</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> OnLoad<span style="color: #000000;">&#40;</span>EventArgs e<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">OnLoad</span><span style="color: #000000;">&#40;</span>e<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">IsNullOrEmpty</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Root</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                return<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            var rootFolder <span style="color: #008000;">=</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Web</span></span>.<span style="color: #0000FF;">Hosting</span>.<span style="color: #0000FF;">HostingEnvironment</span>.<span style="color: #0000FF;">VirtualPathProvider</span>.<span style="color: #0000FF;">GetDirectory</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Root</span><span style="color: #000000;">&#41;</span> <span style="color: #0600FF;">as</span> UnifiedDirectory<span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>rootFolder <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                return<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">rptGallery</span>.<span style="color: #0000FF;">DataSource</span> <span style="color: #008000;">=</span> rootFolder.<span style="color: #0000FF;">Files</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">rptGallery</span>.<span style="color: #0000FF;">DataBind</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<h3>Result</h3>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/gallery/result.png" alt="The gallery in EPiServer View Mode" />
</p>
<h3>Note on Folder Browser Property</h3>
<p>I&#8217;ve added an EPiServer CMS 6 version of Folder Browser Property to EPiCode. </p>
<h4>Usage</h4>
<ol>
<li>SVN Checkout <a href="https://www.coderesort.com/svn/epicode/Meridium.FolderBrowserProperty/6.x/">https://www.coderesort.com/svn/epicode/Meridium.FolderBrowserProperty/6.x/</a> (requires registration on EPiCode)</li>
<li>Open up the project in Visual Studio and build</li>
<li>Copy Meridium.FolderBrowserProperty.dll to your sites bin folder (remember to add a reference in your Visual Studio project as well)</li>
<li>Create the folders &#8220;&lt;Site root&gt;\Meridium\FolderBrowserProperty\Dialogs&#8221;, and copy the file FolderBrowserDialog.aspx into it</li>
</ol>
<p>Hope this helps.<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/10/slideshare-dynamic-content/" rel="bookmark" title="October 25, 2009">SlideShare Dynamic Content</a></li>
<li><a href="http://www.frederikvig.com/2009/10/creating-an-episerver-plugin/" rel="bookmark" title="October 8, 2009">Creating an EPiServer Plugin</a></li>
<li><a href="http://www.frederikvig.com/2010/07/epicode-extensions-and-ambiguous-reference/" rel="bookmark" title="July 28, 2010">EPiCode.Extensions and ambiguous reference</a></li>
<li><a href="http://www.frederikvig.com/2009/07/asp-net-web-forms-and-jquery-thickbox-plugin/" rel="bookmark" title="July 13, 2009">ASP.NET web forms and jQuery Thickbox plugin</a></li>
<li><a href="http://www.frederikvig.com/2009/05/transparent-pngs/" rel="bookmark" title="May 5, 2009">Transparent PNGs</a></li>
</ul>
<p><!-- Similar Posts took 11.477 ms --></p>
<img src="http://feeds.feedburner.com/~r/frederikvig/~4/NRwu0YahFGI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=creating-a-simple-image-gallery-with-episerver</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
