Sense/Net ECM 背后的正式模型是什么?

What is the formal model behind Sense/Net ECM?

首先,我不知道这里是否适合讨论与 Sense/Net SN 演变和学习过程相关的想法!

无论如何,这是我的故事:

我已经尝试并测试了一些 SN 功能,尤其是内容类型定义 CTD;真的很优雅!

Sense/Net wiki 文档给了我们 "Know How" 我们可以写 200 个关于 SN 的 wiki 页面。所有包含的信息都是真实的。但是,我们没有完整的模型,我们可以在其中看到整个系统模型以及所有案例如何从中得出。

我搜索了 SN codeplex.com 页面,但没有找到 SN 如何发展成为成熟的 ECM 平台。

此外,使用以下关键字搜索 google:

请协作和帮助。

奇怪的是,SenseNet 没有人回答,但我会试一试,尽管我不太了解历史。我在 SenseNet 工作了 4 年多,开发了 pysensenet 扩展,与开发人员交流,熟悉源代码,所以我对框架有所了解。

该框架在过去 15 年多的时间里不断发展,非常出色。以下是一些事实和要点:

  • 数据模型的核心是 XML Tree,其中每个树节点都有一个 C# class 的内部表示,并且可以容纳任意数量的 properties/Fields。这称为 Content,数据库称为 Content Repository
  • XML 树保存在 SQL 数据库中,并使用 Lucene.NET 进行索引。
  • 内容/数据查询是在 Lucene 而不是 SQL 中进行的。
  • 曾经数据库是任意的(SQL),然后 MS SQL 服务器中的存储过程将其锁定到 MS SQL,尽管最近(SenseNet 7)支持 blob 存储在 MongoDB.
  • 字段可以是 9 built-in 字段类型之一,也可以是您定义的自定义类型。
  • XML 树中的一个节点,又名 "Content",可以包含一个字段,该字段引用树中其他地方的另一个节点,就像树中的链表一样!好的,一个双向链表,因为两个节点可以相互引用。很酷
  • 没有"external model",或者如SenseNet所说,"Everything is Content"。
  • 权限系统是基于节点的,非常精细。例如,您可以定义权限,使一个角色、组或个人只能看到特定节点的内容。它与 Active Directory 集成。
  • 所有内容都可以进行版本控制和跟踪。例如,"Contact"(人)的内容类型可以对该人的姓名进行版本控制。这样,如果有人更改了他们的名字,内容存储库将拥有所有名称更改的历史记录。

希望这不会成为 SenseNet 的营销作品——我不为他们工作,如果你购买许可证也不会受益——但可以帮助你将它与其他技术(如 SharePoint)进行比较和 Alfresco。