![](https://ippu-biz.com/wp-content/uploads/2020/09/about-mda.png)
Power Appsでは、
- キャンバスアプリ
- モデル駆動型アプリ
- Webサイト(Power Pages)
の3種類のアプリケーションを作ることができる。
今回はその中の「モデル駆動型アプリ」について、できる限りわかりやすく説明してみる。
モデル駆動型とは
そもそもPower Appsに限らず「モデル駆動型」とは何か?
モデル駆動型(アーキテクチャ)とはその名の通り、『モデル』を中心として開発を進めていく手法のこと。
ここでの『モデル』とは、
「あるシステム化したい対象を、ER図やらコンポーネント図やらで表せる状態にしたもの」
だと思ってもらえれば大きく間違っていないはず。
例えば「学校」みたいなのをモデル化すると
- 先生
- 生徒
- 授業
- クラス
みたいなのが要素(エンティティ)になって、それぞれに属性(名前とか)があり、要素間には関連(生徒はあるクラスに所属する、生徒と授業は多対多で関連とか)がある。
この辺りは「データモデル設計」みたいなキーワードでググると、わかりやすい説明がたくさん出てくるのでぜひ。
そして、モデル駆動型とはこの『モデル』を中心としてシステムを開発していくこと。
Power Appsのモデル駆動型アプリ
Power Appsのモデル駆動型アプリを一言で説明すると、
「設計したモデルをDataverseに構築すれば、UIやフローは(ほぼ)ノンコーディングで作れる」
アプリのこと。
Dataverse
DataverseはPower Platformに用意されているデータベースで、『高機能かつ簡単に使えるデータベース』。
データベースを一から構築するのはけっこう手間で、セキュアに扱いたいならインフラの知識とかも必要になるけれど、このDataverseはとにかく簡単にデータベースが使える。
![](https://i0.wp.com/memo.tyoshida.me/wp-content/uploads/2019/06/061519_1709_PowerPlatfo7.png?fit=1174%2C576&ssl=1)
![](https://learn.microsoft.com/en-us/media/open-graph-image.png)
モデル駆動型アプリとキャンバスアプリの使い分け
「どんなときにキャンバスアプリで作って、どんなときにモデル駆動型アプリで作ればいいか」を考えてみると、
- 無料で(M365ライセンスの範囲内で)アプリを作りたい
- デザインが重要(入力しやすい、誰でも使える、めっちゃおしゃれ など)
- スマホから使うことが多い
- 大量の数字やデータを管理したい
- データの構成がけっこうややこしい
- 業務プロセスを簡単に管理したい
※モデル駆動型でおしゃれなUIを作ることも可能だけど、せっかくローコードを使っているのに開発工数が上がって割に合わないことが多い
みたいなイメージ。
少し話は逸れる(?)けど、ちょっと前まで某カフェチェーンで働いていたときに発注システムというのがあった。
その日の在庫(目視確認)をスマホに入力して送信すると、本部側で必要量を計算して翌日分の物資を送ってくれる、みたいなシステムだったんだけど、これをPower Appsで作るとしたら、
- カフェのスタッフが(現場/前線で)使うアプリ:キャンバス
- 本部のスタッフが(バックオフィスで)使うアプリ:モデル駆動型
みたいな感じになるかなぁと。
もちろん有料ライセンスを購入する稟議が下りない。。。というときは強制的にキャンバスアプリになるけど。
※あくまで個人の感想です。
公式サイトを乱暴に訳す
![](https://learn.microsoft.com/en-us/media/open-graph-image.png)
Power Apps におけるモデル駆動型アプリとは?
モデル駆動型アプリは、コンポーネント(設計で出てくるデータの構成)をメインとしたアプリ開発手法。
シンプルなアプリから複雑なアプリまで構築が可能。
デザインをがっつり作るキャンバスアプリと違って、アプリのデザイン周りは設計したコンポーネント(モデル)によってシステムがある程度作ってくれる。
その他にもモデル駆動にはこんな利点がある。
- モデル設計がメインで、アプリはプログラムなしで作れる
- モバイル対応もしている
- 豊富なデザイン機能がある
- 作ったアプリは配布可能
モデル駆動型アプリの作成手法
主に以下の3つでアプリを作る。
ビジネスデータのモデル化
ビジネスデータをモデル化するには、アプリが必要とするデータとそれらのデータ間の関連を設計する。
モデルの設計にはメタデータを使用する。※メタデータはデータのデータ。
ビジネスプロセスの定義
一貫したビジネスプロセスを定義することは、とても大事。
そんなプロセスを業務プロセスフロー機能として定義することで、アプリを使う人たちが手順ミスとかすることを防げる。
![](https://learn.microsoft.com/en-us/media/open-graph-image.png)
モデル駆動型アプリの作成
データをモデル化して、プロセスを定義できたら、あとはPower Appsのアプリデザイナーを使ってモデル駆動型アプリを作ろう。
以上、ちょっと乱暴すぎかもしれないけれど、概ねこんな感じだと思う。
※2021/3/31追記:実際にモデル駆動型アプリを使って「ねこ管理アプリ」を作ってみました。
コメント