2011-12-24 8 views
1

私は自分のデータレイヤー、ビジネスレイヤーを用意しました。今私はサービス層を実装したい。 wcf riaサービスでこのレイヤーを実装したくありません。 wcfを使ってこのような方法でこのレイヤーを実装する方法はありますか。jsを使ってwcfを通してモデルを取得します。 たとえば、私は自分のドメイン 'Person'を持っています。 (ドメインプロジェクトで)。その後、私の 'PersonRespository'には InsertPerson、GetPersonなどがあり、データベースに「Person」を取得して保存します。wcfとknockout.jsの組み合わせ

今、私は人のdetaisを表示するにはasp.net mvcを使用したいと思います。

したがって、次の2つのレイヤは、プレゼンテーションレイヤとサービスレイヤになり、knockout.jsを使用してクライアント側のデータを操作し、次の問題に取り掛かります。

  1. プレゼンテーションレイヤーはどこにあるのでしょうか。私はasp.net mvcを使用していますので、mvcアプリケーションのモデルフォルダにある必要があります。ドメインモデルから同様のコードクラス(Person)をモデルフォルダにコピーするのが賢明でしょうか。同じときのイベント。

  2. どのように私は 'Person'モデルクラスをjavascriptで取得し、javascriptからデータベースにも更新することができます。

私のアーキテクチャスタイルはエンタープライズレベルか何か不足していますか?

チュートリアルのポイントは参考になります。

さらにご質問がありましたら、お知らせください。

おかげで、

Daljit

答えて

2

質問1:

ありませんあなたのコードを繰り返すべきではありません。これについてDRY(http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)の開発の校長に話があります。

質問2:

あなたがJSONシリアライザを使用してモデルをシリアル化し、あなたのUIにそれを送ることをお勧めします。更新された後、サービスに返送されます。これがどのように行われているかを確認するには、javascriptのGoogle MVVMパターンを参照してください。 KnockoutJsは、あなたが望むものを達成するための素晴らしいスタートです。おそらく、何が起こっているのかを知るためにknockoutjsで行われたいくつかの例をチェックするのが最善です。 MVVMには、より高いレベルでパターンを理解するのに役立つ多くの例がWPF用にあります。私は、indepth MVVMの例のためにcodeproject.comを見ることをお勧めします。

は限り、あなたの層が行くように、あなたは多くのオプションを持っていますが、一般的な推奨事項は、次のようになります。

1)プレゼンテーションがMVVMバインディングによってトリガーされなければならない、すなわちバインディングアップデート場合、UIはその後、自分自身を更新します。
2)asp.netサイドでは、ajax経由でアップデートをUIに送信するときにのみ、モデルを更新する必要があります。 (すべてがajaxを介して送信される必要はありません。そうでない場合、ページに入れるために余分なhtmlやjsを送るべきではありません)。
3)あなたのモデルは本当にasp.netからhtmlページに来るはずです。 (これにより、後で作業が簡単になります。ページはasp.netモデルでのみ更新されるため、複数のドメインからのアイテムを取得することはできません。そのため、迷惑になります。
4)あなたのasp.netサイトはWCFサービスのラッパーを提供し、WCFへの呼び出しを送ることができます。

OR

あなたはasp.netでWCFをラップしたいとウィジェットをページのようにiGoogleのをやっようにする必要があります(WCFにAJAXを経由して直接稀ユースケースを伝えるために、あなたのUIを必要に応じて、または多分しなかった場合asp.netインタラクション、つまり完全なjsアプリなしのモバイル開発)次に、CORSをJSからWCF、JSをasp.netに移行するオプションとしてCORSを調べることができます(これは難しい難易度ですが、プログラムしやすく、作業が難しい私の場合はIIS非ホストのWCFのための非常に低いドキュメンテーションがあるので、WCFのために)。 http://enable-cors.org/

+0

mvvmのため、ドメインモデルをコピーしてasp.net mvcと考えていた – daljit

+0

あなたのMVVMモデルはデータアクセスレイヤーモデルと似ているかもしれませんが、時間がかかると思います彼らは別々に終わるでしょう。ビュー・モデルは、より純粋なデータ・アクセス・レイヤー・モデルとは異なる、最終的なロジックと相互作用をもたらすようになります。 – Dessus

関連する問題