[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]

-[[戻る>アプリケーション・アーキテクチャ]]

* 目次 [#r885a125]
#contents

*概要 [#d571e5c0]
-[[ASP.NET Web Forms]]の価値は、
--画面単位のモジュール化と、イベント・ドリブンの実現
--コンポーネントベース、1画面1Formなど、~
フレームワークレベルで実装ルールが決まっているため標準化し易い。
--画面単位のモジュール化、コンポーネントベース、イベント・ドリブンの実現
--1画面1Formなどフレームワークレベルで実装ルールが決まっているため標準化し易い。

-[[ASP.NET MVC]]の価値は、
--フレームワークレベルでの実装ルールが緩く標準化が困難だが、
--ASP.NETでは意識し難い生HTMLをガリガリ生成&弄り易い。
--柔軟性が高く、生HTMLをガリガリ生成&弄り易い。
--反面、標準化の枠からはみ出やすい(枠に収め難い)。
--ASP.NET MVCの仕様を網羅的に押さえていないと効率的な実装、標準化が出来ない。
--大規模開発で枠に収めるには、ガイド類(ドキュメント)で徹底する必要がある。

と言う事かと思います。

*分析 [#d7fca79d]
HTML/CSS3/JavaScriptやHTML5が注目される時勢のため、
-[[ASP.NET Web Forms]]が衰退傾向で、
-[[ASP.NET MVC]]が隆盛しつつある。

というのが世間一般の認識だと思います。

しかし、技術には[[STP>https://ja.wikipedia.org/wiki/STP%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0]]というものがあるので、~
「[[ASP.NET Web Forms]]が衰退して消える。」~
ということはないでしょう。

事例として、[[Windows FormsとWPF>Windows Form vs WPF]]を見てみましょう。

>Javaに対するCOBOLや、[[WPF]]に対する[[Windows Forms]]、VB6.0などが良い例です。~
ホスト、Unix、Linux、[[Windows>Windows OSの設計思想]]などもそうだと思います。以下の参考情報も参考になります。

**ASP.NET Web Forms [#o66a29b3]
エンプラでは、実装レベルで標準化が可能な[[ASP.NET Web Forms]]は、~
以下のように最新のUIテクノロジにも対応し、今後も、まだまだ現役で使い続けられるでしょう。

[[ASP.NET Web Forms]]は、
-Bootstrap
-jQuery UI
-jQuery(WCF)

などで最新のUIテクノロジにも対応します。

**ASP.NET MVC [#ta51d347]
生HTMLをガリガリ生成&弄り易いため、~
「HTML/CSS3/JavaScript」や「HTML5」に~
対応する案件が増える中で、導入数は増えるでしょう。

しかし、
しかし、下記のような課題もあり、エンプラ分野では、~
[[ASP.NET Web Forms]]を使い続ける案件もあると思います。

-柔軟性は高いが、Formを任意の数だけ定義可能。など、~
実装次第で、標準化の枠から大きくはみ出てしまう。
***高い柔軟性 [#y0a4186b]
柔軟性は高いが、「Formを任意の数だけ定義可能。」など、~
実装次第で、標準化の枠から大きくはみ出てしまう(枠に収め難い)。

-ModelMetadataを使用した表示・編集・検証など、
--ASP.NET MVCの仕様を網羅的に押さえていないと効率的な実装が出来ない。
--ModelMetadataでは実装が分散するので、テンプレートなどで実装を徹底させ難い。
---M(DataAnnotations)
---V(利用するHTMLヘルパー)
---C(ModelState.IsValid)~
***ルールベース [#bb599ba2]
ASP.NET MVCの仕様を網羅的に押さえていないと効率的な実装、標準化が出来ない。

-これらを枠に収めるには、ガイド類(ドキュメント)で徹底するしかない。~
-[[ModelMetadata>ASP.NET MVCの利用方法#d39da4a0]]の利用~
[[ModelMetadata>ASP.NET MVCの利用方法#d39da4a0]]では表示から検証までの実装が分散するので、テンプレートなどで実装を徹底させ難い。
--M(DataAnnotations)
--V(利用するHTMLヘルパー)
--C(モデルバインディングとバリデーション)~

-表示・編集~
DataAnnotationsと、利用するHTMLヘルパーの関連を理解しておく必要がある。

-モデルバインディング~
モデルバインディングの仕組みを理解し、name属性の名称を決定する必要がある。
--[[単方向バインディング>ASP.NET MVCの用語#t62a5795]]
--[[双方向バインディング>ASP.NET MVCの用語#i0697eb3]]

-バリデーション~
DataAnnotationsを理解し、標準のバリデーションの機能版囲を理解し、~
必要に応じて[[カスタムのバリデーション>ASP.NET MVCの利用方法#za7f960c]]を実装する必要がある。
--[[CustomValidation属性>ASP.NET MVCの利用方法#f553a183]]
--[[自作Validation属性>ASP.NET MVCの利用方法#l98ac398]]

***標準化 [#fb970b97]
これらを枠に収めるには、ガイド類(ドキュメント)で徹底するしかない。~
従って、ガイド類(ドキュメント)が十分で無いと、大規模開発などで問題が発生しやすい。

というともあり、エンプラ分野では、[[ASP.NET Web Forms]]を使い続ける案件もあると思います。

*参考 [#n6d4da2b]
-「ASP.NET Web Form」か「ASP.NET MVC」か?~
.NETによるWebアプリ開発の今を徹底討論 (1-4):CodeZine(コードジン)~
http://codezine.jp/article/detail/4367

-Web フォーム vs. MVC~
THE TRUTH IS OUT THERE - Site Home - MSDN Blogs~
-Web フォーム vs. MVC - THE TRUTH IS OUT THERE - Site Home - MSDN Blogs~
http://blogs.msdn.com/b/chack/archive/2013/01/16/aspnet-webforms-mvc.aspx

----
Tags: [[:ASP.NET]], [[:ASP.NET Web Forms]], [[:ASP.NET MVC]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS