Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
- ASP.NET Web Formsの価値は、
- 画面単位のモジュール化、コンポーネントベース、イベント・ドリブンの実現
- 1画面1Formなどフレームワークレベルで実装ルールが決まっているため標準化し易い。
- ASP.NET MVCの価値は、
- 柔軟性が高く、生HTMLをガリガリ生成&弄り易い。
- 反面、標準化の枠からはみ出やすい(枠に収め難い)。
- ASP.NET MVCの仕様を網羅的に押さえていないと効率的な実装、標準化が出来ない。
- ModelのPropertyや、ActionMethod?へのアノテーションを起点に、実装がMVCの各モジュールに分散する。
- また、定義も、ModelのPropertyや、ActionMethod?へのアノテーションに分散してしまう。
- このため、大規模開発で枠に収めるには、ガイド類(ドキュメント)で、
「MVCのどの機能を、どう使うか?」を徹底する必要がある。
と言う事かと思います。
分析 †
HTML/CSS3/JavaScriptやHTML5が注目される時勢のため、
というのが世間一般の認識だと思います。
しかし、技術にはSTPというものがあるので、
「ASP.NET Web Formsが衰退して消える。」
ということはないでしょう。
事例として、Windows FormsとWPFを見てみましょう。
Javaに対するCOBOLや、WPFに対するWindows Forms、VB6.0などが良い例です。
ホスト、Unix、Linux、Windowsなどもそうだと思います。以下の参考情報も参考になります。
- エンプラ分野では、標準化と徹底が容易なASP.NET Web Formsは、
以下のような最新のUIテクノロジにも対応し、
今後も、まだ現役で使い続けられるものと思われる。
- Bootstrap
- jQuery UI
- jQuery(WCF)
- コンポーネントベースのアプローチを採用しているので
生HTMLをガリガリと生成&弄り難いことである。
- また、masterページなどを使用している場合、
NamingContainer? IDにより、Name属性やID属性の値が複雑になる。
生HTMLをガリガリと生成&弄り易いため、
「HTML/CSS3/JavaScript」や「HTML5」に
対応する案件が増える中で、導入数は増えると思われる。
しかし、エンプラ分野では、下記のような課題もある。
高い柔軟性 †
柔軟性は高いが、「Formを任意の数だけ定義可能。」など、
実装次第で、標準化の枠から大きくはみ出てしまう(枠に収め難い)。
ルールベース †
「設定より規約」(CoC:convention over configuration)を重視するASP.NET MVCでは、
ASP.NET MVCの仕様を網羅的に押さえていないと効率的な実装、標準化が出来ない。
- ModelMetadataの利用
表示から検証までの一連の実装が各モジュールに分散するので、テンプレートなどで実装を徹底させ難い。
- M(DataAnnotations?)
- V(利用するHTMLヘルパー)
- C(モデルバインディングとバリデーション)
- フィルタ属性やセレクタ属性の利用
属性はAction Method単位単位に分散して定義する。集約して定義できない。
- フィルタ属性やセレクタ属性はAction Method単位に付与する必要がある。
- 外部ファイルなどに、属性を集約して定義できない(定義が分散しレビューが難しくなる)。
表示・編集 †
DataAnnotations?と、利用するHTMLヘルパーの関連を理解しておく必要がある。
モデルバインディング †
モデルバインディングの仕組みを理解し、name属性の名称を決定する必要がある。
バリデーション †
DataAnnotations?を理解し、標準のバリデーションの機能版囲を理解し、
必要に応じてカスタムのバリデーションを実装する必要がある。
標準化 †
これらを枠に収めるには、ガイド類(ドキュメント)「MVCのどの機能を、どう使うか?」を徹底するしかない。
従って、ガイド類(ドキュメント)が十分で無いと、大規模開発などで問題が発生しやすい。
参考 †
Tags: :ASP.NET, :ASP.NET Web Forms, :ASP.NET MVC