asp.net-mvc
MVCとWebフォーム
サーチ…
前書き
ASPにジャンプする前に。 NET MVCを使用してWebアプリケーションを開発するには、フレームワークの利点と欠点を考慮する必要があります。また、ASP .NET WebフォームであるMicrosoftによって作成および管理される別のWebフレームワークがあることを知っておく必要があります。
どちらを選択すべきかは、両方の技術の知識の問題です。
構文
ASPX View Engineは、サーバー側のコンテンツをレンダリングするために "<%=%>"または "<%:%>"を使用します。
Razor View Engineは@を使用してサーバー側のコンテンツをレンダリングします。
備考
ASP .NET Webフォームの利点
グリッド、入力、グラフ、ツリーなどを処理するための事前ビルドコントロール。
HTTPを介して状態を保持するイベントモデルをサポートしており、基幹業務Webアプリケーションの開発に役立ちます。 Webフォームベースのアプリケーションは、何百ものサーバーコントロールでサポートされている数十のイベントを提供します。
個々のページに機能を追加するPage Controllerパターンを使用します。詳細については、MSDN WebサイトのPage Controllerを参照してください。
ビューステートまたはサーバーベースのフォームを使用するため、状態情報の管理が容易になります。
これは、迅速なアプリケーション開発に利用できる多数のコンポーネントを利用したいWeb開発者やデザイナーの小規模なチームにとっては効果的です。
一般に、コンポーネント(ページクラス、コントロールなど)は緊密に統合されており、通常はMVCモデルよりも少ないコードしか必要としないため、アプリケーション開発にはあまり複雑ではありません。
WindowsForm開発から来た開発者のための簡単な開発モデル。
MVCベースのWebアプリケーションのメリット
アプリケーションをモデル、ビュー、およびコントローラに分割することで、複雑さを簡単に管理できます(懸案事項の分離)。
ビューステートまたはサーバーベースのフォームは使用しません。これにより、MVCフレームワークは、アプリケーションの動作を完全に制御したい開発者にとって理想的です。
単一のコントローラーを介してWebアプリケーション要求を処理するFront Controllerパターンを使用します。これにより、豊富なルーティングインフラストラクチャをサポートするアプリケーションを設計できます。詳細については、MSDN WebサイトのFront Controllerを参照してください。
テストドリブン開発(TDD)をより良くサポートします。
これは、アプリケーションの動作を高度に制御する必要がある開発者やWebデザイナーの大規模なチームによってサポートされているWebアプリケーションにとっては効果的です。
短所
Webフォーム:
- 複雑なページライフサイクルでは、サーバーにリクエストが行われるたびに、イベントハンドラの前に実行するメソッドが少なくとも5つあります。
- JQueryやAngularのようなクライアントサイドのフレームワークで作業することをお勧めします。
- Asyncronous Javascript and XML(AJAX)での作業が難しい
- ビューステートハンドリング
- ページのクライアント側とコードビハインドは緊密に結合されています。
MVC:
- Webフォームと比較して開発には時間がかかります。
- データはクリアテキスト形式でサーバーに送信されますが、Webフォームではビューの状態データはデフォルトで暗号化されます。
Razor View Engine VS ASPX View Engine
剃刀(MVC) | ASPX(Webフォーム) |
---|---|
Razor View Engineで使用される名前空間は、System.Web.Razorです。 | ASPXビューエンジンで使用される名前空間は、System.Web.Mvc.WebFormViewEngineです。 |
Razor View Engineで使用されるファイル拡張子は、Webフォームビューエンジンとは異なります。ビュー、部分ビュー、テンプレート、およびレイアウトページには、C#とC#とvbhtmlを使用したcshtmlが使用されます。 | Webフォームビューエンジンで使用されるファイル拡張子は、ASP.Net Webフォームに似ています。 ASPX拡張機能を使用して、部分的なビューやユーザーコントロール、またはレイアウト/マスターページのテンプレートとマスター拡張のaspc拡張を表示します。 |
Razor Engineは、Test Driven Development(TDD)をサポートしています。 | Webフォームビューエンジンは、テスト複合開発を行うためにSystem.Web.UI.Pageクラスに依存するため、テスト駆動開発(TDD)をサポートしていません。 |
ASPXビューエンジンVS Razor View Engine