Extensibility points
DynamicWeb offers many different ways to extend the platform, from hooking into the existing flow to make minor changes and all the way to completely replacing existing functionality with custom code. These are the commonly recognized extensibility points:
Notification subscribers
DynamicWeb raises notifications when specific actions happen on the platform. You can subscribe to these notifications by creating a notification subscriber, which subscribes to a specific event, and then manipulate the data, stop futher execution of the flow, or start an integration to an external system.
Notification subscribers are automatically detected by DynamicWeb and will be executed when the notification the subscriber is listening for is raised.
You can read more about which notifications that are available in DynamicWeb in this article
Providers
In DynamicWeb, a provider is a piece of code which handles a specific functionality - e.g. payment - where it's possible to take over this entire functionality by creating a custom provider aligning with your own business requirements. An extensive list of providers available on the platform can be found in the Extending Providers article
Conceptually, a provider differs from a notification subscriber, because - instead of manipulating a specific flow - the providers will typically take over the entire functionality. As a result, new custom providers will need to be selected using the Adminstration UI, so DynamicWeb knows which provider to use for any given feature.
Administration UI
The administration UI of DynamicWeb is very customizable and offers everything from adding a button in an Actions-menu to creating your own area with custom screens and functionality.
The different UI extensibility points are described more in detail in this article
ViewModels
Most of our apps pass data to templates using a ViewModel. In most cases the ViewModel should contain all the data you need, but if you need to make non-standard information available in a template you can extend the ViewModels by following [this guide](xref: extending-viewmodels)
Services & middleware
If you want to inject something into the ASP.NET service container or want to register your own web api controller inside DynamicWeb, then you can use the services and middleware.
See this guide to see how to add your own web api to DynamicWeb.
Scheduled task add-ins
Scheduled task add-ins are used when you want a specific functionality to run at a specific time of the day or at a specific interval. A scheduled task add-in can be customized to the specific need, because it utilizes the Configurable Add-in functionality, so that input fields can be added through code to the add-in, so that the same add-in can be reused for different purposes by selecting different values in these input fields.
For a more detailed description for how to implement a scheduled task, check this guide