TERASOLUNA for .NETフレームワーク概説高品質なWindowsアプリケーション構築ポイント株式会社NTTデータ技術開発本部 ソフトウェア工学推進センタ 立見 博史 2009/01/06 |
|
|
■TERASOLUNA for .NETの応用例
●非同期処理の実行
ここまではTERASOLUNA for .NETを使ったスマート・クライアント・アプリケーション開発について見てきました。EventControllerを利用してサーバとの通信処理を行っていましたが、この通信処理は同期実行でした。このため、画面上のボタンを押下して、サーバとの通信結果が画面に反映されるまでの間、ユーザーは画面を操作することができません。多くの処理はこのような同期実行で問題ないのですが、通信処理に長い時間がかかるような場合では、通信中にもユーザーが画面の操作を継続できる方が好ましいはずです。
例えば、アップデートなどで容量の大きなファイルをダウンロードするWindowsアプリケーションを考えてください。[ダウンロード]ボタンを押した瞬間アプリケーションが固まってしまい、ダウンロードが終わった後にようやく操作できるようになるといった作りのものがたまにあります。
これは通信処理を同期実行した結果なのですが、このように画面が固まるのを防ぐためには、通信処理を非同期(バックグラウンド)で実行します。もう少し正確にいうと、UIスレッドとは別のスレッドで通信処理を実行します。このような非同期実行では、複数のスレッドで連携して処理を行わなければならないため、実装の難易度が飛躍的に上がってしまいます。
TERASOLUNA for .NETでは、このような非同期実行も標準でサポートしています。先ほどのスマート・クライアント・アプリケーションでのEventControllerの実装を以下のように変更します。
|
|
非同期実行の実装(TERASOLUNAあり) |
この際の処理の流れをまとめたのが次の図です。
図5 非同期実行の動作イメージ図 |
実装を見ていただくと分かると思いますが、複雑な非同期実行も非常に簡単に実現できます。このような複雑な処理の隠ぺい化もフレームワークとして大切な役割です。
●さまざまな形態のWindowsアプリケーションでの利用
また、スマート・クライアント・アプリケーション以外の、クライアント/サーバ型システムやローカル・データベースにアクセスするアプリケーションにおいてもTERASOLUNA for .NETを活用することができます。
どのようなアプリケーションでも、入力値検証の実施、ビジネス・ロジックの実行(データベース・アクセスも含む)という流れは普遍です。既存のTERASOLUNA for .NETの機能を生かし、一部を拡張することで、同様の仕組みを利用してWindowsアプリケーションを開発することができます。
図6 TERASOLUNA Client Framework for .NETを利用してローカルDBにアクセスする場合のアーキテクチャ・イメージ |
■まとめ
今回はTERASOLUNA for .NETがどのようにして保守性の高い、高品質なWindowsアプリケーション開発をサポートするのか、ということについて解説しました。どのような業務システムにおいても、TERASOLUNA for .NETが狙わんとしている思想については参考になるはずです。皆さんの業務システム開発においても、ぜひTERASOLUNA for .NETやその思想を大いに活用してください。
■Appendix TERASOLUNA Server/Client Framework for .NETの導入方法
TERASOLUNA for .NETは、SourceForge.jpのTERASOLUNAのサイトから入手可能です。
サイト上部の[ダウンロード]→[リリース一覧]を選択し、[Server Client Framework for .NET]パッケージの中から入手したいファイルをダウンロードしてください。
2008年12月15日時点での最新バージョンは2.1.0.1で、プログラム・コード、ブランク・プロジェクト、ドキュメントなどすべてのファイルを含むパッケージは「terasoluna-server-client4n-all_2.1.0.1.zip」となります。導入手順はサイト上のWikiをご覧ください。
INDEX | ||
[TERASOLUNA for .NETフレームワーク概説] | ||
高品質なWindowsアプリケーション構築ポイント | ||
1.保守性が高く、高品質なWindowsアプリケーションの開発 | ||
2.TERASOLUNA for .NETを活用<しない>スマート・クライアントの開発 | ||
3.TERASOLUNA for .NETを活用したスマート・クライアントの開発 | ||
4.TERASOLUNA for .NETの応用例 | ||
「TERASOLUNA for .NETフレームワーク概説」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|