A User-defined Component is the more flexible big brother of a Custom Component. Like a Custom Component, a User-defined Component can be opened in a window, a DIV, or a Tabbed UI Pane, in a linked content section of a Grid, and in a row expander of a Grid. Like a Custom Component, a User-defined Component has bindable arguments.
In addition to what it has in common with a Custom Component, a User-defined Component has bindable, settable properties that can be exposed in a property grid user interface, which is displayed in the Properties pane of its builder above the common properties used by all Custom and User-defined Components. See When to turn a Custom Component into a User-defined Component V11 for screen shots that make this clear.
Creating a completely new Custom Component requires the user to drop in all the required code in the right places, which is a more appropriate task for developers than end users. More commonly, an existing Custom Component is duplicated to a different name to create a variant with different argument bindings but the same code, or slightly modified code.
For a user, creating a new User-defined Component generates an instance of the component from the files that the developer has defined. These files are in a place where the user does not typically look. The User-defined Component has system events on the server that the user cannot modify from the builder, in addition to exposing user events that run after the system events. The user is free to modify the user events exposed in the builder.
You can think of the Custom Component as being like a document, and the User-defined Component as being like a document template.
Before you begin to create a User-defined Component, first create a Custom Component. That will give you a firm foundation for the code you need in your User-defined Component.
The following articles will explain the steps you need to take in going from a Custom Component to a User-defined Component.