WAF comes with a series of built-in content types for key functionality. You may modify and inherit from to build your own functionality.
The most important built-in content classes:
HierarchalContent is a content class that inherits from ContentBase. It has key properties needed to make the content part of the common navigation hierarchy. About half of the built in classes inherits from this class and any document type you define that you want to make part of a menu should inherit from this class. The key properties are:
Parent A relation to the parent content
Children Relations to all child contents
ShowInMenu Flag to indicate if content should be visible in the menu
ShowInTree Flag to indicate if content is visible in the tree in edit mode
Default... A series of default values of new child contents that are added to the content
Site is the content class that represents each site in the system. Every content in a installation belongs to a site and has a SiteId property. The site is the root object in the navigation hierarchy of each site. Each site is associated with one or more domains. The domain of the first request in a user session will determine what site in an installation the user will be directed to. Once the site is established the StartNode of the site will be the first page the visitor sees.
SystemUser is the content type used to hold user data. It contains the expected properties like username, password, group memberships etc.
UserGroup is the content type used to group users. Setting access rights in the system is done by referring to user groups. A user is granted access if the user is a member of the group.
ContentFile is a built-in content class that inherits from HierarchalContent and is a designed to part of the hierarchy of the File Library. This hierarchy is based on a relation between FileFolder and ContentFile. The key property of ContentFile is the “File” property that contains the file. ContentFile have three descendants.
InnerContentFile is a built-in inner content class that inherits from InnerContentBase. In combination with a property type call FileFolder which inherits from the normal inner content relation property, it is useful if you want to give the user the possibility to upload a collection of files as part of a content. The key property of InnerContentFile is called “File” and contains the uploaded file. You may inherit from the InnerContentFile class to expand with you own properties on each uploaded file.