開発基盤部会 Blog

開発基盤部会 Blog >> 記事詳細

2016/09/28

Open 棟梁の使い方(基礎編)第6回

Tweet ThisSend to Facebook | by nishino

第 6 回 Open 棟梁の付属ツールを使ってみよう

こんにちは!

Open 棟梁の基本的な使い方をご紹介してきましたが、今回が最終回です。 今回は、Open 棟梁の付属ツールをご紹介します。 Open 棟梁の付属ツールは、C:\root\programs\C#\Frameworks\Tools フォルダにあります。

D 層自動生成ツール (DaoGen_Tool)

D 層自動生成ツールとは、データベースのスキーマ情報をもとに、単純な CRUD 処理を行うための Dao(Data Access Object) クラス、SQL ファイルを自動生成するツールです。 D 層自動生成ツールには、以下の特徴があります。

  • データアクセス用の Dao クラス、SQL ファイル、およびデータ格納用の DTO クラスを生成可能
  • タイムスタンプ値を使用した楽観的排他処理に対応
  • データメンテナンス画面 (個別のテーブル、または任意の SQL で取得されるデータに対して、追加/更新/削除を行う画面) も自動生成できる
D 層自動生成ツールの使い方につきましては、前回の記事をご覧ください。 または、Open 棟梁の利用ガイドをご覧ください。

動的パラメタライズド・クエリ生成ツール (DPQuery_Tool)

動的パラメタライズド・クエリとは、いろいろな条件によって SQL が実行時に変わるクエリのことを言います。 このようなクエリを実現するために、以下のように SQL を文字列連結させている方も多いのではないでしょうか。

string sql = "Select * From Users";

if (何かの条件)
{
    // ユーザ ID で検索する
    sql += " Where UserId = '" + this.txtUserId.Text + "'";
}
else if (別の条件)
{
    // ユーザ名であいまい検索する
    sql += " Where UserName Like '" + this.txtUserName.Text + "'";
}

もちろん、この方法でも実現できますが、文字列を連結させてクエリを構築しますので、SQL インジェクションなどのぜい弱性を作りこむリスクがあります。 また、プログラムの中にクエリ文が混在しますので、業務ロジックとデータアクセスの分離が困難になるという問題もあります。 Open 棟梁では、以下のようにクエリを XML で定義することで、ぜい弱性を作りこむことなく、動的に変化するクエリを実現しています。(これを動的パラメタライズド・クエリ機能と言います)

<ROOT>
    Select * From Users
    <WHERE>
    Where
      <!-- [UserId] パラメタに値が指定された場合は、UserId による検索が行われる -->
      <IF>And UserId = @UserId</IF>
      <!-- [UserName] パラメタに値が指定された場合は、UserName による検索が行われる -->
      <IF>And UserName Like @UserName</IF>
    </WHERE>
</ROOT>

動的パラメタライズド・クエリ分析ツールは、この動的パラメタライズド・クエリのテスト用のツールです。 動的パラメタライズド・クエリの生成、テスト実行、結果確認などが可能です。 詳しくは、Open 棟梁のチュートリアルをご覧ください。

Web デプロイツール (DeployZipPackWithHTTP)

Web デプロイツールとは、アプリケーションの起動時に、IIS に配置されたマニフェストファイルの更新チェックを行い、更新されていたらアプリケーションを最新の状態に自動更新する機能です。 「アプリケーションの自動更新」と聞くと、ClickOnce を思い浮かべられる方も多いのではないでしょうか。 ClickOnce でも、アプリケーションの自動更新を実現できますが、以下のような制約がありました。

  • インストールフォルダを自由に選択できない
  • アプリケーションのデジタル署名が必要
  • 完全信頼されたアプリケーションを実行しようとすると、毎回セキュリティ警告が表示される (この警告を表示させなくするには、実行マシンにコードサイニング証明書のインストールが必要)

Web デプロイツールは、この ClickOnce の制約を補うものです。 以下の図は、Web デプロイツールの概要を示したものです。詳しくは、Open 棟梁の利用ガイド (リッチクライアント編)をご覧ください。

暗号化ツール (Encryption)

Open 棟梁には、暗号化/復号化のための API があります。 これらの API の挙動は、Open 棟梁のドキュメント (API リファレンス)でご確認いただけます。 ただし、API リファレンスだけでは、実際にはどのような挙動を示すのかがピンと来ない方もおられるのではないでしょうか。 そこで、これら暗号化/復号化 API の動作確認用のツールを用意しています。

  • TestEncAndDecProvider
    色々な暗号化プロバイダをテストするためのツール
  • EncAndDecUtil
    ソルト、ハッシュ、ストレッチングを使用したパスワード保管をテストするためのツール

ワークフロー シミュレータ (Workflow_Tool)

Open 棟梁には、ヒューマンワークフローを定義・実行するための基盤が用意されています。 たとえば、ヒューマンワークフローには、以下のような機能があります。

  • 承認ルートを作成する (申請者→審査者→承認者 など)
  • 申請者は、審査者に申請する (審査依頼)
  • 審査者は、申請内容を確認し、問題なければ承認者に申請する (承認依頼)
  • 承認者は、申請内容を確認し、問題なければ承認する
  • 申請内容に問題があれば、申請者に差し戻す
  • 申請者は、申請情報のステータスを確認する
  • など

当然ですが、業務が複雑になればなるほど、ワークフローも複雑になります。 Open 棟梁付属のワークフロー シミュレータにより、定義したワークフローが要件にあっているかどうかを検証することができます。 使い方などは、Open 棟梁のチュートリアルをご覧ください。

さて、6 回にわたって、Open 棟梁の基本的な使い方をご紹介してきましたが、いかがでしたでしょうか。
 Open 棟梁ってなんだかよく分からない...
 どうやったら使えるようになるんだろう...
と思われていた方にも、Open 棟梁を導入する敷居が少しでも低くなったのであれば何よりです。 ぜひみなさんのプロジェクトで Open 棟梁をお使いいただき、お気づきの点がございましたら、issueとしてご連絡いただけたら幸いです。


09:19 | 投票する | 投票数(1) | コメント(0) | お知らせ