6

Web フォームまたは MVC を使用した開発で明らかに生産性が向上することはありますか?

4

11 に答える 11

9

ASP.NET MVC と ASP.NET Web フォームの生産性を検討している場合は、この 2 人の開発者を考慮してください。

  1. WinForms および WebForms アプリケーションの作成経験が豊富な一般的な .NET 開発者。
  2. C# コードを記述できる一般的な Web アプリケーション開発者ですが、HTML、CSS、jQuery/MooTools などを手の甲のように知っています。

一般的な .NET 開発者は、元のASP.NET Web フォームでコードを記述するのが最も効率的です。これは、イベント モデルをよく知っており (WinForms と WebForms の間でミラーリングされているため)、このメンタル モデルを使用して Web サイトをすばやく構築できるためです。

  • MVC は、 「Web のしくみ」に関する彼の既存の知識から完全に逸脱しているため、大きな学習曲線を必要とします。これらは、この開発者が MVC で見つける障害です。
    • HTML と CSS を学習して、何が起こっているのか、物事がどのように相互作用するのかを理解する必要があります。
    • JavaScript を学習し、ajax のサーバーにコールバックする方法。
    • 状態を維持する方法を理解し、Cookie が安全ではないこと、およびそのセッションに特定の「落とし穴」があることを確認します。

ジェネリック Web アプリケーション開発者は、 ASP.NET MVCで最も効率的になります。これは、フレームワークが Web アプリケーションの考え方を反映しているためです。イベントやアプリケーションの状態などはありません。彼らは、サーバーに ajax コールバックを書き込む方法を知っています。

  • Web フォームは、 「Web のしくみ」に関する彼の既存の知識から逸脱しているため、この開発者にとって適切なモデルではありません。これらは、この開発者が ASP.NET Web フォームで見つけた障害です。
    • ページのライフサイクルがどのように機能するかを理解するには、時間を費やす必要があります。
    • ViewState は多くの問題を引き起こし、ページが肥大化します。
    • 通常、特定の WebForm コントロールから出てくる悪いコードをすべて修正するために、多くの HttpRequest ハッキングを行う必要があります。
    • jQuery から URL を呼び出す方法に関する既存の知識を使用するだけでなく、AJAX コールバックを処理する方法を学習します。

私の要点は、Web 開発の以前の経験に基づいて、さまざまな開発者がさまざまなレベルの生産性を持っているということです。私は個人的に ASP.NET MVC を好みます。何かを非常に迅速に構築し、意図したとおりに出力することができます。

私は 2 番目の種類の開発者です。Ruby on Rails、Django、ASP.NET Web フォーム、および ASP.NET MVC で Web アプリケーション (ほとんどが小規模) を作成しました。これら 3 つのフレームワーク間での Web 開発の知識は、ほとんど互換性があります (ホスティング言語 (Ruby、Python、C# など) を知っている必要があることを除いて)。

ASP.NET Web フォームで私が見つけた最も腹立たしいことは、開発者に対してあまりにも多くのこと(アプリケーションの状態、Web イベントなど) を行おうとしていることです。コード出力は、多くの場合、Web 標準ではうまく機能しません。 XHTML 1.0 Transitional に直接関連付けられています。データベースの DataGrid と Form から CRUD への迅速で汚い行を超えるものは、通常、ASP.NET MVC で記述する場合と比較して、より多くの苦痛と苦痛を引き起こします。

于 2010-02-08T19:51:23.913 に答える
7

MVC を使用すると、ItemDataBound と ItemCommand が期待どおりに起動しない理由を解明しようとして時間を費やすことはありません。

これで時間を節約できると思われる場合は、MVC が最適です。

于 2008-11-08T13:48:33.997 に答える
7

いいえ。個人的には、MVC は私の脳と同じように機能し、何がどこに、なぜ行くのかを明確に分離していると思います。私は数週間で MVC を使った完全なプロトタイプ コマース サイトを作成しました。これは、Web フォームを使用した場合の少なくとも 2 倍の費用がかかったに違いありません。

于 2008-11-08T13:23:29.180 に答える
5

この時点で、WebForms はより成熟しています。たとえば、検証 (クライアント側とサーバー側) が MVC でより適切にサポートされることを望みます。ただし、時間の経過とともにこれが改善されることを完全に期待しています。私の観点から見た MVC の最も優れた点は、MVC によってコードがはるかにテストしやすくなることです。コードビハインドをテストするのが難しすぎるという理由だけで、私は WebForms でテストされていない多くのコードを残していました。これで、すべてのコントローラー ロジックの単体テストを作成できるようになりました。

最終的に MVC がいくらか遅いことが判明したとしても (そして、そうはならないと私は推測しています)、テスト容易性の向上はそれだけの価値があります。最終的には、その時間を取り戻すことができます。後で戻ってバグのあるテストされていないコードを修正することが少なくなるためです。

于 2008-11-08T13:34:25.710 に答える
3

「迅速な開発」という言葉を聞くと、通常、「新しいソリューションをどれだけ早く開発できるか」という文脈で使用されることがわかります。合理的な答えを導き出す前に、考慮しなければならない要素がたくさんあります。

  • 開発者はフレームワークにどの程度精通していますか?
  • デザインはどの程度包括的ですか?
  • 要件はどの程度複雑ですか?
  • フレームワークの安定性は?

私が初めて ASP.NET MVC に触れたのは、1.0 がリリースされる直前でした。それ以前は、ASP.NET WebForms に非常に慣れ親しんでいましたが、開発プロセス全体に不満を感じていました。私は、関心の分離に関する目標を認識しており、フレームワークによって作成された流れに逆らわずに WebForms で明確な分離を行うことはできないことを十分に理解していました。

ASP.NET MVC を使用して以来、私はすぐに、多くの点でボートに乗り遅れていることに気付きました。WebForms を使用すると、物事を「より速く」構築できますが、基本的には、Microsoft が関与しない環境で確立された標準 (JavaScript、CSS、AJAX など) をより簡単に消化できるようにするのではなく、Microsoft の実装によって人質にされています。また、新しいツール、動作、および機能の作成は、販売や収益性が動機となるべきではなく、開発者コミュニティの技術的要求がそれを必要とするためです。私は 4 月からこの現在の MVC プロジェクトに取り組んでいます。私はこのフレームワークでの作業をとても楽しんでおり、WebForms からの移行に関心のあるすべての人に強くお勧めします。フレームワークの習得には少し時間がかかりますが、理解してしまえば、

WebForms を使用するとアプリケーションをより速く構築できますが、プロフェッショナルな外観の Web サイトが必要な場合は、コンポーネント ライブラリに投資する必要があります。コンポーネント ライブラリを適切に活用するには、確立された標準を学習する必要があります。11 歳の息子が明日 Web 開発を学ぶことに興味を示した場合、WebForms と MVC のどちらを選択するかを考えると、私は MVC を選択します。そうは言っても、MVC に触れる前に、JavaScript、jQuery、AJAX を学習するように彼に指示します。これらのフレームワークを理解すると、他のほとんどすべてのフレームワークをはるかに簡単に理解できるようになるからです。

個人的には、私は「急速な開発」の支持者ではありません。私は企業の開発者としてキャリアを積んできましたが、社内開発を投資と見なしています。非現実的な締め切りに間に合わせるためにプロジェクトを 20% 短縮するよりも、設計と開発に 20% 多くの時間を費やしたいと思います。初期開発中に「節約」された 1 ドルにつき、メンテナンス コスト、再教育、および新しい要件によるアーキテクチャの変更により、少なくとも 1.5​​0 ドルの費用がかかります。しかし、誰もが私と同じように考えているわけではないので、私の簡単な答えは MVC です。

于 2010-01-31T23:45:53.637 に答える
3

MVC は Web 開発にはるかに自然に適合すると思います。前の投稿者が指摘したように、Web フォーム ページの実行ライフサイクルによって引き起こされる奇妙なバグに対処する必要がないため、間違いなく時間を節約できます。

また、ロジックの単体テストをはるかに迅速に作成できる (そしてモックへの依存度が大幅に低下する) ことも大きな利点です。

最後に、MVC フレームワークを使用すると、HTML 要素に独自の ID を指定できるため、css とクライアント スクリプトを記述する方がはるかに簡単であることがわかりました。

于 2008-11-10T00:47:56.567 に答える
1

最終的には、MVC が Web 開発者にとって明らかな勝者になると思います。しかし、ASP.Net は引き続き非常に重要な役割を果たします。なぜなら、自分自身を Web 開発者と見なし、実際には .NET winform の担当者である .NET 担当者が常に存在するからです。ASP.NET sans MVC を使用すると、さまざまなものを非常に迅速にまとめることができますが、恐ろしい、ひどい、神聖でない HTML、CSS、および JavaScript が簡単に作成される可能性があります。MVC は素晴らしさへの扉を開きますが、開発者によるより規律あるアプローチが必要です。

于 2008-11-10T01:06:33.443 に答える
0

多くの人が、Web FromではクリーンなHTMLを取得したり、jquery(およびjquery ajax)を使用したり、css(?)を記述したりすることは不可能だと考えるのは非常に奇妙です。実際にはMVCで行うのと同じ方法で記述できる場合は、常にツールバーからコントロールをドラッグアンドドロップする必要があります。

Webフォームページのライフサイクル、ビューステート、データバインディング、更新パネルも、優れたコードを記述したいかどうかを学ぶのに時間がかかります。ほとんどの人はこれに時間を費やしていないようです。そのため、WebFormsは「あまり良くない」と言われています。

私は成熟したWebFroms開発者ですが、MVCを(楽しみのために)学ぼうとしています。複雑なWebサイトを作成するのに十分です。しかし、今私が見ているように、MVCの主な問題は、多くのコード、実際には多くのコードを記述しなければならないことです。

于 2011-08-05T05:27:12.017 に答える
0

2000 年にオーランドで開催された Professional Developers Conference で最初のベータ版が配布されて以来、私は ASP.NET を使用しています。明らかに、私は WebForms に慣れています。WebForms に対する反対意見のほとんどは、賢明な開発メカニズムによって克服できます。しかし、WebForms は Web 上の RAD のインフラストラクチャを提供しますが、MVC も好きです。MVC はまだ成熟しており、さらに良くなると確信しています。肝心なのは、開発学習のタイムスケールで「あなたはどこにいるのか」と、以前にどのような経験をしたかです。その決断は自分でしなければなりません。あなたが初めての場合は、両方を調査する余裕があります。

于 2011-11-09T01:10:25.263 に答える
0

開発の最初の 90% に関しては、WebForms が明らかに勝者です。問題は最後の 10% であり、MVC が有利な点です。

于 2010-02-01T00:10:52.323 に答える
-1

それはあなたがどのように発展するかによって異なります。

コントロールをデザイナー サーフェイスにドラッグする場合、MVC でそのレベルの迅速な開発に匹敵するのはおそらく難しいでしょう。

一方、ほとんどの時間をソース ビューで過ごす場合は、MVC を使用するとより効率的に行うことができることに気付くでしょう。

AJAX を取り上げると、もしあなたが UpdatePanel に依存している人なら、MVC はおそらくあなたにとって言葉にできないほど惨めなものになるでしょう。

(これは、どのタイプの開発がより「正しい」かという主観的な問題に対処するものではありません。ただし、それがこの質問のポイントだとは思いません。)

于 2008-11-10T01:01:49.350 に答える