mvcでは、疎結合でhtmlを完全に制御できるとどのように言えますか、どの体でも私を説明できますか、参照は、Googleで検索しましたが、私には明確ではありません。
3 に答える
- ゆるいカップル
ASP.NET MVC は、HttpContextBase、HttpRequestBase、HttpResponseBase、HttpSessionBase などの標準の HttpContext クラスを抽象化して動作します。これにより、これらのクラスは抽象的であり、モックできるため、単独での単体テストが容易になります。従来の ASP.NET WebForms では、実際の ASP.NET コンテキスト クラスに依存しているため、コードを単体テストするのは非常に困難です。これらのクラスは、機能するために実際のコンテキストを必要とするため、模擬することはほぼ不可能です。これは、従来の Web フォームと比較して、ASP.NET MVC の優れた点の 1 つです。
また、さまざまな側面 (モデル ロジック、ビュー ロジック、コントローラー ロジック) をより明確に分離できます。これは、従来の WebForms ではこの分離を実現できないという意味ではありません。ビューとコードビハインドにすべてを配置するという標準的なアプローチに従うと、少し難しくなります。
- html を完全に制御
ASP.NET MVC ビューでは、実行時に HTML を生成する WebForm に UserControl を配置する従来の ASP.NET WebForms とは対照的に (この生成された HTML をほとんど制御できません)、ASP.NET MVC ビューでは、HTML を記述しているのはユーザーです。したがって、好きな HTML を記述できます。
2 つのアイデアは (やや) 別個のものです。それがあなたの混乱があるところかもしれません。
ASP.NET MVC (および一般的な MVC パラダイム) は、モデル、ビュー、およびコントローラーという各関係がアプリケーションのさまざまな側面を処理するという事実により、疎結合と見なされます。モデル = データ、ビュー = ユーザー インターフェイス、およびコントローラーは、これら 2 つとビジネス ロジックの間の対話を管理します (MVC のオニオン パラダイムに追加のサブレイヤーがある場合は、さらに分離できます)。この関心の分離により、WebForms では実現できない (または少なくともそれほど容易ではない) ユーザー テスト、モッキング、およびリファクタリングの容易さが改善されます。
HTML を完全に制御できるのは、ASP.NET の歴史によるものです。ASP.NET は、もともと WebForms から始まりました。WebForms は、作成できるアプリケーションの "ドラッグ アンド ドロップ" および "ポイント アンド クリック" パラダイムを非常に気に入った開発者に応えて作成されました。ボタンを画面にドラッグし、ダブルクリックしてそれに関連付けられたアクションを取得し、コードを記述して完了です! 簡単でした。
同時に、この容易さは、起こっていた多くの根底にある「もの」を隠しました. HTTP は、設計上、ステートレスです。WebForms はステートレスであることを明確に隠し、実際には、ViewState の管理を中心としたさまざまな手法を使用して、HTTP をステートフルに見せようとしました。さらに、このドラッグ アンド ドロップ パラダイムにより、ユーザーが HTML を直接制御できなくなりました。ASP.NET MVC は、View に直接 HTML を記述することで、それを "修正" します (これを修正と見なさない人もいます。それは、何に関心があるかによって異なります)。したがって...より多くの制御。
WebForms モデルに関するその他の良い情報: https://stackoverflow.com/questions/46031/why-does-the-asp-net-web-forms-model-suck
あなたの質問は非常にあいまいですが、asp.netと比較していて、インターネットのどこかでこの行を読んだことがあると思います。
疎結合 - これは主に、完全な Web サイトを開発するために使用されるユニットに当てはまります。Asp.net MVCまたはその他のMVCパターンでは、MVC自体がModel-View-Controllerを表しているため、これは懸念の分離であり、各項目が実行する意味ではないという事実は、ie-viewがすべてのUIを処理することですレイヤーとは、個々のエンティティを個別にテストできることを意味します。
HTML の完全な制御 - 従来の asp.net では、多くのサーバー コントロールが使用されていたため、マークアップは asp.net フレームワークによって生成されていました。asp.net MVC では、すべてのマークアップが記述されているか、少なくともユーザーが編集可能です
MVC パターンと、それが asp.net MVC でどのように使用されているかについて詳しく読む