CSElement
A CSElement asset is used to write some piece of code which is reusable. It is rendered by a template. A CSElement asset is an element and doesn’t have site entry.
They do not have cache criteria. We need to use SiteEntry to cache the output of CSElement.
An entry will be created in CSElement database table as a row when a CSElement is created.
render:callelement tag is used to call the CSElement assets.
Site Entry
Site entry assets are page names. When your code calls an element directly by element name without going through the page name, the output of the called page is cached as part of that page.
If you want to cache the output of the CSElement and to maintain its own cache criteria, your code should call the CSElement through a specific page name. To achieve this you need to create a SiteEntry and map it to the CSElement.
An entry will be created in the SiteEntry database table as a row when a SiteEntry is created.
Template
A Template asset is both an element and a page or pagelet that renders an asset. It mean to create to maintain consistent look & feel for a website. A Template could be a complete page or a part of the page. So this way any number of templates we can create.
These are chacheable. They have cache criteria set for them that determines whether they are cached and for how long?
We use render:calltemplate tag to call the Template assets.
An entry will be created in the Template database table as a row when a Template is created.
Bharath
http://devble.com/what-are-cselement-siteentry-and-template-assets