5

asp.netアプリケーションで、Webクライアントソフトウェアファクトリー(WCSF)とそれに関連するモデルビュープレゼンターパターン(MVP)の使用を、ページメソッドと組み合わせたいと思います。ページメソッドは、でマークされた.aspxビューの静的メソッドです。 [WebMethod]属性。

ただし、aspxページの静的メソッドは、ビューが通信するために必要なプレゼンターとコントローラーのコンテキストを持つためにページ上にインスタンスメソッドが必要であるため、モデルビュープレゼンターパターンを壊すように見えます。

ページ上の[WebMethods]、別名ビューをサポートするために、WCSFでasp .netのMVPパターンをどのように拡張しますか?

4

2 に答える 2

4

最近、MVP のパターン化されたプロジェクトを実行していて、多くの AJAX 統合が必要なときに、同様の問題が発生しました。呼び出す MVP パターンに準拠した Web サービスを用意するのが最善です。

PageMethod は、現在のページにある Web サービスにすぎないことに注意してください。ページレベルのオブジェクトにはアクセスできないため、そこにあることの利点は最小限です。実際、それらは不利だと思います。開発者 (概念に慣れていない) に、ページレベルのオブジェクトとやり取りできるという考えを与えてしまいます。

ページ メソッドがモデルと対話する必要がない場合 (たとえば、JS よりも C#/VB.NET の方が高速な複雑な算術計算を処理している場合)、操作は次のようになります。実際には UI レベルの操作であり、アプリを WinForm (またはその他のもの) に変換する場合は、おそらく無関係です。

UI レベルでのデータとのやり取りはすべて、その UI 実装に固有のものであることに注意してください。プレゼンター用に別の UI を作成する場合、UI レベルのデータ操作が異なる可能性があります。

于 2008-09-27T01:51:26.880 に答える
2

静的ページメソッドの代わりにASP.NetAJAXWebサービスを使用することで、探しているものに近づくことができると思います。Webサービスには静的ではないという利点があり、ビューの実装方法によっては(WCSF MVPパターンの詳細に精通していません)、Webサービスを「ビュー」レイヤーにする可能性があります。少なくともかなり近いもの。

私が取り組んでいるプロジェクトで同様のことをしました。モデルから「ビュー」にデータを運ぶために、WebサービスによってJSONにシリアル化されるシンデータ専用クラスを作成する必要がありましたが、Webサービスには、イベントとして公開されるのと基本的に同じメソッドがありました。景色。

このアプローチで私が気に入った点の1つは、Webサービスを含むすべてのビットがテスト可能であることです。

于 2008-09-27T01:12:58.173 に答える