n階層システム設計の考慮点

第4回 各コンポーネントの設計について(2)

この記事を読むのに必要な時間:およそ 7 分

③ Officeやスマートクライアントのユーザインターフェイスコンポーネントの設計について

Officeやスマートクライアントのユーザンターフェイスコンポーネントの設計では,以下の点に注意して設計します。

全般

Microsoft社のOffice製品は,以前からCOM+などの技術を用いればVisual BasicやVisual C++で作成したコンポーネントを呼び出し連携することができました。しかし,これらのコンポーネントの作成,配布,管理が大変でした。しかし,Microsoft Office 2003や2007 Microsoft Office systemでは,.NET Frameworkで作成したモジュールやサービス,Webサービスを呼び出すことができます。このため,使い慣れたOffice製品をWindows Formの代わりに使用することが比較的簡単にできるようになりました。しかし,この場合にもWindows Formと同じような注意が必要です。

実は最近,Excel 2007をフロントエンドに用いるアプリケーションが多くなってきています。この場合,WebサービスをExcelから呼び出しデータを取得・加工したのち,Webサービスを経由してデータを登録といった方式のアプリケーションを構築します。この際,途中にWebサービスが入るため,Webサービス側でデータの型変換および検証が必要になります。また,Webサービスの呼び出しには呼び出しのオーバーヘッドがかかるため,レスポンスは悪くなります。また,Webサービスは非接続型であるため,登録後にデータの確認する仕組みを組み込みます。

画像
操作系

スマートクライアントのユーザンターフェイスコンポーネントでは,.NET Compact Frameworkを用いて接続型および非接続型のアプリケーションを構築できます。この場合,Windows Formベースと同様にエラーハンドラを実装し,エラーの有無を操作者に判断させる仕組みを設計する必要があります。また,ユーザの表示領域が小さいため,画面に埋め込むコントロール数を最小限とし,レスポンス・操作性に注意した設計が必要です。また,ユーザ操作補助として,入力回数を減らすため,ユーザ情報をサーバ内に格納し,ユーザ認証を経たのちに表示・確認を促すように画面を設計します。

④ Windows FormベースおよびWeb Formベースに共通するユーザインターフェイスコンポーネントの設計について

Windwos FormベースおよびWeb Formベースに共通するユーザインターフェイスコンポーネントの設計として,以下の点に注意して設計します。

国際化対応

使用されるクライアントPC およびサーバの環境に依存されるのが,国際化対応です。 クライアントPCで使用される言語および通貨,時刻,時差,日付表示,休日などにより,それぞれに対応する必要があります※2)⁠

Windows FormベースアプリケーションでWPFを使用する場合,1画面に配置したコンテナごとにエンコードを変更することができます。これにより簡易的な言語変換や通貨変換アプリケーションの作成が可能になっています。

Web Formベースアプリケーションでは,日本で構築されるアプリケーションの場合,サーバOSは日本語OSが使用される場合が多いと思われます。しかし,クライアントPC上のブラウザではエンコード設定により表示される言語が変更されてしまいます。そのため,基本的にはUTF-8での使用を推奨し,HTTPヘッダやHTMLで使用言語を規定することが一般的です。多言語利用が想定される場合はそれぞれの画面およびカスタムユーザコントロールを作成することも検討してください。

いずれの場合でもビジネスレイヤやデータレイヤで使用される文字コードは統一し,混乱がないように設計する必要があります。

JIS X 2013:2004

また,Windows Vista以降で使用されているJIS X 0213:2004(JIS2004)による文字の変更については特に注意が必要です。使用されるクライアントPCのOSがWindows Vista以前と混在する場合,Windows Vistaで登録された文字が表示されないなどの現象が発生する可能性があります。また,データベースなどでも不正な文字列としてエラーが発生することが懸念されます。これらはアプリケーション全体のポリシーを作成し,統一する必要があります※3)⁠

※2

以前,私が参加したプロジェクトは日本国内で使用されるWindows Formベースアプリケーションでしたが,エンドユーザが海外の方もいらっしゃるし,日本以外の言語や通貨・日付表示をする必要がありました。この時は,各国対応のWindows OSを導入することも検討されましたが,最終的にクライアントPC上では日本語のWindows OSを稼働させ,設定によって使用される言語および業務上で使用される言語をコード化し,それぞれに対応したユーザカスタムコンポーネントを作成して対応しました。しかしこの場合でもビジネスレイヤとの受け渡しに使用される文字コードはUTF-8で統一し,データベースでもUTF-8を使用しました。

※3

Microsoft社のJIS X 0213:2004(JIS2004)への対応については下記URLを参照願います。

著者プロフィール

露木敏博(つゆきとしひろ)

1966年神奈川県横浜市生まれ。1990年,株式会社日立システムアンドサービス(旧日立システムエンジニアリング株式会社)に入社。

流通系SE,営業所駐在SEなどを経て,2003年から生産技術部門で.NET技術に関する技術支援業務に携り,.NET技術に関する各種基準書および標準化,設計ガイドなどを作成。

マイクロソフトMVPアワードプログラムよりDevelopment Platforms - ASP/ASP.NETのカテゴリで2008年7月よりMVPアワードを受賞。