<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Frederik Vig - ASP.NET developer &#187; EPiServer</title>
	<atom:link href="http://www.frederikvig.com/category/episerver/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.frederikvig.com</link>
	<description></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.1</generator>
		<item>
		<title>EPiCode.Extensions and ambiguous reference</title>
		<link>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</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 12.066 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/07/epicode-extensions-and-ambiguous-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EPiServer Developer Resources</title>
		<link>http://www.frederikvig.com/2010/05/episerver-developer-resources/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=episerver-developer-resources</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 18.943 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/05/episerver-developer-resources/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>EPiServer Custom Property with Custom Settings</title>
		<link>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</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.729 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/05/episerver-custom-property-with-custom-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a simple image gallery with EPiServer</title>
		<link>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</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 13.385 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/creating-a-simple-image-gallery-with-episerver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EPiServer File Manager and File Summary</title>
		<link>http://www.frederikvig.com/2010/04/episerver-file-manager-and-file-summary/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=episerver-file-manager-and-file-summary</link>
		<comments>http://www.frederikvig.com/2010/04/episerver-file-manager-and-file-summary/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 15:13:12 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1209</guid>
		<description><![CDATA[One hidden little feature that is nice to know about is the filesummary.config file. When you edit a file in EPiServer&#8217;s File Manager, you can edit the data for that file (simply right-click on the file and choose Edit File Summary). Which gives us this form. This is the standard form that comes with EPiServer. [...]]]></description>
			<content:encoded><![CDATA[<p>One hidden little feature that is nice to know about is the filesummary.config file. When you edit a file in EPiServer&#8217;s File Manager, you can edit the data for that file (simply right-click on the file and choose Edit File Summary).</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/FileSummary/edit-file-summary.png" alt="Edit File Summary in EPiServer Edit Mode" />
</p>
<p>Which gives us this form.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/FileSummary/edit-file-summary-form.png" alt="Edit File Summary in EPiServer Edit Mode form" />
</p>
<p>This is the standard form that comes with EPiServer.</p>
<h3>FileSummary.config</h3>
<p>We can easily change the form by editing FileSummary.config. If we open it in a source code editor, the code looks something like this.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;root</span> <span style="color: #000066;">xmlns:xforms</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2002/xforms&quot;</span> <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;model<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Author</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DocumentType</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Category</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Publisher</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Description</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/model<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;table</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_matrix&quot;</span> <span style="color: #000066;">border</span>=<span style="color: #ff0000;">&quot;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;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field2&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field1&quot;</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;margin-bottom: 10px;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Author<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:input</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;Author&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field2&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;episize240&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field13&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field6&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Publisher<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:input</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;Publisher&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field13&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;-1&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;episize240&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field12&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Type of document<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:select1</span> <span style="color: #000066;">appearance</span>=<span style="color: #ff0000;">&quot;full&quot;</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;DocumentType&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field12&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Whitepaper<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Whitepaper<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Technote<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Technote<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Manual<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Manual<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:select1<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field121&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Category<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:select</span> <span style="color: #000066;">appearance</span>=<span style="color: #ff0000;">&quot;full&quot;</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;Category&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field121&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Product3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xforms:select<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field14&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Description<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field8&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:textarea</span> <span style="color: #000066;">cols</span>=<span style="color: #ff0000;">&quot;37&quot;</span> <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;Description&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field14&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;-1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/table<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>A combination of XML , HTML and XForm for storing the data. To add a new property we simply need to update the markup a little. Lets start by adding a new element inside model and instance.</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;root</span> <span style="color: #000066;">xmlns:xforms</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2002/xforms&quot;</span> <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;model<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Author</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Website</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;DocumentType</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Category</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Publisher</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Description</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/instance<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/model<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...</pre></div></div>

<p>Notice that I&#8217;ve added the &lt;Website /&gt; tag. We also need to insert a new row in the table with a XForm input element.</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;tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;EP-tableCaptionCell&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;id_field31&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field30&quot;</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;margin-bottom: 10px;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Website<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;td</span> <span style="color: #000066;">valign</span>=<span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xforms:input</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;Website&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id_field31&quot;</span> <span style="color: #000066;">size</span>=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;episize240&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/td<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/tr<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>If we save and go back to Edit Mode and the File Manager, the form should look something like this.</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/FileSummary/edit-file-summary-form2.png" alt="Edit File Summary in EPiServer Edit Mode update form with website field" />
</p>
<p>For more information on XForm see: <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-5/EPiServer-CMS-5-R2-SP2/Developing-with-XForms/">Developing with XForms</a>.</p>
<h3>Accessing the data</h3>
<p>We can now access the property data by creating a new UnifiedFile instance of our file.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">var file <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;">GetFile</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;/Global/Images/Portrait Employees/Robert.jpg&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0600FF;">as</span> UnifiedFile<span style="color: #008000;">;</span></pre></div></div>

<p>When we type file. in Visual Strudio, we see that we have access to a few public properties. The one we&#8217;re interested in is the Summary property. </p>
<p>The Summary property exposes a IUnifiedSummary type, which gives us access to properties like Author, Comments, Category etc, and more importantly a Dictionary for accessing other properties we create (like Website).</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">file.<span style="color: #0000FF;">Summary</span>.<span style="color: #0000FF;">Dictionary</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Website&quot;</span><span style="color: #000000;">&#93;</span></pre></div></div>

<h3>Putting it all together</h3>
<p>Here is a simple example that shows a picture with a caption.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>div <span style="color: #FF0000;">class</span><span style="color: #008000;">=</span><span style="color: #666666;">&quot;featured&quot;</span><span style="color: #008000;">&gt;</span>
	<span style="color: #008000;">&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>p<span style="color: #008000;">&gt;</span>
		<span style="color: #008000;">&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;</span>
		<span style="color: #008000;">&lt;</span>em<span style="color: #008000;">&gt;&lt;%=</span> Image.<span style="color: #0000FF;">Summary</span>.<span style="color: #0000FF;">Dictionary</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;Description&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">%&gt;&lt;/</span>em<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>div<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;">public</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: #0600FF;">override</span> <span style="color: #0600FF;">void</span> OnLoad<span style="color: #000000;">&#40;</span><span style="color: #000000;">System</span>.<span style="color: #0000FF;">EventArgs</span> 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;">this</span>.<span style="color: #0000FF;">Image</span> <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;">GetFile</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;/Global/Images/Portrait Employees/Robert.jpg&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0600FF;">as</span> UnifiedFile<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>A little CSS for making it look pretty.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.featured</span> p
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span>.7<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> Georgia<span style="color: #00AA00;">,</span> <span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1em</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.3em</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.featured</span>
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">40</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.featured</span> p a
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">italic</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.featured</span> p em
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">2px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#e3c887</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>And here&#8217;s the result!</p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/FileSummary/result.png" alt="Result with CSS" />
</p>
<p><strong>Related Posts:</strong>
<ul class="similar-posts">
<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>
<li><a href="http://www.frederikvig.com/2009/12/part-3-creating-the-start-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 10, 2009">Part 3: Creating the start page – Create an EPiServer site from scratch</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/2010/05/episerver-developer-resources/" rel="bookmark" title="May 27, 2010">EPiServer Developer Resources</a></li>
<li><a href="http://www.frederikvig.com/2009/09/custom-property-shareit/" rel="bookmark" title="September 7, 2009">Custom Property: ShareIt</a></li>
</ul>
<p><!-- Similar Posts took 84.227 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/04/episerver-file-manager-and-file-summary/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Updated all EPiServer posts for EPiServer CMS 6</title>
		<link>http://www.frederikvig.com/2010/03/updated-all-episerver-posts-for-episerver-cms-6/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=updated-all-episerver-posts-for-episerver-cms-6</link>
		<comments>http://www.frederikvig.com/2010/03/updated-all-episerver-posts-for-episerver-cms-6/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 17:20:16 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1190</guid>
		<description><![CDATA[I&#8217;ve done a little spring cleaning, updating all EPiServer posts to now use EPiServer CMS 6, and making sure the code still works. I&#8217;ve also added the code for ShareIt and SlideShare Dynamic Content to EPiCode, and updated EPiCode.Extensions. They&#8217;re all now built against EPiServer CMS 6. My current projects on EPiCode EPiCode.Extensions FV.DynamicSlideShare FV.ShareIt [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve done a little spring cleaning, updating all EPiServer posts to now use EPiServer CMS 6, and making sure the code still works. I&#8217;ve also added the code for <a href="http://www.frederikvig.com/2009/09/custom-property-shareit/">ShareIt</a> and <a href="http://www.frederikvig.com/2009/10/slideshare-dynamic-content/">SlideShare Dynamic Content</a> to <a href="https://www.coderesort.com/p/epicode/wiki/WikiStart">EPiCode</a>, and updated <a href="https://www.coderesort.com/p/epicode/wiki/Extensions">EPiCode.Extensions</a>. They&#8217;re all now built against EPiServer CMS 6. </p>
<h3>My current projects on EPiCode</h3>
<ul>
<li><a href="https://www.coderesort.com/p/epicode/wiki/Extensions">EPiCode.Extensions</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/FV.DynamicSlideShare">FV.DynamicSlideShare</a></li>
<li><a href="https://www.coderesort.com/p/epicode/wiki/FV.ShareIt">FV.ShareIt</a></li>
<li><a href="https://www.coderesort.com/svn/epicode/JungleLand/trunk/">JungleLand</a> (source code)</li>
</ul>
<p>The <a href="http://www.frederikvig.com/2009/12/introduction-create-an-episerver-site-from-scratch/">Create an EPiServer site from scratch series</a> is also updated for EPiServer CMS 6.</p>
<p>If you find any errors or broken links, please post a comment, or email me directly: <a href="mailto:frederikvig@hotmail.com">frederikvig@hotmail.com</a>. Thanks!<strong>Related Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.frederikvig.com/2009/09/custom-property-shareit/" rel="bookmark" title="September 7, 2009">Custom Property: ShareIt</a></li>
<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/2009/12/part-4-creating-the-standard-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 13, 2009">Part 4: Creating the standard page – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2010/07/specify-a-canonical-domain-name-for-your-site-with-iis-7/" rel="bookmark" title="July 13, 2010">Specify a canonical domain name for your site with IIS 7</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 20.183 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/03/updated-all-episerver-posts-for-episerver-cms-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding different CSS classes when using the EPiServer PageTree control</title>
		<link>http://www.frederikvig.com/2010/02/adding-different-css-classes-when-using-the-episerver-pagetree/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adding-different-css-classes-when-using-the-episerver-pagetree</link>
		<comments>http://www.frederikvig.com/2010/02/adding-different-css-classes-when-using-the-episerver-pagetree/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 23:26:49 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[Code Snippet]]></category>
		<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1101</guid>
		<description><![CDATA[Another little quick tip. I was browsing the EPiServer World forum and came across a common question. by David Green I am using the EpiServer:PageTree control to generate a nested &#60;ul&#62;&#60;li&#62; list in the format below. However I am also using a dropdown menu system called UDM which requires that the class and id &#8220;udm&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Another little quick tip. I was browsing the <a href="http://world.episerver.com/Forum/">EPiServer World forum</a> and came across a common <a href="http://world.episerver.com/Templates/Forum/Pages/Thread.aspx?id=37261&#038;epslanguage=en">question</a>. </p>
<blockquote><p>
<cite>by <a href="http://world.episerver.com/System/Users-and-profiles/Community-Profile-Card/?encryptedcurrentid=gH4Eg3C9NkmFoe0X/KzaZGdD9Rc1oiLE">David Green</a></cite></p>
<p>I am using the EpiServer:PageTree control to generate a nested &lt;ul&gt;&lt;li&gt; list in the format below.</p>
<p>However I am also using a dropdown menu system called UDM which requires that the class and id &#8220;udm&#8221; are on the first &lt;ul&gt; tag.</p>
</blockquote>
<p>The container object of the PageTree controller exposes the Indent property that we can use for this. Below is a simple example of how to add a CSS class to the first ul in your list (code is based on SubMenu.ascx from the EPiServer Public Templates package).</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> EnableViewState<span style="color: #008000;">=</span><span style="color: #666666;">&quot;false&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;SubMenu.ascx.cs&quot;</span> Inherits<span style="color: #008000;">=</span><span style="color: #666666;">&quot;EPiServer.Templates.Public.Units.Static.SubMenu&quot;</span> <span style="color: #008000;">%&gt;</span>
<span style="color: #008000;">&lt;</span>EPiServer<span style="color: #008000;">:</span>PageTree ShowRootPage<span style="color: #008000;">=</span><span style="color: #666666;">&quot;false&quot;</span> 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;Menu&quot;</span><span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>IndentTemplate<span style="color: #008000;">&gt;</span>
        <span style="color: #008000;">&lt;</span>ul <span style="color: #008000;">&lt;%</span><span style="color: #008080;"># AddCssClassToFirstLevel(Container.Indent, &quot;udm&quot;) %&gt;&gt;</span>
    <span style="color: #008000;">&lt;/</span>IndentTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>ItemHeaderTemplate<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>ItemHeaderTemplate<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>EPiServer<span style="color: #008000;">:</span>Property PropertyName<span style="color: #008000;">=</span><span style="color: #666666;">&quot;PageLink&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>ItemTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>SelectedItemTemplate<span style="color: #008000;">&gt;</span>
	<span style="color: #008000;">&lt;</span>EPiServer<span style="color: #008000;">:</span>Property CssClass<span style="color: #008000;">=</span><span style="color: #666666;">&quot;selected&quot;</span> PropertyName<span style="color: #008000;">=</span><span style="color: #666666;">&quot;PageName&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>SelectedItemTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>ItemFooterTemplate<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>ItemFooterTemplate<span style="color: #008000;">&gt;</span>
    <span style="color: #008000;">&lt;</span>UnindentTemplate<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>UnindentTemplate<span style="color: #008000;">&gt;</span>
<span style="color: #008000;">&lt;/</span>EPiServer<span style="color: #008000;">:</span>PageTree<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</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: #0600FF;">Public</span>.<span style="color: #0000FF;">Units</span>.<span style="color: #0600FF;">Static</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> SubMenu <span style="color: #008000;">:</span> UserControlBase
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">private</span> MenuList _menuList<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
        <span style="color: #008080; font-style: italic;">/// Gets or sets the data source for this control</span>
        <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
        <span style="color: #0600FF;">public</span> MenuList MenuList
        <span style="color: #000000;">&#123;</span>
            get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> _menuList<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
            set <span style="color: #000000;">&#123;</span> _menuList <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</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><span style="color: #000000;">System</span>.<span style="color: #0000FF;">EventArgs</span> 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>MenuList <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>
            Menu.<span style="color: #0000FF;">PageLink</span> <span style="color: #008000;">=</span> MenuList.<span style="color: #0000FF;">OpenTopPage</span><span style="color: #008000;">;</span>
            Menu.<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>
&nbsp;
        <span style="color: #0600FF;">protected</span> <span style="color: #FF0000;">string</span> AddCssClassToFirstLevel<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> level, <span style="color: #FF0000;">string</span> cssClassName<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>level <span style="color: #008000;">==</span> <span style="color: #FF0000;">1</span><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;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;class=<span style="color: #008080; font-weight: bold;">\&quot;</span>{0}<span style="color: #008080; font-weight: bold;">\&quot;</span>&quot;</span>, cssClassName<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</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>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>We can easily add more complex logic. We also have access to the HasChildren property, which tells us if the active page has any children.</p>
<p>Hope this helps.<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/2009/12/part-4-creating-the-standard-page-create-an-episerver-site-from-scratch/" rel="bookmark" title="December 13, 2009">Part 4: Creating the standard page – Create an EPiServer site from scratch</a></li>
<li><a href="http://www.frederikvig.com/2009/11/the-selectedtemplate-and-duplicate-code/" rel="bookmark" title="November 11, 2009">The SelectedTemplate and duplicate code</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/2010/04/listcontrol-appenddatabounditems-and-databind/" rel="bookmark" title="April 19, 2010">ListControl AppendDataBoundItems and DataBind</a></li>
</ul>
<p><!-- Similar Posts took 13.708 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/02/adding-different-css-classes-when-using-the-episerver-pagetree/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Getting the Page and EPiServer CurrentPage object from HttpContext</title>
		<link>http://www.frederikvig.com/2010/02/getting-the-page-and-episerver-currentpage-object-from-httpcontext/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=getting-the-page-and-episerver-currentpage-object-from-httpcontext</link>
		<comments>http://www.frederikvig.com/2010/02/getting-the-page-and-episerver-currentpage-object-from-httpcontext/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 10:25:37 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[EPiServer]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1092</guid>
		<description><![CDATA[Just a little quick tip when needing to use either the Page object or the EPiServer CurrentPage object from a class file. HttpContext.Current will give you access to the current request, what we can do is cast HttpContext.Current.Handler (since Page implements the IHttpHandler interface) to System.Web.UI.Page. var page = HttpContext.Current.Handler as System.Web.UI.Page; &#160; if &#40;page [...]]]></description>
			<content:encoded><![CDATA[<p>Just a little quick tip when needing to use either the Page object or the EPiServer CurrentPage object from a class file. HttpContext.Current will give you access to the current request, what we can do is cast HttpContext.Current.Handler (since Page implements the IHttpHandler interface) to System.Web.UI.Page.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">var page <span style="color: #008000;">=</span> HttpContext.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Handler</span> <span style="color: #0600FF;">as</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">UI</span></span>.<span style="color: #0000FF;">Page</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>page <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: #008080; font-style: italic;">// do something with the page object</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>We can take this a step further and cast it to EPiServer.PageBase which gives us access to the CurrentPage object.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> PageData CurrentPage
<span style="color: #000000;">&#123;</span>
    get
    <span style="color: #000000;">&#123;</span>
	var page <span style="color: #008000;">=</span> HttpContext.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Handler</span> <span style="color: #0600FF;">as</span> EPiServer.<span style="color: #0000FF;">PageBase</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>page <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;
	<span style="color: #0600FF;">return</span> page.<span style="color: #0000FF;">CurrentPage</span><span style="color: #008000;">;</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/04/detecting-ajax-requests-on-the-server/" rel="bookmark" title="April 6, 2010">Detecting Ajax requests on the server</a></li>
<li><a href="http://www.frederikvig.com/2009/12/extending-pagedata-with-some-cool-html-helpers/" rel="bookmark" title="December 8, 2009">Extending PageData with some cool Html Helpers</a></li>
<li><a href="http://www.frederikvig.com/2009/05/episerver-extension-methods/" rel="bookmark" title="May 4, 2009">EPiServer Extension Methods</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/09/creating-a-custom-episerver-paging-control/" rel="bookmark" title="September 20, 2009">Creating a Custom EPiServer Paging Control</a></li>
</ul>
<p><!-- Similar Posts took 11.531 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/02/getting-the-page-and-episerver-currentpage-object-from-httpcontext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2010 EPiServer Snippets</title>
		<link>http://www.frederikvig.com/2010/02/visual-studio-2010-episerver-snippets/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=visual-studio-2010-episerver-snippets</link>
		<comments>http://www.frederikvig.com/2010/02/visual-studio-2010-episerver-snippets/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:38:06 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[EPiServer]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1079</guid>
		<description><![CDATA[I finally got my hands on a copy of Visual Studio 2010 RC1! After playing around a bit, I stumbled across the new snippet functionality in Visual Studio 2010. You can now use snippets in the markup files as well (in previous versions you could only use the snippet functionality in code files like class/interfaces/code-behind [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got my hands on a copy of Visual Studio 2010 RC1! After playing around a bit, I stumbled across the new snippet functionality in Visual Studio 2010. You can now use snippets in the markup files as well (in previous versions you could only use the snippet functionality in code files like class/interfaces/code-behind files etc). This is very cool, and Microsoft has even included a few snippets for their ASP.NET controls and for HTML elements like: a, table, img, div etc. Quite a time saver! </p>
<p>To test the snippets out, simply type the shortcut (eg. &#8216;a&#8217; or &#8216;table&#8217;) and press tab. </p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/VS2010/table.png" alt="Visual Studio 2010 table snippet" /></p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/VS2010/table-after-tab.png" alt="Visual Studio 2010 table snippet" /></p>
<p>This is a simple, but very cool feature. Imaging all the typing you can get rid off! </p>
<h3>Creating your own snippets</h3>
<p>In Visual Studio 2010, under the Tools menu, you&#8217;ll find the Code Snippets Manager (ctrl+k, ctrl+b).  </p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/VS2010/snippets-manager.png" alt="Visual Studio 2010 Code Snippets Manager" /></p>
<p>Here you can add new folders that contain your custom snippets, or check out the other snippets added by Microsoft. You&#8217;ll also see the path to the snippets folder (C:\Program Files (x86)\Microsoft Visual Studio 10.0\Web\Snippets\HTML\1033\ in my case). If you open up that folder in Windows Explorer you should see at least two folders there, ASP.NET and HTML. Inside both of these folders you&#8217;ll find the snippets for the ASP.NET web controls and for HTML elements. We can open up one of the files and take a look at 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;CodeSnippet</span> <span style="color: #000066;">Format</span>=<span style="color: #ff0000;">&quot;1.1.0&quot;</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Header<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>image<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Microsoft Corporation<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>image<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;AlternativeShortcuts<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imagebutton<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Shortcut</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;image&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>asp:image<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Shortcut</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;imagebutton&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>asp:imagebutton<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/AlternativeShortcuts<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Markup snippet for a control that contains an image<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SnippetTypes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Expansion<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SnippetTypes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Header<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Snippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Literal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ID<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imageurl<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ID<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ToolTip<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imageurl<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ToolTip<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>imageurl<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Literal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Code</span> <span style="color: #000066;">Language</span>=<span style="color: #ff0000;">&quot;html&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #339933;">&lt;![CDATA[&lt;asp:$shortcut$ imageurl=&quot;$imageurl$&quot; runat=&quot;server&quot; /&gt;$end$]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Code<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Snippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CodeSnippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Very easy and readable XML markup, that we easily can tweak to our needs. Say we&#8217;re working on a project where 90% of the tables we create should have a class of &#8220;products&#8221;. Lets create a snippet for this, so that we don&#8217;t have to type the same thing every time. </p>
<p>Create a new snippet called table-products.snippet, open it up in your favorite code editor and add this 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;CodeSnippet</span> <span style="color: #000066;">Format</span>=<span style="color: #ff0000;">&quot;1.1.0&quot;</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Header<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>table<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Frederik Vig<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>tablep<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Shortcut<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Markup snippet for a table with class products<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SnippetTypes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Expansion<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SurroundsWith<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SnippetType<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SnippetTypes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Header<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Snippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Literal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ID<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>cellspacing<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ID<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ToolTip<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>cellspacing<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ToolTip<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Literal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Code</span> <span style="color: #000066;">Language</span>=<span style="color: #ff0000;">&quot;html&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #339933;">&lt;![CDATA[&lt;table cellspacing=&quot;$cellspacing$&quot; class=&quot;products&quot;&gt;</span>
<span style="color: #339933;">    &lt;tr&gt;</span>
<span style="color: #339933;">        &lt;td&gt;$selected$$end$&lt;/td&gt;</span>
<span style="color: #339933;">    &lt;/tr&gt;</span>
<span style="color: #339933;">&lt;/table&gt;]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Code<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Snippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CodeSnippet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>I&#8217;ve saved table-products.snippet directly in the HTML snippet folder (C:\Program Files (x86)\Microsoft Visual Studio 10.0\Web\Snippets\HTML\1033\HTML in my case), but you can save it anywhere, just remember to add the snippet folder with the Code Snippets Manager in Visual Studio. </p>
<p>We can now test the snippet by typing tablep and pressing tab.</p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/VS2010/tablep.png" alt="Visual Studio 2010 table products snippet" /></p>
<p>
<img src="http://www.frederikvig.com/wp-content/uploads/VS2010/tablep-after-tab.png" alt="Visual Studio 2010 table products snippet" />
</p>
<p>Simple example, I know, but you get the idea!.</p>
<h3>EPiServer</h3>
<p>Naturally, one of the first things I did was add the <a href="http://www.frederikvig.com/2009/07/episerver-web-controls-property/">EPiServer Property web control</a> to the snippet manager <img src='http://www.frederikvig.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . This turned out to be very easy! So I continued on adding snippets for the other EPiServer web controls as well. Here is the list of snippets with their shortcut.</p>
<ul>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_Calendar.htm">EPiServer Calendar</a> &#8211; shortcut: ec</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_CategoryDataSource.htm">EPiServer CategoryDataSource</a> &#8211; shortcut: ecd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_FileSystemDataSource.htm">EPiServer FileSystemDataSource</a> &#8211; shortcut: efsd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_LanguageDataSource.htm">EPiServer LanguageDataSource</a> &#8211; shortcut: eld</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_MembershipUserDataSource.htm">EPiServer MembershipUserDataSource</a> &#8211; shortcut: emud</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_MenuList.htm">EPiServer MenuList</a> &#8211; shortcut: eml</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_NewsList.htm">EPiServer NewsList</a> &#8211; shortcut: enl</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_OnPageEditControl.htm">EPiServer OnPageEditControl</a> &#8211; shortcut: eopec</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageDataSource.htm">EPiServer PageDataSource</a> &#8211; shortcut: epd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageDefinitionDataSource.htm">EPiServer PageDefinitionDataSource</a> &#8211; shortcut: epdd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageDefinitionTypeDataSource.htm">EPiServer PageDefinitionTypeDataSource</a> &#8211; shortcut: epdtd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageList.htm">EPiServer PageList</a> &#8211; shortcut: epl</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageListData.htm">EPiServer PageListData</a> &#8211; shortcut: epld</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageTree.htm">EPiServer PageTree</a> &#8211; shortcut: ept</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageTreeData.htm">EPiServer PageTreeData</a> &#8211; shortcut: eptd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PageVersionDataSource.htm">EPiServer PageVersionDataSource</a> &#8211; shortcut: epvd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_Property.htm">EPiServer Property</a> &#8211; shortcut: ep</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_PropertyCriteriaControl.htm">EPiServer PropertyCriteriaControl</a> &#8211; shortcut: epcc</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_SearchDataSource.htm">EPiServer SearchDataSource</a> &#8211; shortcut: esd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_SoftLinkDataSource.htm">EPiServer SoftLinkDataSource</a> &#8211; shortcut: esld</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_SubscriptionDataSource.htm">EPiServer SubscriptionDataSource</a> &#8211; shortcut: esds</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_TabDefinitionDataSource.htm">EPiServer TabDefinitionDataSource</a> &#8211; shortcut: etdd</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_ThemeImage.htm">EPiServer ThemeImage</a> &#8211; shortcut: eti</li>
<li><a href="http://sdk.episerver.com/library/cms6/html/T_EPiServer_Web_WebControls_Translate.htm">EPiServer Translate</a> &#8211; shortcut: et</li>
</ul>
<p><a href="http://www.frederikvig.com/wp-content/uploads/VS2010/EPiServer-VS2010-Snippets.zip">Download the snippets</a></p>
<p> <strong>Related Posts:</strong>
<ul class="similar-posts">
<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/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/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/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/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 13.778 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/02/visual-studio-2010-episerver-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EPiServer code walkthrough #1 &#8211; 404 handler</title>
		<link>http://www.frederikvig.com/2010/01/episerver-code-walkthrough-1-404-handler/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=episerver-code-walkthrough-1-404-handler</link>
		<comments>http://www.frederikvig.com/2010/01/episerver-code-walkthrough-1-404-handler/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:10:11 +0000</pubDate>
		<dc:creator>Frederik Vig</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[EPiServer]]></category>
		<category><![CDATA[EPiServer code walkthrough]]></category>

		<guid isPermaLink="false">http://www.frederikvig.com/?p=1038</guid>
		<description><![CDATA[This is the first post in a new series called &#8220;EPiServer code walkthrough&#8221;. What I&#8217;ll do is go through one new EPiServer module in each post. Writing a little about what it does, learn by reading its code, and hopefully contributing a little back to the project, if I see any bugs or harmful/unnecessary code [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first post in a new series called &#8220;EPiServer code walkthrough&#8221;. What I&#8217;ll do is go through one new EPiServer module in each post. Writing a little about what it does, learn by reading its code, and  hopefully contributing a little back to the project, if I see any bugs or harmful/unnecessary code that is <img src='http://www.frederikvig.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . </p>
<p>I&#8217;m a firm believer that reading code helps you become a better developer. There are lots of modules even I just recently came across, that I didn&#8217;t know existed just a few weeks back. I think I&#8217;m not the only one, especially since they are spread around on various blogs, <a href="http://www.codeplex.com/">CodePlex</a>, <a href="https://www.coderesort.com/p/epicode/wiki/WikiStart">EPiCode</a> and other places. They all contain valuable code that we as EPiServer developers should read.</p>
<p>I&#8217;m starting with a module I personally have not used much before, but that I know a lot of people have used in their projects: the <a href="https://www.coderesort.com/p/epicode/wiki/404Handler">custom 404 handler</a>. </p>
<blockquote><p>
<cite>From the project wiki page</cite></p>
<p>This module has a more advanced url redirect feature than the built-in shortcut url feature in EPiServer. It handles extensions and querystring parameters too. If you have a lot of 404 errors in your logs, you can use this to redirect the user to the correct page. Especially useful if you move templates or pages around, or have just installed EPiServer and have a lot of old urls that is no longer available.</p>
</blockquote>
<p><a href="https://www.coderesort.com/p/epicode/wiki/404Handler">404 handlers wiki page</a> explains in detail what you need to do to install the module, so I&#8217;m not going to repeat it here. Instead we&#8217;ll take a look at the code. </p>
<p>Start by doing a SVN checkout of the source code (the svn url is https://www.coderesort.com/svn/epicode/BVNetwork.404Handler/5.x/).</p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/EPiServer-code-walkthrough/404handler/checkout.png" alt="SVN checkout of 404 handler" /></p>
<p>When opening up the BVNetwork.404Handler folder you&#8217;ll see a readme.txt file explaining the purpose of the module, installation, configuration etc. This is something I like! Not everyone reads the wiki page, and we as developers are especially lazy when it comes to reading documentation. Having a readme.txt with everything you need makes this so much easier, and gives the module author less support questions to answer. When using a new module, always make sure to read the documentation before asking the author questions. Saves both parties time <img src='http://www.frederikvig.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Lets open up BVNetwork.404Handler.csproj in Visual Studio.</p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/EPiServer-code-walkthrough/404handler/visual-studio-project-structure.png" alt="404 handler project structure in Visual Studio" /></p>
<p>As you can see the project is structured pretty nice, with good separations between the different parts. Very good that the project uses languages files, and that they&#8217;ve included them for five different languages. Not all modules use the language files, and if they do, they seldom have any more than one update-to-date English language file. Kudos for this. </p>
<p>What I don&#8217;t like is the missing fnf_logo.gif image file in the Images folder. A quick search in Visual Studio shows that this file is no longer in use, and should therefore be removed from the project. A missing image file is not the end of the world, and I know people make mistakes/forget to commit all their files, but this can be very annoying and even lead to a lot of work for other developers using your code or taking over a project. </p>
<p>Always make sure that your project builds on other computers than your own. I recommend manually setting up the project on preferably a new computer to see that everything works as expected, you can also use the same computer, but make sure to do the normal process a new developer would use when setting up the project (new checkout etc). Especially on larger projects that have quite a few things to setup you should do this. You&#8217;ll also receive some valuable feedback if your setup process is to complex (again on larger projects this happens quite frequently). Another thing you should use is a <a href="http://en.wikipedia.org/wiki/Continuous_integration">build server</a>. There are <a href="http://www.jetbrains.com/teamcity/">quite</a> a <a href="http://cruisecontrol.sourceforge.net/">few</a> out there, I know CodeResort just added <a href="http://bitten.edgewall.org/">Bitten</a> as their build server for CodeResort projects. In a nutshell what a build server does is make sure you&#8217;ve included all the files and resources needed to build your project, run various tests (if you have any), deploy your files, create reports, notify team members if their build fails, and a bunch of other stuff, automatically for you. I&#8217;ll try to write a blog post up with more information on build and continuous integration servers.</p>
<p>Lets get back to the Visual Studio and the project! One of the things you should start out with is actually making sure the project builds after doing a checkout. So, either press ctrl + shift + b or go to Build -> Build BVNetwork.404Handler. You should have a successful build.</p>
<p>If we take a look through the code we see that most of the code is well documented and follows a nice naming convention making it easy to know what the purpose of the class is (CustomRedirectHandler.cs, CustomRedirectCollection.cs, Custom404Handler.cs etc). But we also see a few minor things we can clean up: unused using statements, commented out code, unused field variables etc. These are minor, but still important things to get rid of. Always strive for a clean code base, commented out code is something you should never commit into a repository, the whole reason for having a source control system is so that you can look at previous changesets and their code, there is no reason to keep the commented out code there, it will only be forgotten by the developer who commented out the code, and the other developers don&#8217;t know what to do with it, and will most likely just let it be. When I come across this I show no mercy and just delete it! </p>
<p>You&#8217;ll also see a few System.Diagnostics.Debug.WriteLine that are commented out. The project now uses Log4Net to log errors and warnings, System.Diagnostics.Debug.WriteLine is legacy code that we can safely remove. Another thing that I prefer is using string.Empty(); instead of &#8220;&#8221;, I&#8217;ve not updated the code because I feel this is more a personal preference. Same thing when it comes to over-documenting-code, like in this example.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// The refering url</span>
<span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> GetReferer<span style="color: #000000;">&#40;</span><span style="color: #000000;">System.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">UI</span></span>.<span style="color: #0000FF;">Page</span> page<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #FF0000;">string</span> referer <span style="color: #008000;">=</span> page.<span style="color: #0000FF;">Request</span>.<span style="color: #0000FF;">ServerVariables</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;HTTP_REFERER&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>referer <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: #008080; font-style: italic;">// Strip away host name in front, if local redirect</span>
	<span style="color: #FF0000;">string</span> hostUrl <span style="color: #008000;">=</span> EPiServer.<span style="color: #0000FF;">Configuration</span>.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Instance</span>.<span style="color: #0000FF;">SiteUrl</span>.<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: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>referer.<span style="color: #0000FF;">StartsWith</span><span style="color: #000000;">&#40;</span>hostUrl<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	    referer <span style="color: #008000;">=</span> referer.<span style="color: #0000FF;">Remove</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, hostUrl.<span style="color: #0000FF;">Length</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
    <span style="color: #0600FF;">else</span>
	referer <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Can't have null</span>
    <span style="color: #0600FF;">return</span> referer<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The document header can safely be removed since the method name does a good job at describing what the purpose of the method is. I&#8217;ve not removed the document header, since again this is my personal preference.</p>
<p>A thing I just noticed is that this is actually a Visual Studio class project, and not a Web Application project. I can only guess, but this is probably a project that got upgraded from Visual Studio 2003, I&#8217;ve previously had some problem upgrading a project from Visual Studio 2003 to Visual Studio 2008. The conversion usually goes okay (just an update to the csproj file mostly), but the ProjectTypeGuids doesn&#8217;t always get added. This is easy to fix, open up BVNetwork.404Handler.csproj in notepad or another source editor, and add this line.</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;ProjectTypeGuids<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ProjectTypeGuids<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Save, and open up the project in Visual Studio. You should now see a slightly different icon at the top of the solution explorer window.</p>
<p><img src="http://www.frederikvig.com/wp-content/uploads/EPiServer-code-walkthrough/404handler/new-icon.png" alt="New project icon in Visual Studio" /></p>
<p>This will allow us to add a designer file to default.aspx from the admin folder. To do this simply right-click the file in solution explorer and choose &#8220;Convert to Web Application&#8221;. We can now delete the &#8220;Web Form Designer generated code&#8221;-region.</p>
<p>After all these updates its very important to make sure that the project still builds and that everything functions as expected by testing it.</p>
<p>What I liked the most with this project is how it uses logging. I&#8217;m personally very bad at using logging, and know that not all projects use logging as much as they should. Kudos to the authors for this!</p>
<p>I hope you&#8217;ve learned a few new things while reading this code, and be sure to try out the 404 handler! For SEO and user experience purposes it is crucial that the users have a smooth transition. They shouldn&#8217;t even notice the change when switching to EPiServer from another CMS (that uses different urls). A 404 (file not found) error message can also quickly become a major leak of traffic for your clients site.<strong>Related Posts:</strong>
<ul class="similar-posts">
<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/01/2010/" rel="bookmark" title="January 9, 2010">2010</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/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/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 16.999 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frederikvig.com/2010/01/episerver-code-walkthrough-1-404-handler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</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! -->