連載アプリケーション・アーキテクチャ設計入門 第2回 論理アーキテクチャを構成するコンポーネントの設計(プレゼンテーション層編) 日本ユニシス 猪股 健太郎 |
■ユーザー・プロセス・コンポーネント
ビジネス・プロセスを1つ実行するに当たって、一定の手続きに沿ってユーザーとシステムとのやりとりが繰り返される場合がある。そのような手続きを「ユーザー・プロセス」と呼ぶ。順序に沿ってユーザー・プロセスを制御したり、複数のユーザー・インターフェイス画面を表示するときにユーザー・プロセスの状態を正しく管理したりするのであれば、ユーザー・プロセスを制御するロジックを隠ぺいしたクラスとして「ユーザー・プロセス・コンポーネント」を作成するとよい。
ユーザー・インターフェイス・コンポーネントとユーザー・プロセス・コンポーネントを分離するメリットには、長期にわたるユーザー・プロセスを中断・再開しやすいことと、複数のユーザー・インターフェイスでユーザー・プロセスを再利用できることがある。従って、以下のような場合であればユーザー・プロセス・コンポーネントを使うべきである。
-
ユーザーが複数のWebフォームを開いたり、ブラウザを複数起動したりして、同時に複数の処理をする場合
-
WebのフレームやWindowsアプリケーションのダイアログなど、1つの処理に複数の画面を使う場合
-
長期にわたるユーザー・プロセスをビジネス・プロセスから独立させる場合。例えば、注文処理に中断・再開の機能を付ける際に、完了していない注文はビジネス層では扱いたくない場合など
ユーザー・インターフェイス・コンポーネントとユーザー・プロセス・コンポーネント |
この2つを分離するメリットは、長期にわたるユーザー・プロセスを中断・再開しやすいことと、複数のユーザー・インターフェイスでユーザー・プロセスを再利用できることである。 |
ユーザー・プロセス・コンポーネントの特徴
|
ユーザー・プロセス・コンポーネントの役割 ユーザー・プロセス・コンポーネントは以下のことを実現するために使用する。
|
従って、ユーザー・プロセス・コンポーネントは以下のようなインターフェイスを公開することになる。
-
ユーザー・プロセスを動作させるメソッド
-
ビジネス関連データにアクセスするメソッド
-
状態の変化で発生するイベント
-
開始、終了、中断、再開、キャンセルのためのコントロール・メソッド
推奨
|
モバイル・デバイスなどで、クライアント・アプリケーションをオフラインで操作したい場合があるかもしれない。その際は、以下のような点に留意する。
-
ステータスバーやタイトルバーなどに、オンライン/オフラインの状態を表示する
-
ユーザー・インターフェイスは、オフラインでも最小の修正で再利用できるようにする。従って、サーバへのアクセスは非同期呼び出しが中心になる。同期呼び出ししか実装していない場合は、ローカルのストレージにアクセスするデータ・アクセス・ロジック・コンポーネントや、オフライン専用のビジネス・コンポーネントなどを用意する
-
アプリケーションのトランザクションが非同期呼び出しを受け付けるようにする
-
ユーザー・プロセスをローカルのディスクに保存できるようにする。
■
次回はビジネス層に属する4つのコンポーネントと、データ層に属する2つのコンポーネントについて、その設計指針を引き続き解説していく。
INDEX | ||
[連載] アプリケーション・アーキテクチャ設計入門 | ||
第2回 論理アーキテクチャを構成するコンポーネントの設計(プレゼンテーション層編) | ||
1.ユーザー・インターフェイス・コンポーネントの設計 | ||
2.4つのユーザー・インターフェイス・コンポーネント実装技術 | ||
3.ユーザー・プロセス・コンポーネントの設計 | ||
「アプリケーション・アーキテクチャ設計入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|