Excelのテーブル定義書から、EntityクラスやViewModelのプロパティコードを1クリックで生成するWPFツールを作りました。
O/Rマッパーは、DBからエンティティクラスを自動生成するところまでは面倒を見てくれます。ただ実務では、そのエンティティをそのまま画面や外部連携に使うことはほとんどなく、用途ごとに微妙に違うDTO・Model・ViewModelを何度も手で書き起こすことになりがちです。フィールド構成はほぼ同じなのに、Nullableの扱いや命名規則、MVVMのObservableProperty化など、層ごとに「形」が違うだけで、結局同じ作業の繰り返しになります。
以前、とある現場で定義書にマクロを組んでそれっぽいコードを自動生成している例を見たことがあるのですが、結局その生成されたエンティティクラスをテストで検証するという、本末転倒な工程が挟まっていました。生成ツールをきちんと検証して正式に採用すれば、本来不要なはずの工程です。他にも、大量の項目を持つEntity・DTO・Modelを手で実装してスペルミスをしている現場を何度も見てきました。
この手作業には、命名規則の変換ミスやスペルミスといった揺らぎがどうしてもついて回ります。EntityGeneratorは、プログラムによる機械的な変換で名称を生成するので、定義書の記述さえ正しければ、命名の揺らぎやタイプミスが入り込む余地がありません。速度だけでなく、この正確性も狙いの一つです。
テーブル定義書(Excel)や直接入力したカラム名をもとに、スネークケースをパスカル・キャメルケース等に変換し、C#のプロパティコードを生成します。
社内での業務改善用に作ったツールなので、製品として配布することは想定していません。「困ったらソースを直接書き換えて使う」ことを前提にしていて、ログ出力の仕組みは設けず、エラーハンドリングも最小限にしています。
GitHubにソースを公開しています。よければ覗いてみてください。