Extensions can add new layouts, modules, file system providers, scheduled tasks, content editors, entire line-of-business applications and other components. Read about extensibility options for Nucleus.
Layouts control the visual presentation of modules on a page. Layouts are often called "Themes" or "Skins" in other content management systems. Containers control the visual presentation of specific modules that they are assigned to.
Scheduled tasks perform their work periodically and are generally used to perform system maintenance, like expiring cache entries or updating a search index.
Some extensions do not have a user interface, but need to provide a way for site administrators to set configuration settings. Use a control panel extension to add an item to the Manage or Settings control panel.
Nucleus implements .Net Core Authorization policies in order to control access to controllers and/or controller actions. Learn about the Nucleus authorization policies here.
Database scripts are used to create and manage your database schema (tables, indexes and other database objects). Learn how to create database scripts for your extension here.
An extension package is a zip file which contains all of the files needed for your extension, along with a Extension Packaging (package.xml) file with instructions for Nucleus on how to install your components. Read about the packaging and manifest format here.
The user interface for Nucleus modules and extensions are Razor views. Your views can make use of Nucleus view features (tag helpers, html helpers and url helpers) to make it easier to interact with Nucleus.
Nucleus core caches most data entities in memory in order to improve performance. Modules and extensions can use the Nucleus Cache Manager to cache their own data.
The Nucleus core and Nucleus Extensions can raise system events for others to handle, or implement Event Handlers to execute code when a system or extension event is raised.