7

次に、Umbraco ドキュメントを表す多くのクラスがあります。

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クラスを使った方が早いのではないでしょうか?

私には理論があります:

umbraco.cms.businesslogic.Contentおよびumbraco.cms.businesslogic.web.Documentは、cmsContentおよびcmsDocument DB テーブルの表現です。

umbraco.presentation.nodeFactory.Nodeおよびumbraco.MacroEngines.DynamicNodeは、XML ファイルにキャッシュされたノードを表し、Web サイトで利用します。1 つ目は単純な Node で、2 つ目は同じ Node に動的プロパティが追加されたもので、1 つは nodeType で定義されたプロパティ用です。だから、 NodeはDynamicNodeより速いと思います

これを確認できる人はいますか?

4

3 に答える 3

11

個人的な使用に基づく:

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

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

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

ただし、このクラスを直接使用する必要はありませんでした。その操作はすべて対応するサブクラス (Document、Media、Member など) によって処理されるためです。このクラスは、umbraco 内のすべてのコンテンツ データの基本クラスである CMSNode から継承します。

umbraco.cms.businesslogic.web.Document :Document は Web ページを表し、公開されたドキュメントはキャッシュされた xml ドキュメントでランタイム/公開 Web サイトに公開されます。

「コンテンツ セクション」からノードを参照するときに、このクラスを使用します。CRUD 操作を処理します。このクラスを通じて、aspx ページでこれらのコントロールをレンダリングする場合に備えて、各プロパティの DataType への参照も取得します。

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

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

umbraco.MacroEngines.DynamicNode : カミソリ マクロを操作するために実装されました。内部で NodeFactory を使用します。つまり、キャッシュされた xml にもアクセスします。ただし、関連する DynamicMedia を使用する場合は注意してください: 1: html タグを取り除く ExamineIndex、2: umbraco_v4.11.5 のデフォルトのメディア タイプ (ランタイム キャッシュにない場合は db) にフォールバックします。

上記と同じ。

于 2013-03-14T21:25:29.770 に答える
3

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

95%の時間はNodeを使用する必要があります。

于 2012-09-14T08:45:54.600 に答える
0

Content では DB から任意のコンテンツ (ページ/メディア/..) を取得/編集できます (非公開コンテンツを含む), Document では DB からページ コンテンツのみを取得/編集できます (非公開コンテンツを含む), Node を使用しますXMLキャッシュからの(公開のみの)ページコンテンツへの高速読み取り専用アクセス用。動的ノードはノードに匹敵しますが、Razorを使用したマクロ用にUmbracoの新しいバージョンで実装されています

于 2013-02-13T16:49:57.877 に答える