2012-06-15 22 views
0

我试图创建一个可以处理某些对象的配置单元提供程序。使用对象作为数据源编写自定义Hive提供程序

的对象可以是这个样子

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库(一把umbraco 5蜂巢提供商和一把umbraco 5个简单的蜂巢提供商)两个蜂巢供应商,但缺乏文档有点令人不安。我还下载了一些其他示例配置单元,如Wordpress配置单元提供程序,但是它与Visual Studio库中的配置单元非常不同。

思想

林用于与像的ObjectDataSource东西工作,上面的例子中,可以用全CRUD如果需要补充。

现在,我假设一个Hive提供者将能够使用内容服务于Umbraco的不同部分(对吧?)。只需建立一个新的存储库并去?我现在已经知道如何连接所有部分,甚至如何将数据提供给提供者。

任何帮助我如何将所有作品放在一起?

谢谢

回答

1

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

如果答案是否定的,配置单元提供者是矫枉过正的。使用简单的表面控制器评估解决方案,或仅使用custom document type。 Umbraco 5是一个完整的EAV/CR系统,因此与一些CMS产品不同,您可以表示任何可以想象的rdbs结构

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

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

那么自定义蜂巢提供程序有什么意义?

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

回过头来看看这个企业的要求,特别是,你要到哪里其实数据 - ?既然你有一些领域和相关平面文件的存储性能,让我们说,一个TypedEntity(模型)等同于一个文件并编写一些pseduocode:

第一步,就像你说'将数据存入存储库'。这包括回到那个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,你可以在蜂巢配置勾起来,给它的URL相匹配。例如而不是匹配内容:\\,您可能会在文件管理器上匹配:\\

我们可以通过编写a custom tree来允许我们的后台用户能够添加新实体(间接地,新文件),并且我们可以显示结果通过宏传给我们的前端用户。

相关问题