halllky / NijoApplicationBuilder

MIT License
1 stars 0 forks source link

Nijo Application Builder 【開発中 under development】

概念データモデルから一般的なエンタープライズ系業務アプリケーションのひな形を自動生成するツール。


目次 Table of contents


お試し Getting Started

以下のツールが使えるようにしておいてください。

ターミナルからコマンドを実行し、使用可能ならOKです。以下の例ではそれぞれ使用可能ならバージョンが表示されます

dotnet --version
npm --version

このリポジトリのReleasesページから実行可能なバイナリファイルをダウンロードして解凍してください。 以下の例では C:\your-installed-directory に解凍したものとして説明を進めます。

ターミナルやコマンドプロンプトから以下を実行してください。アプリケーションが作成されます。

C:\your-installed-directory\nijo create MyProject

ターミナルやコマンドプロンプトから以下を実行してください。

cd MyProject
C:\your-installed-directory\nijo debug

以上


概要図 Overview, Usage

このツールでアプリケーションを生成する手順と、どういったパーツが生成されるかを示します。

  1. 概念データモデルを定義する
  2. コード自動生成を実行する
  3. 自動生成で賄えない機能を自前で実装する

概要図 overview

1. 概念データモデルを定義する

前述の Getting Started を参照し、 nijo コマンドラインツールを使用できるようにしてください。

作成されたディレクトリの中に nijo.xml という名前のファイルがあります。これをテキストエディタで編集し、あなたのアプリケーションで取り扱うデータの構造を定義してください。

具体的・詳細な指定方法は 自動テストのXML を参照してください。 以下では基本的な考え方のみを説明します。


基本的な考え方

登録・更新・削除されるデータのまとまりごとにデータ構造を定義してください。 なおこのプロジェクトでは、このデータのまとまりを「集約(Aggregate)」と呼称しています。

そのデータ構造がもつことのできる子孫(子要素、入れ子構造)の種類には以下の3種類があります。

単一の子要素(Child)

親1件に対する1件の入れ子データ。 具体的な設定方法はユニットテストのXML 003_Childのみ.xml を参照してください。

例:「取引先」データの構造

複数の子要素(Children)

親1件に対する複数件の入れ子データ。 具体的な設定方法はユニットテストのXML 002_Childrenのみ.xml を参照してください。

例:「発注」データの構造

多態子要素(Variation)

親1件に対する1件の入れ子データ、ただし異なるデータ構造をもつ複数のバリエーションから1つを選択するもの。 具体的な設定方法はユニットテストのXML 004_Variationのみ.xml を参照してください。

例:「旅費申請」データの構造


また、登録・更新・削除されるタイミングが異なる別のデータへの参照を定義することができます。

他集約への参照(Ref)

登録・更新・削除されるタイミングが異なる別のデータへの参照。 具体的な設定方法はユニットテストのXML 001_Refのみ.xml を参照してください。

例:

2. コード自動生成を実行する

上記で作成したデータモデルでコード自動生成を実行し、動作確認を開始するため、ターミナルから以下のコマンドを実行してください。

cd <nijo.xmlがあるディレクトリ>
C:\your-installed-directory\nijo.exe debug

注意点

cd <nijo.xmlがあるディレクトリ>
C:\your-installed-directory\nijo.exe update

3. 自動生成で賄えない機能を自前で実装する

4. リリース

nijo.xmlの各集約に使用できる属性

こちら も併せて参照してください。

ルート要素に使用できる属性

子孫要素に使用できる属性

nijo.xmlのスキーマ定義をTSV出力する

Excelやスプレッドシートに貼り付けてスキーマ定義全体を俯瞰してください。

nijo.exe dump

nijo.xmlのスキーマ定義をmermaid.js記法で出力する

nijo.xmlの各集約の定義をグラフ形式で概観するのに使ってください。

nijo.exe dump --mermaid

Contributing

デモ Demo

このプロジェクトには、ユニットテストに用いている データパターンがいくつか存在します (どのようなパターンがあるかは こちら を参照してください)。 それらのパターンを実際に動作させ、どのようなUIや処理やDBが生成されるかを細かく確認するための手順を以下に示します。

このソフトウェアを作成した動機 Motivation

License

This software is released under the MIT License. see LICENSE.txt.