Best practises cheat sheet for your EPi site
- Prefer Controllerless blocks
- Don't Create Content Areas in Blocks, No nesting blocks.
- Minimize database calls. Instead, use Episerver’s caching layer where ever possible.
- Personalization might have an impact on performance, therefore make sure you implement personalization in a way that has the least possible impact.
- Avoid frequent querying of the Dynamic Data Store.
- Try to keep your content tree well balanced.
- Prefer Lists over ContentArea where possible to avoid big content structures for complex pages.
- Avoid dynamic properties.
- Register UIDescriptor, where you disable on page edit and preview views
- For settings kind of pages, ensure that it will not have a template
- Use Episerver’s Object Cache instead of .NET’s built-in cache
- Create all Content Types (Page Types, Block Types, Media Types) in code
- For property (field) names in code, use standard .NET PascalCase. Make sure to set a friendly Display Name and Description
- Plan a data hierarchy for Content Types, and use class inheritance
- Organize groups of properties (fields) into tabs
- Provide an order of properties, with frequently used properties at the top of each tab, Consider Editors
- Set default values for Content Types’ Properties (if known)
- For media properties, use the ContentReference type and the appropriate UIHint
- Use the PropertyFor method to render properties (fields) in Content Type views
- Make sure to always create the appropriate Media Types for assets in the project
- Use Container Pages for folder nodes, without presentation (if required) use IContainerPage.
- Plan carefully the content structure hierarchy, and avoid overloading a single level with too many pages
- Make sure to load-test external systems integrations
- Avoid resolving URLs repeatedly, think about cache.
- Avoid creating blocks to use for image refernces and pages only along with some text as Alt
Disclaimer: Points have been learned from many different sources and experience, have been adding in my best practices document.
Jun 19, 2019