2

私は HMVC と、現在の MVC アプリでそれをどのように、または考慮する必要があるかを理解しようとしています。

[this][1] MVC アーキテクチャに関する質問からのこの引用については、

Hierarchical-Model-View-Controller (HMVC) パターン (別名 Presentation-Abstraction-Control) は、より複雑なインターフェイスやアプリケーションの要求に対処するのに適している場合があります。

「しかし、従来の MVC スコープは、GUI 要素 (ウィジェット) の制御に関しては不十分です。MVC は、データ管理、イベント管理、およびアプリケーション フローの複雑さを処理しません。MVC トライアドの適応として、HMVC - - Hierarchical-Model-View-Controller -- パラダイムは、上記の問題のいくつかを是正しようとしています。」

Jason Cai、Ranjit Kapila、および Gaurav Pal (2000 年 7 月)。「HMVC: 強力なクライアント層を開発するためのレイヤード パターン」. JavaWorld マガジン。

[1]: https://stackoverflow.com/questions/113602/when-to-use-mvc-architecture

私は PAC/HMVC を理解しようとしてきましたが、上記の文章は心に響きました。HMVC のトライアドの抽象化は、ページの「ウィジェット」に適用できます。または、ASP.Net ビュー エンジン (対 Razor ビュー エンジン) を使用してページの「コントロール」に変換する方法です。

それは HMVC パターンの正確な適用でしょうか?

もしそうなら、それがどのように実装されるか正確にはわかりません。メインページが正常にロードされ、ユーザーコントロール/ウィジェットの一部がエラーアウトした場合、ページは引き続きロードされるという点で、これの利点がわかります。

では、メイン ページ コントローラーはそのウィジェット コントローラーを呼び出すのでしょうか? メイン ビューから、単純な MVC ページのビューでモデルのオブジェクトを使用するのと同じように、モデルの継承が有効になると推測しています。

これはコードではどのように見えるでしょうか? トップレベル ビューからチェーンをたどって、たとえば 2 つまたは 3 つのトライアドからモデル データを呼び出しますか?

4

2 に答える 2

1

まず、いくつかの興味深い点を挙げます。次に、ASP.NET MVC フレームワークに精通していることを前提としています。

ここで考えてみると、Partial() という HtmlHelper があります。これは、コントローラーとアクションを受け取り、結果を返します。したがって、PartialView を返す Action を作成する場合 (ウィジェットとして使用できます。ページごとに複数持つことができます)、これは上記のアーキテクチャの妥当な実装でしょうか?

ありがとう、

マット

于 2011-10-07T10:18:32.060 に答える
0

HMVC のさまざまなリソースを読んだ後、ASP.NET MVC には v2.0 以降、 Areasの形式で HMVC があると思います。

これをT4MVCと呼び出し Action.PartialX() メソッドと組み合わせると、次のバズワード HMVCを手に入れることができます。

于 2011-12-27T11:08:14.743 に答える