0

いくつかのオブジェクトに対して機能するハイブ プロバイダーを作成しようとしています。

オブジェクトは次のようになります

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 ギャラリーから 2 つの Hive プロバイダー (Umbraco 5 Hive プロバイダーと Umbraco 5 Simple Hive プロバイダー) をダウンロードして確認しましたが、ドキュメントがないことが少し気になります。Wordpress ハイブ プロバイダーなど、他のサンプル ハイブもいくつかダウンロードしましたが、これは Visual Studio ギャラリーのものとはかなり異なります。

アイデア

私は ObjectDataSource のようなものを扱うことに慣れています。必要に応じて、上記の例を完全な CRUD で補完できます。

ここで、1 つの Hive プロバイダーが Umbraco のさまざまな部分にコンテンツを提供できると思います (そうですか?)。新しいリポジトリをセットアップするだけですか? すべてのパーツを接続する方法や、プロバイダーにデータを取得する方法についてはまだ手がかりがありません。

すべてのピースをまとめる方法について何か助けはありますか?

ありがとう

4

1 に答える 1

1

最初のステップは、一歩下がってビジネス要件を評価することです。ユーザーがフロントエンドのフォームで情報を更新できるようにしますか?バックオフィスのコンテンツ用のツリーエディタが必要ですか?組み込みのORMの外部でデータを操作する必要がありますか?

これらの答えが「いいえ」の場合、ハイブプロバイダーはやり過ぎです。単純なサーフェスコントローラ、またはカスタムドキュメントタイプのいずれかを使用してソリューションを評価します。Umbraco5は完全なEAV/CRシステムであるため、一部のCMS製品とは異なり、想像できるあらゆるrdbs構造を表現できます。

ContentExampleは、タイトルとテキストのプロパティを持つ「Article」と呼ばれるドキュメントタイプで表すことができます。このドキュメントタイプを定義するだけで、コンテンツセクションでバックオフィスユーザー向けの追加および編集フォームが即座に提供されます。ニュースなど、「記事」タイプの子を持つことができるノードを制限することもできます。

同様に、アップロードコントロールは、ファイルをドキュメントに添付できるフィールドタイプです。

では、カスタムハイブプロバイダーのポイントは何ですか?

カスタムハイブプロバイダーの目標は、データアクセス層のCRUDアクションを統合することです。その結果、データは、共通のインターフェイスを使用してデータを取得および更新しながら、焼き付けられたnhibernate orm、カスタムテーブル、rssフィード、またはフラットファイルに保存できます。これがあなたが目指しているもののように聞こえる場合は、読み進めてください。

ビジネス要件に戻ります。具体的には、実際にデータをどこに保存しますか?-フラットファイルストレージに関連するフィールドとプロパティがあるとすると、1つのTypedEntity(モデル)が1つのファイルと同等であるとしましょう。いくつかの疑似コードを書く:

最初のステップは、あなたが言うように、「データをリポジトリに入れる」ことです。これには、その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を指定できます。たとえば、content:\\に一致するのではなく、file-manager:\\に一致する可能性があります

カスタムツリーを作成することで、バックオフィスユーザーが新しいエンティティ(間接的に新しいファイル)を追加できるようにし、マクロを介してフロントエンドユーザーに結果を表示できます。

于 2012-06-18T04:28:56.197 に答える