0

我试图创建一个能够处理某些对象的配置单元提供程序。

一个对象可能看起来像这样

public class MyContent
{
    public System.Collections.Generic.List Content { get; set; }
}

public class ContentExample
{
    public string Title { get; set; }
    public string Text { get; set; }
}

public class MyFiles
{
    public System.Collections.Generic.List Files { get; set; }
}

public class FileExample
{
    public System.IO.FileInfo File { get; set; }
}

我已经从 Visual Studio Gallery 下载并检查了两个 Hive 提供程序(Umbraco 5 Hive 提供程序和 Umbraco 5 Simple Hive 提供程序),但是缺少文档有点令人不安。我还下载了其他一些示例配置单元,例如 Wordpress 配置单元提供程序,但该配置单元与 Visual Studio 库中的配置单元有很大不同。

理念

我习惯使用 ObjectDataSource 之类的东西,如果需要,上面的示例可以用完整的 CRUD 来补充。

现在,我假设一个 Hive 提供商将能够为 Umbraco 的不同部分提供内容(对吗?)。只需设置一个新的存储库就可以了?我现在已经知道如何连接所有部分,甚至如何将数据输入提供程序。

对我如何将所有部分组合在一起有任何帮助吗?

谢谢

4

1 回答 1

1

第一步是退后一步,评估您的业务需求。你会允许用户在前端使用表单更新信息吗?您是否需要后台内容的树编辑器?您是否需要处理内置 ORM 之外的数据?

如果这些问题的答案是否定的,那么蜂巢供应商就太过分了。使用简单的表面控制器或仅使用自定义文档类型来评估解决方案。Umbraco 5 是一个完整的 EAV/CR 系统,因此与某些 CMS 产品不同,您将能够表示您可以想象的任何 rdbs 结构

ContentExample 可以表示为名为“Article”的文档类型,它具有 Title 和 Text 属性。只需定义此文档类型,我们就会立即在我们的内容部分为我们的后台用户添加和编辑表单。我们甚至可以限制哪些节点能够拥有“文章”类型的子节点,例如新闻。

同样,上传控件是一种允许您将文件附加到文档的字段类型。

那么自定义配置单元提供程序有什么意义呢?

自定义配置单元提供程序的目标是统一数据访问层的 CRUD 操作。因此,数据可以存储在烘焙的 nhibernate orm、自定义表、RSS 提要甚至平面文件中,同时仍然使用通用接口来检索和更新它。如果这听起来像您的目标,请继续阅读。

回到业务需求,具体来说,您希望将数据实际存储在哪里?--假设您有一些与平面文件存储相关的字段和属性,假设一个 TypedEntity(一个模型)等效于一个文件,并且写一些伪代码:

第一步,正如您所说的“将数据放入存储库”。这涉及返回到该 VS 模板并使用您的逻辑填充“未实现”方法以存储和检索数据。

    protected override void PerformAddOrUpdate(TypedEntity entity)
    {
        // step 1: serialize the typed entity to xml
        // step 2: write the file to the hdd, making sure that the file name is named using the                 hive id so that we can pull it back later.
    }

编写完数据访问层或 DAL 后,您可以将其连接到 hive 配置中,并为其提供匹配的 url。例如,而不是匹配内容:\\,您的可能匹配文件管理器:\\

我们可以让我们的后台用户能够通过编写自定义树来添加新实体(间接地,新文件) ,并且我们可以通过宏向我们的前端用户显示结果。

于 2012-06-18T04:28:56.197 回答