Asp.net mvc 3 关于在MVC3中实现CMS功能的建议

Asp.net mvc 3 关于在MVC3中实现CMS功能的建议,asp.net-mvc-3,content-management-system,Asp.net Mvc 3,Content Management System,我正在根据客户的指示,为培训内容构建一个小型CMS。我建议使用现有的CMS,但他也希望看到我从头开始编码。这里关于实施CMS的大多数其他问题都集中在高级CMS功能上,例如模板、编辑、SEO、路由等。但我在低级方面看不到太多,尤其是内容的版本控制等 具体来说:是否有任何组件或库可供我在我的CMS中持久化和版本管理我称之为ContentItem,或者有好的资源可供我自己参考?ContentItem是任何应该有更改跟踪、模板化字段等的大型文本,例如标准电子邮件、博客帖子、培训内容、测试答案等 指向我可

我正在根据客户的指示,为培训内容构建一个小型CMS。我建议使用现有的CMS,但他也希望看到我从头开始编码。这里关于实施CMS的大多数其他问题都集中在高级CMS功能上,例如模板、编辑、SEO、路由等。但我在低级方面看不到太多,尤其是内容的版本控制等

具体来说:是否有任何组件或库可供我在我的CMS中持久化和版本管理我称之为
ContentItem
,或者有好的资源可供我自己参考?
ContentItem
是任何应该有更改跟踪、模板化字段等的大型文本,例如标准电子邮件、博客帖子、培训内容、测试答案等


指向我可以在实体框架级别用于更改跟踪的东西的指针将是一个额外的好处。

向任何数据库表添加版本控制非常简单。只需为version添加一个附加字段,它可以是datetime、timestamp,甚至只是一个您添加到其中的序列号。使用退出键(甚至是唯一的约束)将其设置为复合主键,您就是黄金。规则是,所有更新都是插入


就这么简单。然后在你的查询中,默认情况下你总是会得到最新的版本(按降序排列前1名效果很好)

可能就这么简单,但我可能还需要一点,比如发布了哪个版本,以及“分支”等@ProfK-我不知道有多少支持分支的CMS。大多数最终用户都会对这个概念感到困惑(我知道,我曾试图解释在使用版本控制进行文档管理时它是如何工作的)。当然,您的“内容项”将包含与发布相关的成员,但我假设您已经理解了这一点。你问的是版本控制,我问的是一般的,关于包含版本管理的组件或库,假设这些组件或库有其他功能,而不是我已经讨论过的。