行先ボード開発が脱線を続けています。
マークダウンで設計書が書きたい
というところから始まったmenDocですが
行先ボードのプログラミングも面倒くさくなってきました。
プログラミングするプログラムでも作ろうかというのが今回の趣旨です。
もちろんプログラミングするプログラムにはプログラミングが必要です。
何を言ってるのかわからない?
えぇ、僕もわかりません。
テーマ
menDocにテーブル定義を書いたら、
SQLite用のEntityFramewokを使用したC#のコードが
自動で作成されるようにしていきます。
イメージはこんな感じ。
出来上がったソースコードをぺたぺた.csファイルに貼り付けていきます。
この辺の手順はダサいのですがとりあえずは良しとします。
今後に期待。
実際に作っていきます
以下のものを使用しています。
説明 | 内容 |
---|---|
開発環境 | Microsoft Visual Studio Community 2019 |
開発言語 | C# コンソールアプリケーション |
フレームワーク | .NET 5.0 |
開発補助ツール① | Visual Studio Code |
開発補助ツール② | VSCode拡張機能:Markdown Preview Enhanced |
開発補助ツール③ | VSCode拡張機能:Markdown Preview Mermaid Support |
開発補助ツール④ | A5M2:データベース操作用 |
開発補助ツール⑤ | menDoc ※2021/4現在 プロトタイプ版 |
※menDocは現在作成中の適当アプリです。
menDocは動作保証はできませんが、GitHubにおいてます。
予告なく仕様を変更しまくります。
Nugetで必要なものをダウンロード
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Tools
テーブル定義
menDocを使って書いていきます。
こんな感じ。
ER図
menDocで自動生成されたMarkdownをVSCodeに貼り付けるとこんな感じです。
VSCode拡張機能には以下のものを使用しています。
- Markdown Preview Enhanced
- Markdown Preview Mermaid Support
テーブルと同じ構造のクラスを作っていきます
menDocで自動生成
DbContextの派生クラスをつくります
menDocで自動生成
マイグレーションします。
SQLiteDataContextクラスのファイルパスを変更します。
public class SQLiteDataContext : DbContext
{
// (省略)
// 最初にココを変更する
string db_file_path = @"C:\Work\develop\DestinationBoard.db";
}
- パッケージマネージャコンソールで以下のコマンドを順に実行
Enable-Migrations
Add-Migration SampleSystem
Update-Database
確認
SQLiteのファイルができていることを確認する
イイ感じ
テーブルができていることを確認
イイ感じ
後は如何様にでも
class Program
{
static void Main(string[] args)
{
ActionMasterBase.Delete(new ActionMasterBase()
{
ActionID = "11111",
ActionName = "テスト名",
CreateDate = DateTime.Now,
CreateUser = Environment.UserName,
UpdateDate = DateTime.Now,
UpdateUser = Environment.UserName
});
ActionMasterBase.Insert(new ActionMasterBase()
{
ActionID = "11111",
ActionName = "テスト名",
CreateDate = DateTime.Now,
CreateUser = Environment.UserName,
UpdateDate = DateTime.Now,
UpdateUser = Environment.UserName
});
ActionMasterBase.Update(new ActionMasterBase()
{
ActionID = "11111",
ActionName = "テスト名",
CreateDate = DateTime.Now,
CreateUser = Environment.UserName,
UpdateDate = DateTime.Now,
UpdateUser = Environment.UserName
},
new ActionMasterBase()
{
ActionID = "11111",
ActionName = "テスト2",
CreateDate = DateTime.Now,
CreateUser = Environment.UserName,
UpdateDate = DateTime.Now,
UpdateUser = Environment.UserName
}
);
}
}
まとめ
ソースコードを自動生成するためのプログラムを書くということで
普通に書くよりたくさんコードを書いてます。
最近寄り道ばっかです。まぁ、楽しいからいいや。
おわり
コメントを残す