我是Umbraco的新手,我观看了Umbraco.tv视频,并想在项目中使用Umbraco作为管理和编辑内容的cms。我非常感谢您的指导,时间和对3个问题的看法:
如何构建基于Umbraco的数据驱动项目?对于自定义数据库表,您是使用单独的数据库还是使用相同的Umbraco数据库?
您如何使用自定义数据(非内容)?您是否将所有内容都设为文档类型,即使它是您不打算创建内容的数据,例如简单的表单提交数据?
对于DAL,您使用的技术或ORM是什么? Umbraco是否提供用于保存不是内容或文档类型的简单数据的任何API?
再次非常感谢你。
答案 0 :(得分:2)
如果您不熟悉在Umbraco中添加自定义.NET功能,尝试在Umbraco中添加.NET用户控件将为您提供良好的开端,并帮助您了解如何利用自己的.dlls在翁布拉科:
答案 1 :(得分:2)
1 架构问题很重要,但也要考虑项目需要的复杂程度。
我通常建议为非Umbraco数据建立一个单独的数据库,因为这样可以保持一切非常独立和可管理,尤其是在项目增长时。它还意味着CMS特定数据(即内容)可以与非CMS数据分开保存,例如,用户注册。
但是,如果项目规模较小且不可能增长,请保持简单。使用相同的数据库,并背负Umbraco的Petapoco ORM实现。例如:
ApplicationContext.DatabaseContext.Database.Save(new Thing());
或者
var item = ApplicationContext.DatabaseContext.Database.Single(thingId);
2 对于自定义数据,这又是一个需要,可维护性和简单性的问题。仅使用需要的文档类型,并且可以将其存储在CMS中。我个人的规则是,如果它不是内容或组织内容,那么它就不属于CMS。例如,新闻和新闻类别显然属于CMS。但是,对文章的评论没有理由在CMS中。
3 关于DAL,正如我所说,Umbraco有Petapoco的实现,可以开箱即用。如果项目足够基础,那就用它吧。使用其他任何东西都没有什么意义,除非你需要一些分离和/或一些额外的咕噜声,在这种情况下我建议使用NHibernate或EF。
除上述要点外,
答案 2 :(得分:2)
希望这有帮助!
答案 3 :(得分:1)
您可以将包含Umbraco表的数据库用于Umbraco中未使用的表。如果使用多个数据库没有托管问题,那么您可以直接链接到web.config中的第二个数据库 - 这比使用默认的Umbraco数据库更安全,因为Umbraco软件包经常添加数据库表&可能存在命名冲突。
最好通过添加使用标准.Net模式访问数据的宏(例如,razor脚本,.Net用户控件)来查看非Umbraco数据(例如,来自数据库)。然后在Umbraco中添加模板(视图)中宏的引用。您可以为任何文档类型使用多个模板(视图);因此,如果您的文档类型称为“表单”,其中不包含任何数据,则可以使用“允许的模板”复选框来说明哪些视图对此文档类型有效。添加内容项时,必须在开始时指定文档类型,但可以随时更改模板(视图)。
如果您正在存储数据.Net ORM将与Umbraco一起使用(请参阅http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#.NET)我已将Linq用于Sql,Subsonic& Dapper之前 - 但有很多选择。
答案 4 :(得分:0)
看看我在Onion Architecture中使用umbraco的示例