I am building a small CMS for training content, on instruction of my client. I have recommended using an existing CMS, but he wants to look at me coding from scratch as well. Most other questions here on implementing a CMS focus on high level CMS features, e.g. templating, editing, SEO, routing etc. but I don't see much at all on the low level aspects, especially versioning of content etc.
To be specific: Are there any components or libraries I can look at for persistance and version management of what I call a ContentItem in my CMS, or good resources I can consult on doing this myself? A ContentItem is any large piece of text that should have change tracking, templated fields etc. E.g. standard emails, blog posts, training content, test answers, etc.
Pointers to something I could use for change tracking at Entity Framework level would be a bonus.