架構問題是重要的,但它也有反對需要項目多麼複雜要加以考慮。
我通常會爲非Umbraco數據推薦一個單獨的數據庫,因爲這樣可以保持一切都很好獨立和可管理,特別是隨着項目的增長。這也意味着特定於CMS的數據(即內容)可以與非CMS數據分開保存,例如,用戶註冊。
但是,如果項目很小並且不可能增長,請保持簡單。使用相同的數據庫,並使用Umbraco實施的Petapoco ORM。例如:
ApplicationContext.DatabaseContext.Database.Save(new Thing());
或者
變種項= ApplicationContext.DatabaseContext.Database.Single(thingId);
對於自定義數據,再次是需要性,可維護性和簡單的問題。只能使用需要的文檔類型,並且可以將其存儲在CMS中。我的個人規則是,如果它不滿足或組織內容,則它不屬於CMS。例如新聞和新聞類別顯然屬於CMS。但是,對文章發表的評論沒有理由在CMS中。
關於DAL,正如我所說的,Umbraco有一個可以直接使用的Petapoco實現。如果項目足夠基本,就使用它。除非你需要一些分離和/或一些額外的咕嚕聲,在這種情況下,我會建議使用NHibernate或EF,否則使用其他任何東西都沒有意義。
除了上述的點以外,
- 使用的NuGet;
- 使用Umbraco的MVC模式,因爲它將爲您提供更大的靈活性。查看Hybrid Framework,因爲它爲強大而靈活的項目架構提供了一個非常好的起點;
感謝@Digbyswift, 你能解釋一下嗎?除非你需要一些分離和/或一些額外的咕嚕聲,否則我會建議使用NHibernate或EF,否則可以使用其他方法。 難道我們不能使用Petapoco分離DAL嗎? – user576510 2014-09-05 00:55:18
親切解釋可能會出現一些額外需要的情況,我可能需要EF或Nhibernate? – user576510 2014-09-05 01:17:32
您可以爭辯說,如果您打算使用Petapoco的單獨安裝,那麼您可以使用Umbraco的實現,特別是如果項目不夠複雜以保證它。然而,你是對的,你可以使用你自己的Petapoco,而且我有好幾次。 EF和NHibernate比Petapoco這樣的微型ORM提供了許多優勢。例如,NHibernate具有緩存層以防止在同一會話中兩次調用對象,並且還有一個成熟的查詢API。 – Digbyswift 2014-09-05 08:45:01