EPiServer Developer Resources
Posted on May 27, 2010 by Frederik Vig in EPiServerLast updated 29.12.2011
Table of Contents
- Report Center
- Mobile
- Bugs and where to find help
- 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
- Configuration
- Getting started guides and tutorials
- Checklists
- SDK and API documentation
- Guides
- EPiServer Framework
- Modules
- Modules and deployment center
- Open Source Modules
- Templates
- Gadgets
- Page Providers
- Virtual Path Providers
- Google Analytics and SEO
- Dynamic Content
- Images, Image galleries, slideshows and video
- Google Map
- Properties
- Language, Globalization and Localization
- Reports
- Debugging and diagnostics
- Frameworks
- Performance and caching
- RSS and feeds
- Edit mode enhancements
- Blog
- Various modules
- Enhancements for editors
- Rich Text Editor enhancements
- Visitor groups
- Mobile
- EPiServer Composer
- EPiServer Community
- EPiServer Commerce
- EPiServer Relate+
- EPiServer Mail
- EPiServer CMO
- EPiServer Connect for CRM
- EPiServer Connect for SharePoint
- EPiServer MobileCenter for iOS
- Extending EPiServer
- EPiServer Enterprise
- Developing with EPiServer
- Performance and caching
- EPiServer Quick Publishing
- Visitor groups
Report Center
EPiServer’s Report Center comes with 6 predefined reports.
- Not Published Pages
- Published Pages
- Changed Pages
- Expired Pages
- Simple Addresses
- Link Status
For a short guide to using the existing reports see the guide: EPiServer CMS R2: Report Center.
To get started developing your own reports see: Create Your Own Reports in the Report Center and PageName vs UrlSegment Report.
Mobile
- IPhone Optimization Made Easy
- iPhone specific EPiServer website
- Creating a mobile version of a web site
- iPhone Templates Module
Bugs and where to find help
Often the first thing I do when I’m stuck on a problem is to go to EPiServer’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.
FAQ
Not sure if it’s still in use but EPiServer World’s FAQ still contains some valuable information.
Subscription
EPiServer Subscription is used for sending email updates to users when new content is published.
- Configuration – Subscription
- Overriding subscription email formatting
- Handling subscription and languages in EPiServer
These articles should at least give you a little information about EPiServer’s subscription functionality. For some sample code see the Public Templates under Pages and SubscriptionPage.aspx.
Categories
Like with Subscription there is not much documentation and blog posts about EPiServer’s built in category functionality. I’ve started using categories more for tagging pages, which I then use to filter search pages and list pages.
Here are a few resources on categories.
Import / Export
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 WinRar and see its content, which consists of a bunch of xml files.
Content Channels
Content Channels are used for pushing external data into EPiServer. This is for instance used by the SharePoint connector for pushing data into EPiServer from SharePoint.
For a nice introduction see: Pushing Data into EPiServer CMS 5 via Content Channels, there is also the video: Content Channel and Custom Page Store in EPiServer CMS 5.
Methods
-
AppendDataToFile
Appends data to a file -
DeleteDirectory
Deletes a directory -
DeleteFile
Deletes a file -
DeleteFile
Deletes a file -
DeletePage
Deletes a page -
DeletePageLanguage
Deletes a language version for a page -
GetMaxRequestLength
Informs the client what the max size of data that the server will accept is. -
ImportFile
Creates a file relative settings in a registered channel -
ImportFile
Creates a file relative settings in a registered channel -
ImportFile
Creates a file relative settings in a registered channel -
ImportFile
Creates a file relative settings in a registered channel -
ImportFileMetadata
Imports metadata for a file -
ImportPage
Creates a page according to seetings in registered channel -
ImportPage
Creates/Updates a page according to seetings in registered channel -
ValidateWebServiceAccess
Validates that current user is permitted webservice acess
URL rewriting / friendly URL
Both for users and search engines it helps to use friendly urls. Since EPiServer’s URL rewriter is provider based, it is easy to replace it with your own implementation.
Below are a couple of resources for changing the built in functionality of EPiServer’s URL rewriter. I recommend using Reflector to learn more about the inner workings of the URL rewriter (in EPiServer.dll and the EPiServer.Web namespace).
- Friendly URL
- Permanent Links
- HTML Rewriting Functionality
- Create a custom URL rewrite provider for EPiServer
- Automatically convert external links to the current site into internal links
- EPiServer and Custom URLS using ASP.NET UrlRouting
- EPiServer friendly URLs for paginated pages
TinyMCE / Editor
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.
The default editor for EPiServer CMS 6 is TinyMCE, if you upgrade from EPiServer CMS 5 or use EPiServer CMS 5, EPiServer’s built in editor is used. You can change which editor you wish to use in your web.config file, see: XHTML Editor – PropertyXHTMLString and PropertyLongString for more information.
- Adding buttons to the TinyMce editor in EPiServer 6 programmatically
- EPiServer 6 – It’s 2010 and we can check our spelling… with a bit of configuration
- Add functionality to the rich text editor in EPiServer CMS 6
- Working with the new XHTML Editor in EPiServer CMS 6
- TinyMCE Developers Guide
- XHTML Editor – PropertyXHTMLString and PropertyLongString
- Change the style sheet for the Editor
- TinyMCE: Plugins
XForms
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).
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.
- XForms
- Add validation to XForms textbox
- File upload in XForm
- Altering the XForm email body to make it look more like the actual form
- Inserting XForms as dynamic content
- Sending confirmation email to the user when using EPiServer XForms
- Part 6: Creating the XForm page – Create an EPiServer site from scratch
- XForms validation
- Extend EPiServer XForm
- Using the dynamic data store with XForms
- Semantic markup with EPiServer XForms
For some sample code on rendering the XForm on your site see the Public Templates and XForm.ascx and the XForm page type.
Globalization / localization
EPiServer has some powerful globalization and localization support, built on ASP.NET’s globalization and localization functionality. I recommend starting out with the Globalization tech-note. 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.
- Adding new languages to EPiServer 5
- Embedding EPiServer language files
- Globalization, categories and sorting using LINQ
- Globalization
- Language handling
Also be sure to check out Manage Languages for keeping language files up to date and TranslateX for sending EPiServer CMS pages to/from a translation service.
File system / VPP
EPiServer uses Microsoft’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: EPiServer File Manager and File Summary for information on how to add more meta data properties.
- Virtual Path Providers
- File System and VPPs
- Access Files And Folders in EPiServer
- Using EPiServer VirtualPathUnifiedProvider
- Synchronising EPiServer VPP folders using the Microsoft Sync Framework
- Using EPiServer Virtual Path Provider with file properties
- Page Folders and Uploading of files in EPiServer
- Searching for files in EPiServer CMS 5
- Http Caching strategies: VPP Files
- Create a Page Folder Without an Access Exception
- Custom File Manager
- EPiServer File Manager and File Summary
- Programmatically adding files to EPiServer’s File System
There has also been developed a module for storing the files in the database instead of on a file share or on the web server.
Security, Membership and roles
EPiServer uses ASP.NET’s membership and role provider model for their membership and roles. By default these providers ship with EPiServer:
- OracleMembershipProvider
- WindowsMembershipProvider
- SqlServerMembershipProvider
- ActiveDirectoryMembershipProvider
- MultiplexingMembershipProvider
MultiplexingMembershipProvider forwards requests to the Windows- and SqlServerMembershipProvider, allowing for creating and storing users and roles in EPiServer’s database and using the Windows users and roles (this is the mostly used provider).
- Membership and Role Providers
- Authentication and Authorization
- Using the active directory membership provider with EPiServer
- EPiServer Community role and membership providers
- EPiServer – Security and Access Control (1/2)
- Setting up user permissions in EPiServer CMS, part 2
- Setting up user permissions in EPiServer CMS, part 1
- EPiServer and Microsoft Anti-Cross Site Scripting 3.0
- Securing Edit and Admin
- Membership- and role provider for Lotus Notes
- Using OpenID With EPiServer CMS
- Converting EPiServer 6 to use claims-based authentication with WIF
- Using the CSRF page extension in CMS 6
- Part 1: Injection – OWASP Top 10 for EPiServer Developers
Events
- EPiServer CMS: How to configure Remote Events with many servers and Firewalls between them
- Page events, what events are registered
- Cross server events
- Determine if it is a new page on page publish event
- Event Management System Specification
- Listen/Subscribe to File Events
Oracle
EPiServer supports Oracle databases and even comes with sample configuration settings in their config files.
- Updating configuration to run CMS 6 on Oracle database
- Upgrading an EPiServer CMS 5 R2 SP2 Site to CMS6 when running Oracle
- EPiServer CMS6 on Oracle moving on to ODP.NET
- Installing Public Templates on an EPiServer CMS 5 R2 site with an Oracle Database
- Oracle Database – Configuration
SEO
Here are a few blog posts and modules with tips on making EPiServer even more SEO friendly.
- Rebuild Name for Web Addresses on steroids
- Seo tip: canonical domain
- SEO lowercase urls, in EPiServer CMS 6
- Redirecting to a Simple Address
- Making EPiServer and Search Engines Work Together
- Nightly Fun with 301
- EPiServer SEO: Reduce Duplicate Content Links
- A simple solution for custom 404 pages and permanent redirects
- Automatically ping Google and MSN when your site is updated
- PageName vs UrlSegment Report
- Using redirects in HttpModules with EPiServer
- When a 404 Not Found should be a 404 Not Found
- Working with Search Engine Optimization in EPiServer CMS 5
- Search Engine Sitemaps
Workflows
EPiServer uses Windows Workflow Foundation for their Workflows and even ship with 4 workflows:
- Sequential Approval
- Parallel Approval
- Request for feedback
- Ready for translation
See Enabling the EPiServer CMS Workflows for information on how to activate them.
- Workflows with EPiServer is really easy!
- Building a Twitter Workflow
- How to create a EPiServer role task by code
- Developing workflows
- Workflows Overview
- Create and Use a Workflow
- Part One – Overview and Requirements
- Part Two – Windows Workflow Foundation in EPiServer
- Part Three – Developing a custom workflow in EPiServer
- Developing a custom workflow in EPiServer : Part four
- Source code for the CMS6R2 built in workflows
Errors, Logging and debugging
Logging
- log4net tips: Shortening the type name
- EPiServer log: More configuration tips
- Using LogView4Net with EPiServer
- EPiServer log: Excluding rows from selected namespaces
- Logging woes with log4net and enterprise sites
- Logging
- Error logging and processing with log4net
- Using Elmah in EPiServer
Errors and Error handling
- EPiServer Error Handling (broken in R2 & IIS7)
- Keep your web editors in the loop!
- A simple solution for custom 404 pages and permanent redirects
Debugging
- Symbols for EPiServer CMS 6 available
- EPiServer CMS 6 XML documentation files
- Debugging EPiServer CMS 5 R2 with Symbols
- Symbols published for products in the R2 wave 2011
Configuration
EPiServer stores a lot of its configuration settings in various .config files. Below are a few resources that’ll help you navigate through most of what you can configure.
- Configuration
- Configuration – Active Directory Membership Provider
- Configuration – Enterprise
- Configuration – Image Service
- Configuration – Live Monitor
- Configuration – Quick Publishing
- Configuration – Subscription
- Configuration – TinyMCE
- Configuration Management and EPiServer CMS 6
- EPiServer CMS: How to configure Remote Events with many servers and Firewalls between them
- EPiServer log: More configuration tips
- Handling multiple ASP.NET configuration files with build events
- Searching for files in EPiServer CMS 5
- Configuring Enterprise Sites
- Mirroring and Monitoring Configurations
- Oracle Database – Configuration
- Default EPiServer Web.Configs for IIS6 and IIS7
Overview of the default config files that come with EPiServer (containing both ASP.NET and EPiServer settings).
- web.config – The main configuration file for the application. Contains configuration for the ASP.NET API and some parts of the EPiServer CMS API.
- episerver.config – The main configuration file for the EPiServer CMS API. Contains the basic settings for the EPiServer CMS site (or sites – in an enterprise installation).
- episerverFramework.config – Contains mapping information describing which host addresses leads to a particular EPiServer CMS site.
- connectionStrings.config – Contains a list of database connection strings
There are two further configuration files located in the application’s root folder. These two configuration files are separate and not related to the files listed above or each other.
- episerverLog.config – Contains the log4net settings for the application, please see the log4net homepage for full information on configuration options.
- fileSummary.config – An XForm defining the meta data properties attached to files that are uploaded to EPiServer CMS.
Getting started guides and tutorials
- A developer’s first EPiServer CMS project at Sogeti, part 1
- A developer’s first EPiServer CMS project at Sogeti, part 2
- Start Developing with Relate and EPiServer Community
- Start Developing with EPiServer Composer
- Start Developing with EPiServer CMS
- Your First EPiServer Project
- Complex EPiServer Projects
- Create an EPiServer site from scratch
- Getting started with EPiServer CMS development
Checklists
SDK and API documentation
- EPiServer Composer 4 R2 (4.1) SDK Documentation
- EPiServer Composer SDK
- EPiServer Mail 4.4 SP1 SDK Documentation
- EPiServer Mail SDK
- EPiServer CMS 6 SDK
- EPiServer CMS 6 R2 SDK Documentation
- EPiServer CMS 6 XML documentation files
- EPiServer CMS 5 SDK
- EPiServer Framework SDK
- EPiServer Framework 6 R2 (6.2) SDK Documentation
- EPiServer Community SDK
- EPiServer Community 4.0 SDK Documentation
- EPiServer Commerce Developer Guide
Guides
- Manuals – EPiServer Composer 4 R2
- User Guide – EPiServer Mail 4.4 SP1
- User Guide – EPiServer CMO 1.0
- Relate+ Templates Developer Guide
- User Guide Relate+ Templates 1.0.0
- User Manual – EPiServer Community 3.2
- Administrator Manuals – EPiServer CMS 6 R2
- Editor Manuals – EPiServer CMS 6 R2
- User Guides – EPiServer OnlineCenter 6 R2
- User Guide – EPiServer Commerce 1 R2
EPiServer Framework
EPiServer Framework consists of:
- EPiServer OnlineCenter
- Dynamic Data Store
- Initialization System
For a good introduction see: Introducing EPiServer Framework.
Online Center
- Shell Playground
- Create Global Navigation in EPiServer CMS 6 RC1
- OnlineCenter Developer Documentation
Gadgets
Dynamic Data Store
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.
Page Objects
Page Objects are .Net objects and collections that are associated with an EPiServer CMS page.
- Page Objects
- Saving Page Objects
- Changes to Page Objects API in CMS 6 Release
- Page Rating example using Page Objects
Dynamic Data Store
There are two things you need to read to understand most of the Dynamic Data Store. First the tech-note: Dynamic Data Store, and second the examples referred to in the tech-note: Dynamic Data Store Examples.
More resources
- Using a DynamicDataStore instance correctly
- Dynamic Data Store Feature List in EPiServer CMS 6 Release Candidate
- Data Container Indifference in the Dynamic Data Store
- Dynamic Data Store caching – The internals
- Dynamic Data Store Linq extension
- Exploring the data lair
- Storing EPiServer CMS Properties in the Dynamic Data Store
- Using the DynamicDataStore to count file downloads
- Session and Unit Of Work for Dynamic Data Store
Initialization System
- Initialization
- Introducing the new Initialization System in EPiServer CMS 6
- Attach EPiServer event handlers on startup using InitializableModule
Modules
This section contains how to create module packages for the deployment center, open source modules, and other EPiServer modules. Many of these modules can be installed through EPiServer’s NuGet feed.
Modules and deployment center
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.
- Module Packaging
- Getting Started with Module Installation
- Module Packaging in EPiServer CMS
- Powershell for EPiServer Applications
- XML Update Reference
Open Source Modules
Most of the open source modules out there are hosted on either EPiCode or CodePlex. Here is a list of the various open source modules that I know about.
Templates
- Demo Site for Local Governments
- Alloy Technologies Demo Site
- EPiServer CMS 6 Visual Studio Project Template for VB w/ Public Templates
- JoelAbrahamsson.com – A blog built with EPiServer and ASP.NET MVC
Gadgets
- EPiServer Gadgets
- QuickWatch Gadget for EPiServer CMS
- Online Center / Admin Plugin for EPiServer Events System (Load Balancing)
- EPiServer CMS XForm Search Gadget
- Dynamic data store Search/Performance Gadget
Page Providers
- EPiServer Blog Page Provider
- Remote Page Provider for EPiServer CMS
- Mapped Page Provider for EPiServer CMS
Virtual Path Providers
- Database Virtual Path Provider
- Native Virtual Path Provider With Meta Data Support
- Image Virtual Path Provider
- Database File System
- Flickr Virtual Path Provider for EPiServer
- Virtual Path Provider for Amazon S3
Google Analytics and SEO
- GoogleAnalyticsAPI
- Google Analytics Module
- Search Engine Sitemaps
- EPiRobots – A generic robots.txt handler for your EPiServer CMS site
Dynamic Content
- Tweets and dynamic content decided to become friends
- Display youtube videos in episerver using dynamic content
- Dynamic Content Contrib for EPiServer CMS
- Dynamic Property Version Manager
Images, Image galleries, slideshows and video
- HyperThumbnail for EPiServer
- Itera.Media
- Picture gallery template
- Picasa 2 EPiServer
- Creating a simple image gallery with EPiServer
- EPiServer and streaming video in ten minutes
- EPiImage
- Quick image select property
- oEmbed for EPiServer
Google Map
Properties
- CollapsableProperty
- Folder Browser Property
- MultiPage Property
- A page property plugin for EPiServer CMS
- ImageList Property
- FV.ShareIt
- Extended Image Url Property
- Property Pack for EPiServer CMS
- Itera.MultiProperty
- Show value of a inherit property in Edit mode
- Help your editors with a smarter PageReference property
- EPiServer Dropdown CheckList Property
- Quick document select property
- EPiServer Filtered Page Reference Properties
Language, Globalization and Localization
Reports
Debugging and diagnostics
Frameworks
- EPiCode Extensions
- EPiServer CMS Page Type Builder
- EPiAbstractions
- EPiMVC
- Metabolite Enterprise Libraries for EPiServer CMS using Page Type Builder
- EPiMVP
- EPiServer Template Foundation
- Epinova.CRMFramework
- EPiUtilities
- Introducing Page Type Builder UI
- Open Waves
Performance and caching
RSS and feeds
Edit mode enhancements
- StickyTabs for EPiServer CMS5
- QuickSearchExtender
- PageTreeIcons
- Content Generator
- Help Text
- LinkDetective
- NewPage Module
- Page Container
- Manage Children
- Page Mockup
- Page Type Tabs For EPiServer
- A restore page plugin
- Tags for EPiServer CMS
Blog
Various modules
- WikiX
- Resource Booking For EPiServer CMS
- Scrum Dashboard
- NetMeeting
- EventX
- Membership- and role provider for Lotus Notes
- BVNetwork.EPiPageTypeUtil Module
- Virtual Roles Sample Pack for EPiServer CMS
- PageScripts
- EPiServer Code Samples
- Custom 404 Handler
- Web Deployment Wizard
- Enterprise Configuration
- Hattis.EmbeddedResource
- iPhone Templates Module
- Add-ons for EPiServer Relate+
- Checking a accessibility for a page with Wave
- Epicode Cross Publish
- SocialPing
- Epinova.EmailObfuscator
- Geta.ErrorHandler
Enhancements for editors
Rich Text Editor enhancements
Visitor groups
- Criteria Pack for EPiServer CMS
- Visitor Group Usage Report
- Overview of Visitor group content in your site
- Personalization Engine for EPiServer
- Personalization Engine – User Interface
Mobile
EPiServer Composer
EPiServer’s Composer module is used to add extra functionality to EPiServer CMS pages, allowing editors to drag and drop functionality on predefined placeholders.
- Installation Instructions – EPiServer Composer 4 R2
- Release Notes – EPiServer Composer 4 R2
- System Requirements – EPiServer Composer 4 R2
- Configuration Settings – EPiServer Composer 4 R2
- Globalization, Mirroring, Dynamic Functions and Properties in EPiServer Composer 4 R2
- Upgrading from EPiServer Composer 3.2.6 (CMS 5 R2 SP2) to EPiServer Composer 4.0 (CMS 6.0)
- EPiServer Composer – Best Practices For Developers
- Using PageTypeBuilder with Composer
- How to determine if an EPiServer Composer function is placed in another Composer function
- Handle the error in Composer function
- Organize your Composer functions in the Toolbox
- EPiServer Composer 3.2.x Installation and Configuration Instructions – Including the Extra Details You May Want to Know
EPiServer Community
EPiServer Community is a framework for building online communities and consists of modules for user management, video galleries, chat, blogs etc.
The EPiServer Community SDK has a great howto section that covers a lot of the topics you as a developer will come across when working with EPiServer Community.
Joel Abrahamsson has also written a great series on creating new modules for EPiServer Community:
- Creating a Custom EPiServer Community Module – Part One
- Creating a Custom EPiServer Community Module – Part Two
- Creating a Custom EPiServer Community Module – Part Three
- Creating a Custom EPiServer Community Module – Attribute Data Types
Tech-notes
- Release Notes for EPiServer Community 4.0
- System Requirements – EPiServer Community 4.0
- EPiServer Full Text Search Client
- EPiServer Full Text Search Client Configuration
- EPiServer Full Text Search Product Integration
- EPiServer Full Text Search Service
- EPiServer Full Text Search Service Configuration
- Migrating EPiServer Community 3.2 to 4.0 and EPiServer Mail 4.4 to 5.0
- Protecting Your Users From Session Hijacking
- Running EPiServer Community in a web cluster
More resources
- EPiServer Community and user attributes
- Polling your community
- Adding images using the Community API
- Windows Live Writer Integration for EPiServer Community
- Forum Topic subscription using attributes
- Getting EPiServer Community entities – filtering and sorting strategies
- Extending community entities
- Using the query system in EPiServer Community
- Customizing an EPiServer Community Module using Attributes
- Keeping track of the EPiServer Community user limit
- Generic Property Value Selection Tree
- Do you want Community features on your CMS pages? PageEntity to the rescue
- EPiServer Community role and membership providers
EPiServer Commerce
Before trying to install EPiServer Commerce read the release notes and the section “Known Limitations”.
- DataCash Payment Provider – Installation and User Guide
- Installation Instructions – EPiServer Commerce 1 R2
- Klarna Invoice and Part Payment – Installation and User Guide
- Release Notes – EPiServer Commerce 1 R2
- System Requirements – EPiServer Commerce 1 R2
- Adding Social Shopping Features to EPiServer Commerce with EPiServer Community
EPiServer Relate+
EPiServer Relate+ consists of a set of templates that builds on EPiServer Community and EPiServer CMS, and gets you started with a sample site.
- Installation Instructions for EPiServer Relate+ 2.0
- Release Notes for EPiServer Relate+ 2.0
- System Requirements for Relate+ 2.0
- How to Add Custom Fields to a Users “My Page” in EPiServer Relate+
- Getting EPiServer FileManager into Relate+ Clubs – Verbose Version
- Attributes in EPiServer Relate+
- Generic Property Value Selection Tree
- Configuring video settings in EPiServer Relate+
- Getting EPiServer FileManager into Relate+ clubs
- Search CMS Pages in Relate+ 2.0
EPiServer Mail
EPiServer Mail is used for sending emails and newsletters and is used by EPiServer Community and EPiServer Relate+.
- System Requirements for EPiServer Mail 5
- Installation Instructions EPiServer Mail 5.0
- Developers Guide – EPiServer Mail 5.0
- EPiServer Mail 5.0 Code Sample
- EPiServer Mail Configuration in an Enterprise Environment
- Managing and Creating Recipients Lists
- Order Mail
- Recipient Sources
- Statistics
- Uninstall EPiServer Mail 5.0
- Unsubscribe
- EPiServerMail should be reactivated if the project is moved / copied
- A bit more information about the different EPiServerMail 4.4 / 4.4 SP1 installation options
- Uninstalling EPiServerMail 4.4
- Inserting an unsubscribe link into an HTML Template in EPiServerMail 4.4
- EPiServer Mail 4.3 to work with R2
- Developers Guide – EPiServer Mail 4.4 SP1
- EPiServer Mail 4.4 SP1 Code Sample
- EPiServer Mail 4.4 SP1 Mail Template
EPiServer CMO
EPiServer CMO is used for monitoring and optimizing pages on your website by learning about your users’ behavior and helping your editors easily create A/B tests.
- Installation Instructions – EPiServer CMO 1.1
- System Requirements – EPiServer CMO 1.1 – 6.0.530.0
- Configure Live Monitor for Multiple Bindings
- Configuring the Statistics Handler
- CMO 2.0 and .NET 4 installation problems and solutions
- Custom conversions in CMO LPO test
- EPiServer CMO gadgets
- EPiServer CMO: advanced deployment options
- EPiServer CMO components and simple installation scenario
EPiServer Connect for CRM
- EPiServer Connect for CRM System Requirements 1.2
- Installation Instructions – EPiServer Connect for CRM 1.2
- Connect for CRM 1.2 – Configuration
- Creating a Connection in EPiServer Connect for CRM
- Functionality of EPiServer Connect for CRM
EPiServer Connect for SharePoint
- MOSS in perfect harmony
- A voyage with the SharePoint Connector
- Integrating EPiServer CMS 5 with Microsoft SharePoint – user examples and benefits
- Connect for SharePoint 2.2 – Installation Instructions
- Connect for SharePoint 2.2 – Configuration File
- Connect for SharePoint 2.2 – Extensibility
- EPiServer Connect for SharePoint Known Limitations and Troubleshooting
- Connect for SharePoint 2.2 – Search Configuration
- Connect for SharePoint 2.2 – Security and Delegation
- Workaround for Recycle Bin items for EPiServer Connect for SharePoint
EPiServer MobileCenter for iOS
Extending EPiServer
One of EPiServer’s biggest strengths in my humble opinion is how easy EPiServer is to extend. Take a look at this picture by Deane Barker for a great overview of what is possible.
Plugins
- Creating an EPiServer Plugin
- A few tips on UI Plugins in CMS6
- A page property plugin for EPiServer CMS
- Action window template
- EPiServer PlugIns in one single dll
- Introducing the new Initialization System in EPiServer CMS 6
- Simple way to make your plug-in settings editable
- Edit Panel plug-in performance
- Admin Page to Administer User Settings
Custom Property
- How to create custom properties in EPiServer CMS 5
- How to Create a Custom Property
- EPiServer Custom Property with Custom Settings
- EPiServer: Creating a re-usable generic custom property
- Country custom property
- Property to make one link with text and target (LinkCollection style)
- Quick way to create checkboxlist / dropdownlist properties
- Introduction to EPiServer properties
- Map EPiServer properties to custom property controls
- How to create a custom EPiServer property
Dynamic Content
- Dynamic Content
- Introduction to Dynamic Content
- How to Create Dynamic Content
- How to Create UI Settings for Dynamic Content
- Dynamic content and invalid html markup
- Referrer-Search Dynamic Content
- Turn your User Controls into Dynamic Content
- Automatically Load Property Types as Dynamic Content
- WikiX: Dynamic Content in Dynamic Content
- Auto Loading of Dynamic Content
- Dynamic Content base class
- Using block elements as Dynamic Content
- Inserting XForms as dynamic content
- Dynamic Content goes personal
- How to localize Dynamic Content
- Tweets and dynamic content decided to become friends
- Display youtube videos in episerver using dynamic content
- Preview on dynamic content
Scheduled Jobs
- Scheduled jobs in EPiServer CMS 6
- Subscription job deadlock on site with large number of users
- Scheduled tasks – tips
- Enable debug logging for EPiServer Scheduler
- Scheduled backup of your site
- Getting the date of last successful execution of a scheduled job
- Link Validation
- Custom Scheduled Task Intervals in EPiServer
- Create a scheduled job in EPiServer
EPiServer Enterprise
Load Balancing
- Problems with access rights to VPP in a load balanced enviroment
- Synchronising EPiServer VPP folders using the Microsoft Sync Framework
- Cache Update and Load Balancing for EPiServer CMS 5
- Online Center / Admin Plugin for EPiServer Events System (Load Balancing)
- Load balancing EPiServer CMS
Server Architecture
EPiServer Enterprise
Mirroring
- Mirroring
- Continuous mirroring – CMS 6
- Mirroring – Modules and Custom code
- Mirroring 2.0 – Overview
- Mirroring and Monitoring Configurations
- Custom Mirroring Transfer Provider on USB
- MoM Server
- Catch Monitoring Event inside CMS
- Mirroring – Monitoring
- Setting up Mirroring 2.0 in two ways
Page Providers
- Introducing Page Providers
- Page Providers
- XmlPageProvider
- Page Providers – An Introduction
- Page Provider – Part one
- Page Provider – Part two
- Page Provider – Part three
- Configuring page provider capabilities
- Problem with constructing PageReferences in Page Providers
- Attaching a Page Provider programmatically
- Developing EPiServer page providers: optimizing performance
- Mapped Page Provider
- Fun with the Mapped Page Provider
- Guide: Northwind Page Provider
- Page Provider – Structure your site
- Optimizing Friendly URL for Page Providers
- EPiServer Loves UK Top 40 (Or Yet Another Article About Page Providers)
Developing with EPiServer
Web Controls
- EPiServer web controls
- Data Source Controls
- Menu and Listing Controls
- How to Create a Main Menu
- How to Create a Sub Menu
- EPiServer:PageList with SelectedItemTemplate
- EPiServer:PageList with ItemDataBound
- Creating a Custom EPiServer Paging Control
Page Types and PageData
- Output PageData as JSON
- Convert Page Types for Pages
- Pages, Page Types and Page Templates
- How to Create a Page Programmatically
- How to Create a Page Template
- Modify values for page properties when loading the page for editing in edit mode
- Querying EPiServer PageData using LINQ
Properties / Dynamic Properties
- Property Types
- Using String Properties in EPiServer CMS
- Working With Page Properties in EPiServer CMS
- Display the property name for developers in edit mode
- Modify the built-in EPiServer properties
- EPiPattern: DO & DONT with EPiServer Properties
- Setting up multiple property controls for a property in EPiServer CMS 6
- Settings for properties
- Automatic Sub Category Property Type
- Modify values for page properties when loading the page for editing in edit mode
- How to Use Link Collection property
- EPiServer Link Collection Property
Code architecture
- Sharing templates and plugins between projects
- Setting up a Maintainable EPiServer Site – Part 1
- Tips: Sharing episerver-projects between developers
- Handling multiple ASP.NET configuration files with build events
- Setting Up a New EPiServer Site with Visual Studio
Searching and filtering
- Searching and Filtering
- How to search for pages based on page type
- How to Search for Pages
- EPiServer filter – part 1
- EPiServer filter – part 2: create your own filter
- Search pages in EPiServer using FindPagesWithCriteria
Performance and caching
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 YSlow as well.
Caching
- The EPiServer CMS Output Cache Explained
- ASP.NET – Automatic CSS and Javascript versioning
- Dynamic Data Store caching – The internals
- How EPiServer CMS caches PageData objects
- A small cache manager – see and manage your cache items
- EPiServer and cache, not always a love story
- How EPiServer CMS caches PageData objects
- Configuring cache expiration on IIS 7
- Http Caching strategies: Pages
- Http Caching strategies: VPP Files
- Setting cache limits in ASP.NET 2.0
- Client Caching in R2 and Localhost
- Cache Update and Load Balancing for EPiServer CMS 5
- Caching of static files
- Pluggable Runtime Cache
- Read-Only PageData Cache
- Cache objects in EPiServer with page dependencies
- Caching object EPiServer is easier then you probably think
Performance
- Gzip compression of static files – EPiServer CMS 5 / IIS 6.0
- Client side performance optimization adventures with the CdnSupport module
- Client-Side Performance: Links and Presentations
- CdnSupport module preview 2
- FindPagesWithCriteria and Performance
- Edit Panel plug-in performance
- Performance Tuning and Optimization of EPiServer CMS
- Faster EPiServer sites – client side performance
EPiServer Quick Publishing
- Smooth Publish Using JQuery and EPiServer Quick Publishing
- Streamline Your Daily Work with EPiServer CMS 6
- Configuration – Quick Publishing
Visitor groups
- Developing Custom Visitor Group Criteria
- Criterion implementation patterns
- Richer UI for your custom Visitor Groups criteria
- Announcing Visitor Group Tracking and Statistics
Nicklas says:
Post Author May 27, 2010 at 16:29Wow Frederik! This is huuuge. Awesome compilation!
Magnus Paulsson says:
Post Author May 27, 2010 at 17:57That is one comprehensive list! Great work!
André Brynildsen says:
Post Author May 27, 2010 at 20:02I’m impressed! Well done, Frederik
Mark Everard says:
Post Author May 27, 2010 at 22:46Great work, and something that was definitely needed!
I hope you’re going to keep it up to date……….. 😉
Frederik Vig says:
Post Author May 28, 2010 at 08:31@Mark – I’ll do my best to keep it up to date! 🙂
@All – Thanks everyone! If you find any mistakes, missing links, categories that should be placed somewhere else etc, please let me know!
Frederik
Ruwen says:
Post Author May 28, 2010 at 08:52Great work. Like yahoo but only about EPiServer 🙂
Per Nergard says:
Post Author May 28, 2010 at 20:10This is brutal!
Per
Fredrik Haglund says:
Post Author May 30, 2010 at 01:28Wow!
Thanks for taking the time and making this directory. Next thing is just to copy and paste all text into a book! 🙂
/Fredrik
Mattias Lövström says:
Post Author June 2, 2010 at 08:46Best EPiServer initiative this year (that I know of anyway) – thanks Fredrik.
Leif Boström says:
Post Author June 7, 2010 at 22:17Overwhelmed, amazed and grateful! Where do you got the time Fredrik? 🙂
Frederik Vig says:
Post Author June 8, 2010 at 16:51Wow, thank you everyone for the kind comments! This made my day! 🙂
MKSE.com Martin says:
Post Author June 14, 2010 at 11:30Very transparent! Excellent, Vig!
Torbjörn Stavås says:
Post Author August 5, 2010 at 16:45Whoa… Makes me want to use that offline explorer app from the 56k modem days again .-. (don’t wanna risk this one to disappear 🙂
Kudos for this, excellent work!
Paul Kennett says:
Post Author February 21, 2011 at 05:36Frederik for EPiServer community member of the year! Thank you so much for your effort.