Codeer.LowCode.Blazor.Extras.Server
0.3.0
dotnet add package Codeer.LowCode.Blazor.Extras.Server --version 0.3.0
NuGet\Install-Package Codeer.LowCode.Blazor.Extras.Server -Version 0.3.0
<PackageReference Include="Codeer.LowCode.Blazor.Extras.Server" Version="0.3.0" />
<PackageVersion Include="Codeer.LowCode.Blazor.Extras.Server" Version="0.3.0" />
<PackageReference Include="Codeer.LowCode.Blazor.Extras.Server" />
paket add Codeer.LowCode.Blazor.Extras.Server --version 0.3.0
#r "nuget: Codeer.LowCode.Blazor.Extras.Server, 0.3.0"
#:package Codeer.LowCode.Blazor.Extras.Server@0.3.0
#addin nuget:?package=Codeer.LowCode.Blazor.Extras.Server&version=0.3.0
#tool nuget:?package=Codeer.LowCode.Blazor.Extras.Server&version=0.3.0
Codeer.LowCode.Blazor.Extras
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 リソースによるローカライズ
サーバーサービス (Codeer.LowCode.Blazor.Extras.Server)
- AITextAnalyzeService — Azure Document Intelligence + Azure OpenAI による帳票・テキスト解析 (AITextAnalyzerField のサーバー側)
- SmtpMailService — MailMessage 対応の SMTP 送信
- StorageAccess / TemporaryFileManager — ファイルストレージ (ファイルシステム / Azure Blob) と一時ファイル管理
- CustomFontResolver — Excel PDF 変換用のフォントリゾルバ
- Web ヘルパ — ETag 付きファイル応答 (FileWithETag)、ホットリロード (HotReloadHub / FileWatcherService)
セットアップ
新しいアプリテンプレートで作成したプロジェクトには最初から組み込まれています。 既存プロジェクトに追加する場合は以下の手順で設定してください。
1. NuGet パッケージのインストール
| インストール先プロジェクト | パッケージ名 |
|---|---|
| LowCodeApp.Client.Shared | Codeer.LowCode.Blazor.Extras |
| LowCodeApp.Designer | Codeer.LowCode.Blazor.Extras.Designer |
| LowCodeApp.Server (サーバーサービスを使う場合) | Codeer.LowCode.Blazor.Extras.Server |
2. コードの修正
LowCodeApp.Client.Shared
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";
LowCodeApp.Server
Program.cs に以下のコードを追加してください。
using Codeer.LowCode.Blazor.Extras;
ExtrasServerInitializer.Initialize();
LowCodeApp.Designer
App.xaml.cs に以下のコードを追加してください。
using Codeer.LowCode.Blazor.Extras.Designer;
// OnStartup メソッド内
ExtrasDesignerInitializer.Initialize(BlazorRuntime);
3. セットアップ完了
以上でセットアップは完了です。Designer から Extras のフィールドが配置できるようになります。
カスタマイズ
ソースは MIT で公開しています。動作を変えたい場合は次のいずれかで対応できます。
- インターフェースで登録するサービス (
IHttpService/IToastService/ITemporaryFileManager等) は、自前実装を DI 登録して丸ごと差し替える - それ以外のクラスは、このリポジトリのソースをコピーしてアプリ内で改変し、元のクラスの代わりに使う
各フィールドの詳細
各フィールドの詳しい説明は以下のドキュメントを参照してください。
- CalendarField - カレンダー
- GanttField - ガントチャート
- TaskBoardField - カンバンボード
- RichTextField - リッチテキストエディタ
- ColorPickerField - カラーピッカー
- MarkerListField - 画像マーカー
- QrCodeField - QRコード
- ProgressField - 進捗バー
- EnterFocusMoveField - Enterキーでフォーカス移動
- PasswordHashField - パスワードハッシュ
- OrientationLockField - 画面の向き制御
- AITextAnalyzerField - AI 帳票解析
CSS カスタマイズ
各フィールドの見た目はCSSで自由にカスタマイズできます。詳しくは CSS カスタマイズガイド を参照してください。
ライセンス
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Azure.AI.FormRecognizer (>= 4.1.0)
- Azure.AI.OpenAI (>= 2.1.0)
- Azure.Storage.Blobs (>= 12.23.0)
- Codeer.LowCode.Blazor.Extras (>= 0.2.0)
- Excel.Report.PDF (>= 0.32.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Breaking change: removed the multi-database access layer (DbAccessor and the Codeer.LowCode.Blazor.Extras.Server.Db namespace). It is provided as source code in the app templates (WebApp.Server.Shared) again, so that each application owns its database provider choice. Applications that used DbAccessor from this package should reference the template project instead.
- Removed the database provider dependencies accordingly: Microsoft.Data.SqlClient, Microsoft.Data.Sqlite, MySqlConnector, Npgsql, Oracle.ManagedDataAccess.Core, Microsoft.EntityFrameworkCore(.Relational), and Dapper. This package no longer pulls database client libraries (including proprietary-licensed ones) into consuming applications.