Skip to content

Latest commit

 

History

History
218 lines (160 loc) · 12.6 KB

CMS_Kentico.md

File metadata and controls

218 lines (160 loc) · 12.6 KB

Kentico

For CMS version: 11

Installation and Setup

  • SHOULD use the Kentico 11 installer
    • MUST use Custom Installation
    • SHOULD use "Prepare for installation on a remote server"
    • MUST verify client’s intended .NET Framework version and select correlating version (.NET Framework 4.6 or .NET Framework 4.7)
    • MUST use "Web application project"
    • MUST use "I have access to SQL server" using a database that matches client’s production SQL Server version, shared amongst team developers
    • SHOULD install all modules
    • SHOULD use "Blank Site ASPX" Sample site
    • MUST rename solution to use appropriate Namespace convention
    • MUST NOT rename CMSApp project or change namespace
    • MUST verify client’s intended production Kentico Hotfix version and apply hotfixes and MAY use KIM (Kentico Installation Manager), alternatively download hotfixes and apply manually

References

Azure

  • MUST use "Built-in web server in Visual Studio"
  • MUST use "Microsoft Azure project"

References

Source Control

  • MUST ensure when commit project to source control that deployment mode is OFF
  • MUST commit installation to source control using the following lines in the .gitignore
  • MAY store virtual objects on the file system for source control collaboration instead of in the database
# Private configuration
    ConnectionStrings.config
    AppSettings.config

# Ignore application data
    **/App_Data/*
    # But keep localization and a list of MIME types
!**/App_Data/mimetypes.txt

### Kentico ###

# Internal dependencies
CMSDependencies/

# Language resources
CMSResources/

References

Front-End Boilerplate Integration

  • MUST create a Site using the Kentico Sites application using a meaningful Site Code Name
  • SHOULD use a Site Code Name consistent with namespacing strategy
  • MUST create a directory in ~/App_Themes directory using Site Code Name and request Front-End developers to add Front-End asset dispersal to this directory in the Grunt Build
  • MUST create a directory in ~/CMSTemplates directory using Site Code Name and create a Master Page Template using ASPX integrating Front-End scripts and styles
  • SHOULD stub out Page Templates and Web Parts BEFORE Front-End efforts begin to understand constraints around HTML generation of stock Kentico Web Parts

References

Architecture Best Practices

Page Types and Custom Tables

  • SHOULD use stock Kentico Page Types where they meet the requirements or inherit from stock Kentico Page Types to create new Page Types
  • MUST NOT modify stock Kentico Page Types
  • MUST use Custom Tables where data/content is not directly related to a page
  • SHOULD namespace custom Page Types and Custom Tables with "custom" and "customtable" respectively
  • SHOULD apply scoping to page types where page types should only be allowed under a certain page type or other scope
  • SHOULD consider Web Parts for modular elements before a Page Type or Custom Table
  • SHOULD define appropriate default template for Page Types

References

Web Parts

  • SHOULD use stock Kentico Web Parts where the meet the requirements
  • MUST create a directory in ~/CMSWebParts directory using Site Code Name.
    • SHOULD preface name with "Custom" for custom web parts and modules (i.e. if site code name is MySite, directory name is CustomMySite) if creating custom web parts
  • SHOULD identify Web Part Containers for Front-End tiers and cards to allow clients to add stock web parts with design constraints
  • MAY consider editable web part

Page Templates

  • SHOULD use "Portal Engine" Development Model
  • SHOULD use an appropriate inheritance strategy, such as Page Nesting
  • SHOULD avoid Ad-Hoc Templates during initial development

References

Pages & Navigation

  • SHOULD use CSS List Menu Web Part for menus, but MUST stub out menu BEFORE Front-End efforts begin due to significant requirements

References

Configuration

  • MUST create a custom Module and add settings to the Kentico "Settings" Application

References

Macros

  • SHOULD disable the securitry signature for macros by manually adding the @ character before the closing %} sequence of a macro. When the security signature isn't disabled, the macro is evaluated using the creating user's permissions. If a user is deleted or if the hash salt is changed (i.e. the production environment), macros will fail until resigned. Without a signature, the Public User's permissions are used to process the macro.

{% CurrentPageInfo.DocumentName @%}

References

Deployment

  • MUST install Kentico on target server (see also, Installation and Setup)
  • SHOULD Export Site using Kentico "Sites" Application
  • SHOULD ensure all objects are stored on the file system rather than database using the Kentico "System" Application prior to deployment
  • SHOULD run KInspector and review recommendations

Follow-up Deployments

  • SHOULD deselect "Export pages" as it will overwrite client pages or add in test pages to their environment
  • SHOULD deselect License Keys and Users

References

Internationalization

  • MUST use Kentico Culture Support

References

Security

  • MUST use Kentico Security Checklist while Designing, Developing, and Deploying a website

References

Additional Libraries and Tools

Visual Studio

Project Integration

  • SHOULD use Kentico Integration Bus for integration with external systems
  • SHOULD use Kentico’s WebAPI pattern when exposing a custom API, per Using ASP.NET Web API with Kentico

References

Continuous Integration

  • MAY use Kentico’s XML serialization for CI on the database items

References

Configuration

  • MUST use Kentico Settings for configuration whenever possible (see also, Configuration)

Exceptions

  • MUST log exceptions to Kentico Event Log

References

ORM Usage

  • SHOULD use CMS.DataEngine
  • MAY use Entity Framework if performing READ-ONLY queries with Custom Tables
    • MUST NOT use Entity Framework for modifying data in Custom Tables

References

Routes

Virtual Routes

  • SHOULD only customize routes and URL rewriting using Kentico Settings application and Pages application

References

Media

CDN Integration

  • MUST use Kentico File System Providers

References

Users

Creation

  • SHOULD use Kentico Registration or Kentico Users Application

References

Permissions

  • SHOULD define permissions using the Kentico Permissions application
  • MAY consider e-Commerce Membership for purchased access
  • MAY consider EMS Personas for marketing personalization

References