質問
エンティティフレームワークと標準のasp.net + ajaxを使用したWebサイトの作成はかなり近づいていますが、Microsoft mvcを使用してやり直した方が賢いのではないかと考えています。 MVCは新しいものになりそうですか、それを実装しようとする必要がありますか? トラフィックの多いサイトでMVCはどのように機能しますか?
解決
すべてのハードワークをやり直すことを考えている理由を評価すると、答えが得られます。
-
このサイトはあなた自身の学習目的で行われたプロジェクトですか?もしそうなら、MVCでサイトをやり直すことは、あなたがすでにやったことの多くを捨てる意思がある限り、オプションです。
-
サイトは誰かに費用をかけて行われていますか?その場合、プロジェクトを不必要に戻すため、この段階でMVCでサイトを絶対にやり直さないでください。
覚えておいてください、財務が関係している場合、すでに行った事柄をバックトラックし、やり直します。単にあなたがより良い技術で作業する機会を与えるために、それを行うための合理的なビジネスケースが必要でした。顧客は、ほとんどの場合、どのテクノロジーを使用するかを気にしません。それを行うのにかかる時間と費やす金額を気にします。したがって、あなたの決定はあなたではなく、彼らのニーズに基づいているべきです。
他のヒント
すでに開発が終了したものや、新しい技術を投入する準備ができているものをリエンジニアリングしないでください。むしろプロジェクトを完了し、改訂版または完全に新しいサイトで新しいテクノロジーを使用します。このタイプのリファクタリングを考慮する必要があるのは、ビジネス要件が変更され、新しい要件に新しい機能が必要な場合のみです。
Mvcは非常に強力で安定したプラットフォームですが、開発者にとっては選択肢です。ビジネス要件により、使用するソリューションのタイプが定義されます。これは、適切な仕事に適したツールの例です。
最近の例では、選択をしなければなりませんでしたが、プロジェクトが完了するとメンテナンスサポートスキルが不足し、この目的のために単一のリソースに依存するため、ビジネスはMvcを使用するオプションを拒否しました。
あなたがほぼ完了した場合、再実装する意味がわかりません。次のWebサイトに保存して、試してみませんか?また、スタックオーバーフローはASP.Net MVCを使用して実装されます-パフォーマンスは信じられないほど多く、トラフィックが多くなります。
個人的には、MVCを使用することをお勧めします。MVCはより直感的であり、Webフォームよりもページをより詳細に制御できます。
MVCを初めて使用する場合は、学習曲線が少し急になる可能性があるため、MVCから再び開始することはお勧めしません!
あなたが話しているウェブサイトが世界に公開する予定のウェブサイトである場合は、投げることを決める前に、あなたがしていることを完了し、それを出荷し、サイトでユーザーのフィードバックを得るようお勧めします離れて再実装します。これが単なる趣味のサイトである場合、それを捨てることは問題ありません。
ただし、ASP.NET MVCの方が優れていることは間違いありません。今後のすべての開発では、デフォルトのオプションとして使用する必要があります。
他の応答で述べたように、SOはASP.NET MVCを使用しています。
ASP.NET MVCが規模の要件を満たすのを妨げるとは思わない-一般的なWebサイトでは、データソース(SQLデータベース、または呼び出すWebサービス)が一般に制限されます。高トラフィックに対処する能力。
使用パターン、ページを構築するためにアクセスしているデータの量、コンテンツがキャッシュ可能かどうか、ページを読んでいる数百万人のユーザー、またはデータを更新している数百人のユーザーによって、このようなものは、スケーリングする能力を促進します。これらのほとんどは、ページをレンダリングするために使用するフレームワークに直交しています。
まあ、StackOverflowはASP.NET MVCを使用しており、かなりトラフィックの多いサイトです。 SOの速度低下は一度もありません。そのため、ASP.NET MVCに固有の主要なパフォーマンス制限はないと思います。
MVCは非常に優れており、最初のCTPから使用しています。ただし、MVCブログ/チュートリアルを盲目的にフォローしているだけの場合、パフォーマンスの問題があります。
をご覧ください。既に多くのUIレイヤーを作成している場合、MVCが期待を裏切ることのない新しいテクノロジーを学ぶ時間があれば、他の方法でWebフォームに固執する
ほとんどの人が言ったように、現在のサイトをほぼ使い終わったら、そのまま続行してください。
次のプロジェクトでは、座ってMVCを学ぶことを強くお勧めします。切り替えを行うと、異なるレイヤーが非常に明確になり、明確になり、その結果、より簡潔になります(うまくいけば)。
その結果、以前のサイトに戻って作業する必要がある場合、それほど難しくない場合は、MVCでそれらを再実装することを決定できます。コードで何が起きているかを完全に制御するのは素晴らしいことです。また、VBやC#を使用したくない場合は、分岐して IronRuby および IronPython を使用して、途中でいくつかの新しい言語を選択します。 MVCは完全に拡張可能であり、(現在)オープンソースであることは言うまでもありません。長所と短所を見たい場合は、この質問をご覧ください。
もう1つのオプションは、WebFormsでサイトのセクションを実行し、MVCで別のセクションを実行することです。あなたがこれを行うことを妨げるであろう私の知識には何もありません。
前にも言ったことがありますが、もう一度言います。 :)最近、ほぼ完成したプロジェクトをasp.netではなくmvcとして再作成しました。準備に1週間余分にかかりましたが、顧客はそれがどれほど素晴らしいものであるかに非常に満足していました!
( https://msdn.microsoft .com / en-us / library / dd381412(v = vs.98).aspx )
MVCアプリケーションを作成するタイミング
ASP.NET MVCフレームワークまたはASP.NET Webフォームモデルのどちらを使用してWebアプリケーションを実装するかを慎重に検討する必要があります。 MVCフレームワークは、Webフォームモデルを置き換えません。 Webアプリケーションにはどちらのフレームワークも使用できます。 (既存のWebフォームベースのアプリケーションがある場合、これらは従来とまったく同じように機能し続けます。) 特定のWebサイトにMVCフレームワークまたはWebフォームモデルを使用することを決定する前に、各アプローチの利点を検討してください。
MVCベースのWebアプリケーションの利点
ASP.NET MVCフレームワークには、次の利点があります。
- アプリケーションを分割することで複雑さを管理しやすくなります モデル、ビュー、コントローラーに。
- ビューステートまたはサーバーベースのフォームは使用しません。これにより MVCフレームワークを完全に制御したい開発者に最適 アプリケーションの動作。
- Webアプリケーションを処理するフロントコントローラーパターンを使用します
単一のコントローラーを介した要求。これにより、
豊富なルーティングインフラストラクチャをサポートするアプリケーション。もっと
情報については、フロントコントローラーを参照してください。 - テスト駆動開発(TDD)のサポートが向上しています。
- 大規模にサポートされているWebアプリケーションに適しています 開発者のチーム、および高度を必要とするWebデザイナー向け アプリケーションの動作を制御できます。
WebフォームベースのWebアプリケーションの利点
Webフォームベースのフレームワークには、次の利点があります。
- HTTP経由で状態を保持するイベントモデルをサポートします。 基幹業務Webアプリケーション開発の利点。ウェブ フォームベースのアプリケーションは、サポートされている多数のイベントを提供します 数百のサーバーコントロール。
- 機能を追加するPage Controllerパターンを使用します 個々のページ。詳細については、ページコントローラを参照してください。
- サーバーベースのフォームでビューステートを使用します。 状態情報が簡単になります。
- Web開発者とデザイナーの小規模なチームに適しています。 利用可能な多数のコンポーネントを利用したい 迅速なアプリケーション開発のため。
- 一般に、アプリケーション開発ではそれほど複雑ではありません。 コンポーネント(Pageクラス、コントロールなど)はしっかりと 統合されており、通常はMVCモデルよりも少ないコードで済みます。