Unlike many content management systems which maintain content in a haphazard manner, Sitecore maintains data in a structured content tree.
Data is represented as items. These items of different types are combined in a tree structure such that an item can have a parent and child items.
Templates are like Object Oriented Classes. A template contains fields that contain the actual content for an item. An item is an instance of a template just as an Object is an instance of a class. A template can have a “Master” which is used to create an item of a template. A master plays the same role as an Object Oriented Constructor. Masters can be configured to specify default values for fields and can specify sub-items that should be created when an item is first created. Templates can be based on other templates and inherit their fields, much like Object Oriented inheritance.
In Sitecore, Presentation is built from three things:
Content is built in Sitecore using a single layout and any number of sublayouts and renderings. A layout is an aspx page. It can contain html, code and place holders to which sublayouts and renderings can be assigned. A sublayout is an ascx user control which can contain html, code and place holders to which other sublayouts and renderings can be assigned. A rendering is an xslt stylesheet which can process the data item provided to it in xml format. Unlike layouts and sublayouts, a rendering can not contain sublayouts.
Content and Presentation are finally united in Sitecore by assigning a layout to a template or a specific Item.
When an item is requested from an http request URL which contains the path to the item in the content tree, Sitecore determines the layout to use to display the item. Multiple layouts can be specified for an item by way of devices. One device could specify for example a browser layout for the item and another could specify a print layout for the same data item.
Content and presentation can be designed in parallel. The Sitecore documentation suggests modeling the content tree based on the desired site navigation. Sitecore also supports internationalization, so that content can be generated for different languages.
It also supports workflows which determine steps that items must traverse before being published. Content will not be visible on a site until it is published.
Sitecore provides a pessimistic security model to assign permissions to users and groups. It is pessimistic in that if a user is not explicitly assigned permission, the user will not be granted the permission.
For dynamically generated content, site core has an extensive .net api that can be used in Layouts and sublayouts. It also provides xslt extensions that can facilitate building xslt renderings from sitecore xml.