ASP.Net MVCからASP.Net Webformsに戻ります。パターン/アーキテクチャを推奨しますか?


12

多くの人にとって、これはばかげた質問のように聞こえますが、ASP.Net Webformsの経験がほとんどないため、私は尋ねています。ASP.NetMVCに直行しました。

現在、.Net 2.0とVisual Studio 2005に限定されたプロジェクトに取り組んでいます。

ASP.Net MVCを使用する際の懸念の明確な分離が好きで、Webフォームを耐え難くするものを探しています。asp.net MVCを好むが、.net 2.0とvisual studio 2005にこだわっている人に推奨されるパターンやプラクティスはありますか?


すべての提案に感謝します-複数の答えを選べたらいいのにと思います。
-jlnorsworthy

1
あなたの新しい任務が、ゼロから始まるものではなく、既存のプロジェクトだけのためであることを願っています。コレクションでの単純なクエリにLinqを使用するなど、不足していることに依存する多くの基本的なものがあります。大きなフラストレーションは、生成されたHTMLを見て、それがあなたが期待したものとは違うことを見ることになります。幸運を祈ります。成功することを願っています。
クリス

回答:


7

Model View Presenter(MVP)をお勧めします。これを最近のWebFormsアプリで使用し、テスト性を向上させ、懸念事項の分離を強制することができました。

http://msdn.microsoft.com/en-us/magazine/cc188690.aspxは、このパターンに関するJean Paul Boodhooによる素晴らしい記事です。コードのダウンロードも良好です。ただし、DTOやDTOのインターフェイスは必要ない場合があります。

もう1つの優れた記事は、codeproject.comの次の記事です。http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx

編集:WebForms MVPと呼ばれるフレームワークもありますが、私はそれについてあまり知りません。


Webvorms MVPは本当にクールに見えますが、プロジェクトは停止しているようです(07/10の最後のリリース)。利用できるドキュメントやチュートリアルの多くはありません
jlnorsworthy

また、.NET 3.5 SP1が必要なようですので、あまり役に立たないかもしれません。ただし、サンプルとソースは、MVPパターンの評価に役立つ場合があります。
シアラン

良い点、私もそれに気づかなかった。現在の技術を持っている会社とウェブフォームを作成しなければならない場合に、そのプロジェクトに目を光らせておきます:)
jlnorsworthy

4

.net 2.0のページライフサイクルを理解することをお勧めします

これらはすべて無料ではありませんが、見る価値があるかもしれませんが、少なくともこれはあなたにとって良い出発点になります。


3

ASP.NET MVCで学んだことをいくつか学び直す必要があることを発見したかもしれません(ところで-ASP.NETの人がASP.NET MVCを学習しようとすると同じことが起こります)。ASP.NETで引き続きMVCパターンを実装できますが、イベントとページのポストバックアーキテクチャにより、ASP.NETではビューとモデルの分離が非常にぼやけています。

私の意見では、あなたの新しい学習の大部分はページのライフサイクルとイベンティングとコントロールに関連するでしょう。通常のセッション、キャッシュ、ViewState、およびDBの相互作用は同じままです。

HTH ...


2

フロントコントローラーのパターンをチェックアウトし、Asp.Netでフロントコントローラー実装します。これらのことは、プロジェクトが適切なサイズになる場合にのみ行ってください。小さなプロジェクトでこれを行うと、ROIが正当化されません。

小さなプロジェクトでは、いくつかのガイドラインを設定してみることができます。たとえば、コードビハインドではビジネスロジックやセッションの使用などはありません。

あなたのケースに最適なものをご覧ください。いずれにせよ、エンジニアリングをやりたいという誘惑を持ちます。


0

.NET 1.1の暗黒時代に戻って、私はこのようなアプリケーションのためのMVCシステムを作成しました(誰もがそうであると思います)。

ページは一種の「偽物」マスターになるように作成されました。これには、メニュー、スクリプト、スタイルなどを表示するための配管がありました。

「ビュー」は個々のユーザーコントロールでした。

各ビューに関する情報を含む表がありました。たとえば、「製品」は~/Controls/Product.ascxプレースホルダーにロードされます。テーブルには、モデルクラスのタイプ名を含むフィールドがあります(あたかも)。各モデルは、既知のインターフェイスを実装しました。このクラスはを使用Activator.CreateInstance()してインスタンス化され、初期化のために呼び出され、コントロール自体に渡されました(コントロールの反転?)。次に、コントロールはさまざまなメソッドを呼び出して、データセットまたはその他を取得します。インターフェイス自体は、通常のCRUDメソッド(読み取り/書き込み/リスト/削除)を持つように正規化されました。この下にはDAL / ORMレイヤーもありました。

きれいではありませんでしたが、うまくいきました。テストと開発は簡単であり、参加したほとんどの開発者はかなり迅速に対応できました。とりわけ、作成は比較的簡単でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.