TERASOLUNA for .NETフレームワーク概説

.NET開発でもオープンソース・フレームワークを使おう

株式会社NTTデータ
技術開発本部 ソフトウェア工学推進センタ 
立見 博史
2008/09/30
Page1 Page2 Page3 Page4

オープンソース・フレームワーク「TERASOLUNA for .NET」とは?

 TERASOLUNA for .NET(正式名称「TERASOLUNA Server/Client Framework for .NET」)は、NTTデータから出てきたオープンソース・フレームワークで、2008年7月14日からオープンソース・プロジェクト集約サイトである「SourceForge.jp」上で公開されています。もちろん.NET開発者であれば、誰でもどの企業でも業務システム開発に利用することができます。

 TERASOLUNA for .NETは、先に述べた「.NETでの業務システム向けフレームワークに必要な“3+1”の条件」を踏まえつつ、さらにNTTデータの数多くのシステム開発で培ってきた豊富なノウハウが詰まっています。特に日本の業務システムにはうってつけのフレームワークだと自負しています(筆者自身もこのオープンソース・フレームワークの開発に取り組む開発者の1人です)。

 実際の業務システム開発では、このTERASOLUNA for .NETをさらに個別業務システムに特化するように拡張して利用します。従って、TERASOLUNA for .NETは実際の業務システム向けフレームワークの基になる「ベース・フレームワーク」といえます。

 ここでは、そんなTERASOLUNA for .NETの特徴と機能を簡単に紹介したいと思います。また、機能の概要を把握したら、ぜひソース・コードも読んでみてください。皆さんの開発の参考に必ずなるはずです。

 次の図はTERASOLUNA for .NETの典型的な仕組みをまとめた概念図です。

図1 TERASOLUNA Server/Client Framework for .NETの概念図

 この図を見ると分かるように、TERASOLUNA for .NETは「TERASOLUNA Server Framework for .NET」(以下、Server Framework)と「TERASOLUNA Client Framework for .NET」(以下、Client Framework)に分かれます。そのほか、Java版のTERASOLUNAである「TERASOLUNA Server Framework for Java」(以下、Java版Server Framework)とも連携が可能になっています。

TERASOLUNA Client Framework for .NETの特徴

 Client Frameworkは、クライアントPC側にビジネス・ロジックを持つクライアント/サーバ型システム(図2)や、APサーバ側にビジネス・ロジックを持つスマート・クライアント型システム(図3)の開発に必要な機能を備えたフレームワークです。また、Java版Server Frameworkと連携すれば、サーバにJava、クライアントに.NETというハイブリッドなシステムも実現可能です。

図2 TERASOLUNA Client Framework for .NETで想定しているクライアント/サーバ型システムのアーキテクチャ
クライアントPC側で画面の描画処理やローカル・リソース操作のほかにも、ビジネス・ロジックの実行とデータ・アクセス処理を行う。

図3 TERASOLUNA Client Framework for .NETで想定している3階層のスマート・クライアント型システムのアーキテクチャ
クライアントPC側では画面の描画処理やローカル・リソース操作のみを行い、APサーバ側でビジネス・ロジックの実行とデータ・アクセス処理を行う。

 フレームワークが持つ機能はVisual Studioでいうところの「コンポーネント」として提供しており、図4のように[ツールボックス]からのドラッグ&ドロップが可能で、従来のVisual Studioでの開発スタイルをそのまま踏襲できることも、Client Frameworkの特徴の1つです。

図4 Visual Studioの開発スタイルをそのまま踏襲した形でフレームワークとして提供
TERASOLUNA for .NETの機能は「コンポーネント」として提供されているため、Visual Studio上でツールボックス]からドラッグ&ドロップにより利用可能。

 まずはClient Frameworkのアーキテクチャと機能について見ていきましょう。

TERASOLUNA Client Framework for .NETのアーキテクチャと機能

 次の図はClient Frameworkが持つ機能をシンプルにまとめたものです。

図5 TERASOLUNA Client Framework for .NETのアーキテクチャ概要

 各機能について簡単に説明しましょう。

  • FA-01 画面遷移機能
    画面遷移設定ファイルに定義した画面情報に従って、画面を表示する機能です。ソース・コードをリビルドすることなく、遷移先画面を変更できます。画面間の依存関係を疎にします。

  • FA-02 拡張フォーム機能
    画面クラスの標準実装としてFormBaseクラスを提供します。FormBaseクラスは、エラーが発生したときに使うIErrorHandlerインターフェイスと、画面遷移機能で使うIForwardableインターフェイスを実装しています。クライアント・アプリケーションで作成する画面は、このFormBase派生クラスとします。なお、画面として(FormBaseクラスを派生した)Windowsフォームではなくユーザー・コントロール(=System.Windows.Forms名前空間のUserControlクラス)などを使う場合は、IErrorHandlerインターフェイスやIForwardableインターフェイスを実装した独自の基底クラスの実装が必要になります。

  • FB-01 イベント処理機能
    業務処理呼び出しの処理フローを定型化し、Visual Studioのデザイナを用いてビジネス・ロジックや入力値検証、各種イベント処理などを簡単に実行できる機能です。クライアント・ローカルのビジネス・ロジックの実行やサーバとの通信処理をイベント処理機能経由で呼び出すことで、システム全体のアーキテクチャを統一します。

  • FB-02 データセット変換機能
    2つのデータセット間でデータ変換を行う機能です。イベント処理機能では、画面の持っているデータをビジネス・ロジックに渡すときにデータセット変換機能を利用しています。また、画面遷移機能では、遷移元画面のデータを遷移先画面に渡すときにデータセット変換機能を利用しています。

  • FC-01 XML通信機能
    HTTP/HTTPSでサーバとXML通信を行う機能です。標準実装ではServer Framework(Rich版)、またはJava版Server Framework(Rich版)との間で通信できる機能となっています。

  • FC-02 ファイル・アップロード機能
    サーバにファイル(バイナリ)やマルチパート形式のデータをアップロードする機能です。XML通信機能と同様に、TERASOLUNAのサーバ・フレームワークと通信できる機能となっています。

  • FC-03 ファイル・ダウンロード機能
    サーバからファイル(バイナリ)をダウンロードする機能です。XML通信機能と同様に、TERASOLUNAのサーバ・フレームワークと通信できる機能となっています。

  • CM-01 メッセージ管理機能
    アプリケーションで扱うメッセージに対し、統一的にアクセスする機能です。

  • CM-02 入力値検証機能
    日本語の検証など、業務システム開発で必要なさまざまな入力値検証ルールを提供します。

  • CM-03 ログ出力機能
    アプリケーションで統一的にログを出力する機能です。標準実装ではTraceSourceクラス(Dianostics名前空間)を使ったロガーを提供していますが、拡張すればロガーをLogging Application Block(Enterprise Library)log4netに切り替えることもできます。

  • CM-04 ビジネス・ロジック生成機能
    ビジネス・ロジック・クラスのインスタンスを生成する機能です。ビジネス・ロジック生成機能では、ビジネス・ロジックのインターフェイスとファクトリのみを提供しています。Client Frameworkでは、サーバと通信するための4つのビジネス・ロジックを標準で提供しています。
    • 標準提供のビジネス・ロジック
      • DataSetXmlCommunicateBLogic(FC-01 XML通信機能 に対応)
      • BinaryFileUploadBLogic(FC-02 ファイル・アップロード機能 に対応)
      • MultipartUploadBLogic(FC-02 ファイル・アップロード機能 に対応)
      • BinaryFileDownloadBLogic(FC-03 ファイル・ダウンロード機能 に対応)

 続いてServer Frameworkの特徴と機能について見ていきましょう。


 INDEX
  [TERASOLUNA for .NETフレームワーク概説]
  .NET開発でもオープンソース・フレームワークを使おう
    1..NET Frameworkだけの業務システム開発で起こり得る問題
    2..NETでの業務システム向けフレームワークに必要な“3+1”の条件
  3.オープンソース・フレームワーク「TERASOLUNA for .NET」とは?
    4.「TERASOLUNA for .NET」のサーバ側の特徴と機能

インデックス・ページヘ  「TERASOLUNA for .NETフレームワーク概説」


Insider.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間