2012-05-13 13 views
0

私は新しいUmbraco 5ハイブを試しています。ちょっと混乱しています。Umbracoハイブとサービス層

私はwebformsサイト用に開発した既存のLinq to SQLサービス層をプラグインしています。

私はリポジトリパターンについてよく分かりません。私のサービスはデータコンテキストとのすべての接続を処理していて、うまく動作します。

私はハイブにプラグインするいくつかのリポジトリを作成し、エンティティのUmbraco TypedEntityタイプへの変換を処理しました。

これらのリポジトリは、既存のサービスレイヤを参照し、取得、追加、更新、および削除を行います。このサービスは、ハイブが使用しない他のエンティティ固有の機能も処理します。

これらのサービスをプラグインして、ハイブリポジトリで参照するといいですが、私が読んだように、公式のリポジトリパターンに従って、私は間違ったやり方をしているようです。

私は固い速いルールはないことを知っていますが、私はこの機能を達成するために私が何をしているのか感謝します。

ウンブラのフォーラムではなく、ここで私は広い視点を求めています。

乾杯。

+0

私は尋ねると心配しますが、Get ()を呼び出すと、それはテーブルの主キーですか?これまでのところ、私は単純なハイブのプロバイダをdynamodbで記述していますが、TypedEntityとリレーションプロキシについては少し分かりません。高度なハイブプロバイダーのテンプレートは実際に直感的ではありません – MikeW

答えて

0

私は個人的にハイブが過度のものだと感じます。剃刀マクロ内で自分のクラスを直接使うことができるので、最高の方法は、ハイブをあきらめてクラスを使うことです。既存のサービスのパワーを、ハイブインターフェイスに適合させるために、なぜトレードするのですか?

他のUmbraco開発者用のライブラリを作成している場合は、これを行う必要があるかもしれませんが、ハイブは最悪の場合は過剰に設計されており、新しく開発された開発者を対象とする抽象レイヤーです。

私があなたにお勧めする場合、より一般的な原則である「Keep It Simple」と「You Need Not It It It」を考えてみましょう。彼らがあなたに与えたインターフェイスが目に見えるメリットをもたらすなら、それを実装してください。そうでない場合は、あなたがその仕事のすべてに対して本当に得るものを考えてください。

+0

しかし、完全にポイントではありませんが、この記事ではAyende Rahienがこの問題の精神を取り上げています。まず、複雑なものを単純化しようとしています(本質的には細部のいくつかを見逃していることを意味します)、単に存在する必要のない抽象レイヤーを追加しています。 http://ayende.com/blog/3955/repository-is-the-new-singleton – Sprague

関連する問題