Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

現時点のMVCチュートリアルは、

  • EntityにDataSet?DataTable?を使用している。
  • そのため、Model Binding + DataAnnotation?を使用していない。

と言った、少々、古いスタイルの実装となっています。

チュートリアルの変更点

以下の様に、最近の一般的な実装に変更可能です。

  • Model Binding + DataAnnotation? の MVVMスタイルに変更します。
  • 変更内容は、下記のそれぞれのディレクトリのDiffを確認して下さい。
    • MVC_Sample_20181003
    • MVC_Sample_20181003_poco
    • MVC_Sample_20190627_mvvm

オリジナルのチュートリアル

チュートリアルを遂行して出来上がったサンプル

EntityのPOCO化

POCO変換部品を使用して、DataSet?DataTable?のEntityをPOCO化可能です。

Model Bindingの利用

EntityのPOCO化を行った後に、Model Bindingを行うよう、コードを変更可能です。

※ なお、ViewModel?DataAnnotationすることで、単項目チェックも自動化可能です。
 これについては、コチラViewModel?ガチ実装が参考になります。

Model Binding + DataAnnotation?

Model Binding

単方向と双方向バインディング

  • 単方向バインディングは、単に、
    • クライアントから送信されてきたデータのキー名と、
    • ControllerのAction Methodの引数名とが一致するキー値を

探して、バインドすると言う機能。

  • 双方向バインディングを使用して、
    Viewにバインドて、ViewからControllerにPOSTすると、
    Web FormsのPostBack?のような動作を容易に実装可能。

双方向バインディングの実装方法

  • ViewModel?を定義する。
  • これをControllerからViewに渡して、Html.xxxxForでバインド。
  • Viewから、ControllerへのPOSTをViewModel?で受ける。

DataAnnotation?

また、以下のようにViewModel?を定義すれば
https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/ViewModels/ManageAddSaml2OAuth2DataViewModel.cs

  • 単項目チェックや
  • ラベル表示(国際化対応)も

属性(アノテーション)によって、容易に実装可能。

Controller作成の単位

基本的には、「モジュール化の要約」にあるように、

がある。オリジナルのチュートリアルでは、後者を採用している。

画面単位

  • Web Formsと同じで解り易い。
  • 大規模ではコチラが適合する。

機能、CRUD単位

以下の場合は、コチラ。

  • 複雑な画面を開発する。
  • スキャフォールディングで画面を開発する。

参考

MVCチュートリアルの改修項目

マイクロソフト系技術情報 Wiki


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-01 (月) 12:42:24 (82d)