これが、MVCがASP.NETソリューションを構築するための最も一般的なアプローチである理由です。

MVCはオブジェクト指向スタイルで実装され、最初は従来のGUIアプリケーション用に発明されました。 したがって、Webアプリケーションに適切にマッピングする必要がありました。

MVCは、すでに聞いたことがあるかもしれませんが、Model、View、およびControllerパターンの略です。

  • モデル-モデルとは、アプリケーションの状態、つまりそれが何であるかということです。 たとえば、アプリケーションがフォーラムの場合、モデルには、スレッド、ユーザー、投稿を表すためのClass :: DBIオブジェクトがあります。 モデルは、HTMLサーバーやWebサーバーを処理しません。モデルは、クエリを提供し、その状態を変更する方法も処理します。
  • 見る-ビューはすべてUIの表現に関するものです。 アプリケーション内に多くのビューを持つことができます。 同じフォーラムの例をもう一度考えてみましょう。 ここで、ビューは、ポジショニングページ、ログインページなどを含む完全なスレッドをレンダリングするためのテンプレートとして機能します。
  • コントローラ-ビューでのユーザーアクションがコントローラーに送信されます。 ユーザーの要求は、コントローラーによって受信された後、アクションに変換されます。 これらのアクションは、適切なビューに表示されます。

したがって、MVCパターンは、アプリケーションのさまざまな側面(入力ロジック、UIロジック、ビジネスロジック)を分離するアプリケーションを作成するのに役立ちます。 ありがたいことに、これにより、アプリケーションのさまざまな側面間の緩い結合が可能になり、一度にアプリケーションの1つの側面に集中できるようになります。 緩い結合は、並行開発にも役立ち、複数の開発者が1つのプロジェクトで作業するのが容易になります。 たとえば、1人の開発者はViewで作業し、もう1人はコントローラーロジックで作業し、3人目の開発者はモデルのビジネスロジックで作業します。

Microsoftが古いバージョンのASP.NETMVCフレームワークをオーバーホールし、ASP.NET CoreMVCを採用したことは注目に値します。 新しいフレームワークは、並外れた柔軟性を提供し、ハイエンドWebアプリケーションの開発中に競争に勝ちます。

このアプローチを採用する必要があるその他の理由は次のとおりです。

1)クロスプラットフォーム機能

当然のことながら、製品を開発するときは、MacやLinuxなどのWindowsプラットフォームを超えて実行する必要があります。 このフレームワークの開発ツールを使用すると、VisualStudioのコンポーネントであるVisualStudio Codeを使用して、MacとLinuxの両方のアプリケーションを開発できます。 開発者は、このクロスプラットフォーム機能を簡単に活用して、すべてのプラットフォームのすべてのアプリケーションに対応する機能を開発できます。

2)このアプローチを通じて可能なホスティングの独立性

これは、ツールがクロスプラットフォーム機能をサポートすることのもう1つの利点です。 これにより、アプリケーションをインターネットインフォメーションサービス以外のWebサーバーで実行できるようになります。 これが、ASPNETコアアプリケーション開発とASPNETアプリケーション開発の主な違いです。 後者では、IISがデフォルトのサーバーだったためです。

3)依存性注入のために提供される組み込みサポート

この機能は、他のバージョンのASP.Net MVCにもありましたが、ASP.NET Core MVCには、依存性注入が組み込まれています。つまり、最初から接続されています。 そして、これはコーディング構造をサポートするために使用できます。

4)アプリケーションの完全な制御

このフレームワークは、開発者に完全な制御を提供して、パターンベースのアプローチを通じて完全な制御を提供する動的なWebサイトを作成します。 関心の分離により、アジャイル開発が可能になります。 この機能により、最新のWeb標準と統合された高度なアプリケーションを作成できるテスト駆動開発プロセスも可能になります。 これにより、各フェーズでアプリの単体テストを行うことができ、開発プロセスを迅速かつ柔軟に行うことができます。 これを行うには、互換性のあるNETフレームワークを使用するだけです。

5)オープンソース機能により、コーディングが柔軟になります

ASP.NETを使用すると、プロジェクト開発環境全体でモジュール性を維持できます。 これにより、特にアプリケーションの展開中に、必要に応じてフレームワークコンポーネントとライブラリへの単純なコーディングと柔軟性が促進されます。

6)MVCは規律を追加します

規律は、開発者がコードを記述および構造化するときに必要なものです。 あなたが「設定より規約」の原則に従うなら、このアプローチはそれを促進します。 原則によれば、開発者はアプリケーション内でこれらの型にはまらない側面のみを指定する必要があり、柔軟性を失うことなく、意思決定を容易にします。 そして、それはアプリを維持し、より良いテスト容易性を促進する上で大きな助けになります。

7)検索可能なURLを持つアプリケーション

MVCアプローチは、ASP.Netルーティングの広範なサポートを提供し、わかりやすく検索可能なURLと統合されたアプリを開発できるようにします。 URLは、SEOとREST(Representational State Transfer)の両方で適切に機能するURL命名パターンをサポートします。 ASP.NETルーティングは強力なURLマッピングコンポーネントであり、動的アプリの開発に非常に役立ちます。

このアプローチをとる際に注意すべきいくつかの事柄:

その他のオブジェクトとクラス

MVCアプリケーションを作成するときは、ページベースのシステムと比較すると、クラスとオブジェクトが多くなることに注意してください。 幸いなことに、MVCシステムは、コードがより適切に分離されるため、拡張や適応が容易になります。

MVCのモデルパターンは、追加の安全レイヤーとして機能します

パターンのモデル部分は、パターンの本来の目的ではないため、ビジネスロジックを実行しないように注意してください。 これが、ロジックコードがコントローラーで記述され、データの作成と操作が関数の助けを借りてコントローラー内で実行される理由です。 ユーザーはデータベースのモデルとスキーマを完全に知らないため、これは一種の安全性を提供します。

あなたは何がどこに行くのかを知らなければなりません

コントローラーとモデルの分割が難しい場合があるため、コントローラーをできるだけ少なくすることが理想的です(HTTP要求をモデルアクションに変換し、適切なビューを選択することが義務であるため)。

結論

フレームワークのコンポーネントは、要件に応じて交換またはカスタマイズできます。 独自のエンジン、URLルーティングポリシー、アクションメソッドパラメータのシリアル化などを追加できます。

さらに、フレームワークアプローチには、ASPNET機能のサポートの提供とは別に、URL承認、出力とデータのキャッシュ、フォーム認証とWindows認証、メンバーシップと役割、セッションとプロファイルの状態管理、ヘルスモニタリング、構成システムなどの機能が付属しています。 、 もっと。

トピックに関する興味深いリンク:
ASP.NETに関するMicrosoftによる概要
MVC、WebAPIの説明

写真:Flicker.com/ Eric Liu / Blue Coat Photos


著者:Reema Oamkumarは、YUHIROグループの一員であるwww.Software-Developer-India.comでソートリーダーとして従事しています。 YUHIROは、IT企業、代理店、IT部門にプログラマーを提供するドイツとインドの企業です。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください