Codeer.LowCode.Blazor に高機能UIコンポーネントと、 アプリケーション開発でよく使うクライアント/サーバーサービスを追加する拡張ライブラリです。 ソースは MIT で公開しているため、動作を変えたい場合はクラスを丸ごと差し替えたり、ソースをコピーして改変できます。
| パッケージ | 内容 |
|---|---|
| Codeer.LowCode.Blazor.Extras | 拡張フィールド、スクリプトオブジェクト (Excel / WebApi / Toaster / Mail)、クライアントサービス |
| Codeer.LowCode.Blazor.Extras.Designer | デザイナ統合 (ツールボックス登録・AI 用ドキュメント登録) |
| Codeer.LowCode.Blazor.Extras.Server | サーバーサービス (AI ドキュメント解析 / SMTP メール送信 / マルチDBアクセス / ファイルストレージ / ASP.NET Core ヘルパ) |
| フィールド | 説明 |
|---|---|
| CalendarField | 月・週・日表示のカレンダー。イベントの表示・追加・編集が可能 |
| GanttField | SVGベースのガントチャート。タスクのドラッグ移動・リサイズ、依存関係の管理が可能 |
| TaskBoardField | カンバンボード。ドラッグ&ドロップでステータス変更が可能 |
| RichTextField | 書式付きテキストエディタ。太字・色・リンクなどのHTMLフォーマットに対応 |
| ColorPickerField | カラーピッカー。HTML5ネイティブカラーピッカーで色をHEX文字列として保存 |
| MarkerListField | 画像上にマーカー(ピン)を配置・操作するフィールド |
| QrCodeField | 文字列をQRコード画像として表示する表示専用フィールド (外部ライブラリ QRCoder を使用) |
| ProgressField | 進捗率を横バー / 半円メーターで表示する表示専用フィールド。値・色を別フィールドから参照 |
| EnterFocusMoveField | Enterキーでモジュール内の次の入力要素にフォーカスを移動させるユーティリティフィールド |
| PasswordHashField | パスワードを Submit 時にハッシュ + ソルトへ変換して DB に書き込む補助フィールド (サーバサイド実装が必要) |
| OrientationLockField | タッチ端末で画面の向き(横/縦)が指定と異なるとき、全画面オーバーレイで回転を促すフィールド |
| AITextAnalyzerField | 帳票ファイルや自由テキストを AI で解析し、モジュールのフィールドへ自動入力する入力補助フィールド (Azure OpenAI + Document Intelligence を使用) |
スクリプト (*.mod.cs) から利用できるサービス・型です。ExtrasClientInitializer.Initialize で一括登録されます。
| オブジェクト | 説明 |
|---|---|
| Excel | Excel ファイルの読み書き・テンプレートへの値書き込み・xlsx / PDF ダウンロード |
| WebApiService | 外部 API への HTTP リクエスト (Get / Post / Put / Delete) |
| Toaster | トースト通知の表示 (Success / Info / Warn / Error) |
| MailService | メール送信。CreateMessage() で宛先複数・Cc / Bcc・HTML 本文・添付付きのメールを組み立てられる |
各オブジェクトの正確なシグネチャと使用例は、デザイナの入力補完、またはデザイナ CLI の
script-catalog サブコマンドが生成するカタログで確認できます。
アプリテンプレートの DI に登録して使う実装です。インターフェース (IHttpService / IToastService 等) で
登録するため、自前実装への丸ごと差し替えができます。
- HttpService — ローディング表示・エラー通知付きの HTTP 通信ラッパー
- UIService — ファイルダウンロード・通知トースト
- Logger — ブラウザコンソール + トースト通知のロガー
- ToastService — Sotsera.Blazor.Toaster ベースのトースト実装
- LocalizeService — TSV リソースによるローカライズ
- AITextAnalyzeService — Azure Document Intelligence + Azure OpenAI による帳票・テキスト解析 (AITextAnalyzerField のサーバー側)
- SmtpMailService — MailMessage 対応の SMTP 送信
- StorageAccess / TemporaryFileManager — ファイルストレージ (ファイルシステム / Azure Blob) と一時ファイル管理
- CustomFontResolver — Excel PDF 変換用のフォントリゾルバ
- Web ヘルパ — ETag 付きファイル応答 (FileWithETag)、ホットリロード (HotReloadHub / FileWatcherService)
新しいアプリテンプレートで作成したプロジェクトには最初から組み込まれています。 既存プロジェクトに追加する場合は以下の手順で設定してください。
| インストール先プロジェクト | パッケージ名 |
|---|---|
| LowCodeApp.Client.Shared | Codeer.LowCode.Blazor.Extras |
| LowCodeApp.Designer | Codeer.LowCode.Blazor.Extras.Designer |
| LowCodeApp.Server (サーバーサービスを使う場合) | Codeer.LowCode.Blazor.Extras.Server |
Services/AppInfoService.cs の AppInfoService コンストラクタに以下のコードを追加してください。
using Codeer.LowCode.Blazor.Extras;
// フィールドのみ使う場合
ExtrasClientInitializer.Initialize(this);
// スクリプトオブジェクト (Excel / WebApi / Toaster / Mail) も使う場合
ExtrasClientInitializer.Initialize(this, http, logger, toaster);メール送信・Excel PDF 変換・AI 解析を使う場合は、エンドポイント URL を起動時に設定します (URL はアプリのコントローラに合わせて変更してください)。
using Codeer.LowCode.Blazor.Extras.Fields;
using Codeer.LowCode.Blazor.Extras.ScriptObjects;
MailService.SendMailEndPoint = "/api/mail";
Codeer.LowCode.Blazor.Extras.ScriptObjects.Excel.ConvertPdfEndPoint = "api/excel/pdf";
AITextAnalyzerField.FileToModuleDataEndPoint = "/api/ai_text_analyze/file";
AITextAnalyzerField.TextToModuleDataEndPoint = "/api/ai_text_analyze/text";Program.cs に以下のコードを追加してください。
using Codeer.LowCode.Blazor.Extras;
ExtrasServerInitializer.Initialize();App.xaml.cs に以下のコードを追加してください。
using Codeer.LowCode.Blazor.Extras.Designer;
// OnStartup メソッド内
ExtrasDesignerInitializer.Initialize(BlazorRuntime);以上でセットアップは完了です。Designer から Extras のフィールドが配置できるようになります。
ソースは MIT で公開しています。動作を変えたい場合は次のいずれかで対応できます。
- インターフェースで登録するサービス (
IHttpService/IToastService/ITemporaryFileManager等) は、自前実装を DI 登録して丸ごと差し替える - それ以外のクラスは、このリポジトリのソースをコピーしてアプリ内で改変し、元のクラスの代わりに使う
各フィールドの詳しい説明は以下のドキュメントを参照してください。
- CalendarField - カレンダー
- GanttField - ガントチャート
- TaskBoardField - カンバンボード
- RichTextField - リッチテキストエディタ
- ColorPickerField - カラーピッカー
- MarkerListField - 画像マーカー
- QrCodeField - QRコード
- ProgressField - 進捗バー / メーター
- EnterFocusMoveField - Enterキーでフォーカス移動
- PasswordHashField - パスワードハッシュ
- OrientationLockField - 画面の向き制御
- AITextAnalyzerField - AI 帳票解析
各フィールドの見た目はCSSで自由にカスタマイズできます。詳しくは CSS カスタマイズガイド を参照してください。