2012-09-14 9 views
7

はその後Umbraco文書を表し、多くのクラスがありますUmbraco:ノード、DynamicNode間の違い、コンテンツ

1) umbraco.cms.businesslogic.Content 
2) umbraco.cms.businesslogic.web.Document 
3) umbraco.MacroEngines.DynamicNode 
4) umbraco.presentation.nodeFactory.Node 

は、他のものはありますか?

あなたは彼らが何をするのか、いつ使用するのか説明できますか?

umbraco.MacroEngines.DynamicNodeumbraco.presentation.nodeFactory.Nodeは同じように見えます。おそらく、Nodeクラスを使うほうが速いので、Nodeクラスを使用する方が良いでしょうか?

私は理論があります。

umbraco.cms.businesslogic.Contentumbraco.cms.businesslogic.web.DocumentcmsContentcmsDocument DBテーブルの表現です。

umbraco.presentation.nodeFactory.Nodeumbraco.MacroEngines.DynamicNodeは、ウェブサイトに利用するために、XMLファイルにキャッシュされたノードを表します。 最初は単純ノードで、2番目は動的プロパティが追加された同じノードです.1つはnodeTypeで定義されたプロパティ用です。 だから、私はノードDynamicNode

よりも高速ですが、これを確認することができ、誰かがあることと思いますか?

答えて

9

を使用してマクロのUmbracoのそれ以降のバージョンで実装:

  1. 内容:Document | Media | Member APIを使用しないでください(このクラスから継承します)。
  2. ドキュメント:作成|更新|削除操作に使用します。すべての操作をDBに直接行います。したがって、dbから直接値を取得する必要がある場合のみ、読み取りに使用する必要があります。
  3. ノード:これを最もよく使用する:読んでいるとき|ユーザーコントロール、コードライブラリ、xslt拡張などでデータを表示する場合
  4. DynamicNode:Razorマクロ。私はまだ多くの情報を提供するのに十分なこの1つを使用していません。

詳細については下記を参照してください。ただし、NodeとDynamicNodeは同じではありません(DynamicNodeはExamineを使用し、必要に応じてDBからの読み取りにも戻ります)。

umbraco.cms.businesslogic.Content: コンテンツは、一般的なデータを使用しますCMSNodeとクラスの間の中間層です。コンテンツは、対応するContentTypeで定義された汎用データを保持するデータ構造です。コンテンツは、ある意味ではデータベーステーブルの行と比較され、ContentTypeは列の定義を保持し、Contentにはデータが格納されます。 umbracoのコンテンツデータはではなく、という表形式ですが、トレスト構造になっています。

すべての操作が対応するサブクラス(Document、Media、Memberなど)によって処理されるため、このクラスを直接使用する必要はありませんでした。ターンでは、このクラスには、umbraco

内のコンテンツデータのすべての作品をumbraco.cms.businesslogic.web.Document基底クラスであるCMSNodeから継承:ドキュメントが公開ドキュメントは、ランタイムにさらされている、Webページを表し、 /キャッシュされたxmlドキュメントの公開Webサイト。

"コンテンツセクション"からノードを参照するときに使用します。 CRUD操作を処理します。このクラスでは、aspxページでこれらのコントロールをレンダリングする場合のために、各プロパティのデータ型への参照を取得します。

umbraco.NodeFactory.Node:それは読み取り専用のメソッドを公開するiノードインタフェースを実装しています。その情報はすべて、umbracoキャッシュxmlから得られます。データ型に応じてフォーマットされた値の代わりに、各プロパティのコントロールにアクセスすることはできません。

このクラスは読み取り操作にのみ使用できます。すべてがキャッシュから来るので、データを表示するのが本当に速くなります(公開されたノードのみ)。

umbraco.MacroEngines.DynamicNode:それはカミソリマクロで動作するように実装されました。これは、フードの下でNodeFactoryを使用します。つまり、キャッシュされたXMLにもアクセスします。関連するDynamicMediaを使用する場合は注意してください:1:ExtmlIndexはHTMLタグを取り除きます.2:umbraco_v4.11.5のデフォルトのメディアタイプ(実行時キャッシュにない場合はdb)に戻ります。

と同じです。

+0

Examineを使用してDynamicNodeを実行しても、DBから読み取る(「実行時キャッシュにない場合は」)文は競合しているようです。ここでランタイムキャッシュとはどういう意味ですか?私は通常、Umbracoがメモリ内キャッシュに使用するHTTPRuntimeを想定していますが、Examineはそのキャッシュではありません。 – jeffreypriebe

3

私はDocumentとNodeの違いを知っています。 ノードクラスはumbracoキャッシュに格納されたデータを使用し、Documentクラスはデータベースから直接データを取得します。 ノードがDocumentより高速です。 ノードは、保存および公開されたコンテンツのみを返します。

ノードの95%を使用する必要があります。

0

コンテンツは、DB(公開されていないコンテンツを含む)から任意のコンテンツ(ページ/メディア/ ..)を取得/編集することができ、DBからページコンテンツのみを取得/ 、ノードは、(のみ発行)への高速読取り専用アクセス用に使用されるXMLキャッシュとダイナミックノードからページのコンテンツは、ノードに匹敵するものであるが、個人的な使用に基づいて、カミソリ

関連する問題