Skip to content

Core(共通ライブラリ)の概要とバージョン別の機能 ​

第1版作成 最終更新 (日本時間)

VehicleVision.PleasanterTools.Core(以下 Core)は、VehicleVision.PleasanterTools の各ツール(Questionnaire・CalendarFeed・IdentityProvider ほか)が共通で組み込む部品を集めた .NET ライブラリです。DB への接続・マイグレーション・メール送信など、ツールごとにコピーが育ってばらつきやすい部分を 1 か所にまとめ、直すのを 1 回で済ませるために切り出しています。ソースは GitHub で公開しています。

プレビュー版です(安定版はまだありません)

Core の版は 0.1.0-preview.N です。安定版(1.0.0)はまだ出ておらず、1.0.0 未満は互換が保証されません。 プレビューの間は、クラス名・引数・マイグレーションの内容が変わり得ます(ソースの README.md と _documents/コア化の方針.md に、1.0.0 未満は互換を保証しない旨の記載があります)。壊す変更は版を上げる PR に明記する運用ですが、このマニュアルが追従するのは公開済みの版だけです。

本マニュアルは、nuget.org に公開済みの最新プレビュー版 0.1.0-preview.9(2026-10-21 公開)に対応しています。ここでの「版」は Core の版で、プリザンター本体の版とは別です。各ページの見出しにある「preview.5 以降」のようなバッジも Core の版を表します。

Core はプリザンター本体とは独立したライブラリです。プリザンターの DB には接続せず、プリザンターのソースも含みません(ソースの LICENSING.md の記載)。使うのは、各ツールが自分の DB(ツール専用の DB)を持つための基盤です。

誰が読むか ​

読者読むページ
自社ツールを動かす人(設定・更新・障害の切り分け)本ページの対応表、DB の接続・暗号化・排他(設定名の規約と起動時の挙動)、マイグレーションと共有表(Core_ 表と更新時の注意)、メール送信(環境変数)
同じ基盤でツールを作る人上記に加えて、共有ストア

採用状況の確認方法

このマニュアルを書いた時点で、resources/tools/ に置いている各ツールの master のソースには、Core への参照(PackageReference など)は見つかりませんでした。各ツールが Core を使い始める版は、ツールごとの変更履歴で確認してください。このページの内容が自分のツールの挙動に当てはまるかは、そのツールが Core の何版を参照しているかで決まります。

パッケージ ​

パッケージ内容
VehicleVision.PleasanterTools.Core.DataDB 接続・RDBMS ごとの方言差・接続の暗号化検査・起動時マイグレーションと排他・アプリ ID から DB の名前を導く AppDatabase・共有ストア(管理者・セッション・招待・監査ログ・メール送信箱・設定・レート制限)
VehicleVision.PleasanterTools.Core.Mailメール送信(SMTP / Amazon SES / Azure Communication Services)と、環境変数からの設定の読み取り
  • 2 つのパッケージは同じ版で出します。Core.Mail と Core.Data は互いを参照せず、アプリがそれぞれを参照します(依存の向きは、常にアプリから Core です)。
  • 対象は .NET 10(net10.0)です。
  • nuget.org から認証なしで取得できます。参照するリポジトリは PackageReference を書くだけで、nuget.config の追加もトークンも要りません。
xml
<PackageReference Include="VehicleVision.PleasanterTools.Core.Data" Version="0.1.0-preview.9" />
<PackageReference Include="VehicleVision.PleasanterTools.Core.Mail" Version="0.1.0-preview.9" />
  • ライセンスはデュアルライセンス(AGPL-3.0-or-later、または PMC 商用ライセンス)です。Core を組み込んでネットワーク越しにサービスを提供するアプリは、AGPL を選ぶ場合その全体が AGPL の対象になり得ます。詳細はリポジトリの LICENSING.md を参照してください。

対応する RDBMS ​

RDBMS位置づけ(ソースの記載)
SQL Server本番
PostgreSQL本番
MySQL本番(マイグレーションは FluentMigrator の MySQL 8 用ランナーを使う)
SQLite簡易セットアップ・デバッグ用。本番運用には使わない

原則は、プリザンターが対応する 3 つの RDBMS に揃えることです。導入先のプリザンターが使う RDBMS に合わせられないと、DB サーバを別に立てることになるためです(DatabaseProvider.cs のコメント)。

何を Core に置くか ​

Core には、2 つ以上のアプリが同じ目的で使い、アプリの業務を知らずに書けるものだけを置きます(_documents/コア化の方針.md)。アプリ名・環境変数名・SQLite のファイル名・ロック名のようなアプリごとの値は Core に書かず、呼び出し側が引数で渡します。迷ったときは Core に置かない方針です。

図を読み込み中…

版の一覧 ​

公開日は日本時間です。nuget.org への公開日時は nuget.org のパッケージ情報(登録 API の published)で確認しました。

版公開日配布先要点
0.1.0-preview.92026-10-21nuget.org管理者の表示言語を空へ戻せるようにした
0.1.0-preview.82026-10-21nuget.org管理者ストアに、復旧コードのハッシュ一覧と表示言語の変更を追加
0.1.0-preview.72026-10-20nuget.org監査ログの絞り込みに、ログイン ID の部分一致を追加
0.1.0-preview.62026-10-20nuget.org共有ストアと Core_ の共有表(M10001〜M10007)を追加
0.1.0-preview.52026-10-20nuget.orgAppDatabase(アプリ ID から DB の名前を規約で導く)を追加
0.1.0-preview.42026-10-20nuget.orgSQLite の型の対応表を、アプリのモデルのアセンブリへ広げられるようにした
0.1.0-preview.32026-10-20nuget.orgDatabaseMigrationLock を公開
0.1.0-preview.22026-10-20nuget.orgnuget.org での最初の公開
0.1.0-preview.12026-10-18(タグの日付)GitHub Packages のみ最初の切り出し。nuget.org には無い

詳細は 変更履歴 を参照してください。

機能 × バージョンの対応表 ​

「○」はその版で使えることを表します。「-」はその版に無いことを表します。版の判定は、リリースタグごとのソースで確かめました(確認方法は 変更履歴 の末尾に書いています)。

Core.Data ​

機能p.1p.2p.3p.4p.5p.6p.7p.8p.9
接続のファクトリ・暗号化の検査(DbConnectionFactory / ConnectionSecurity)○○○○○○○○○
起動時マイグレーションと排他(DatabaseMigrator)○○○○○○○○○
DatabaseMigrationLock を直接使う--○○○○○○○
SQLite の型の対応表を、アプリのモデルへ広げる(AddModelAssemblies)---○○○○○○
アプリ ID から DB の名前を導く(AppDatabase)----○○○○○
Core_ の共有表と共有ストア-----○○○○
監査ログのログイン ID の部分一致(ActorLoginContains)------○○○
管理者ストアの復旧コード一覧・表示言語の変更-------○○
表示言語を空文字へ戻す--------○

Core.Mail ​

メール送信の機能(SMTP / Amazon SES / Azure Communication Services の 3 経路、MailOptions.FromConfiguration、OutgoingMail、MailPayload、IMailPayloadProtector)は、タグ preview.1 の時点で揃っていました。preview.2 から preview.9 までの間に、Core.Mail のソース(src/VehicleVision.PleasanterTools.Core.Mail/)の機能変更はありません。

更新時の注意 ​

  • プレビュー版どうしの更新で、互換が保たれる保証はありません。 版を上げる前に、変更履歴 で自分の版との差を確かめてください。
  • preview.5 から preview.6 へ上げると、DB に Core_ 接頭辞の表が自動で作られます。 DatabaseMigrator が、アプリのマイグレーションと一緒に Core.Data の共有マイグレーション(M10001〜)も当てるためです。使わないストアの表も作られます。詳細は マイグレーションと共有表 を参照してください。
  • 依存パッケージ(Dapper・FluentMigrator・DB ドライバなど)は Core が持つ版に揃える方針です。アプリ側で別の版を宣言し直すと、実行時に食い違う原因になります(_documents/コア化の方針.md)。

次に読むページ ​

目的ページ
DB の設定名・接続・暗号化・起動時の排他を知るDB の接続・暗号化・排他
マイグレーションの番号と Core_ 表を知るマイグレーションと共有表
管理者・セッション・メール送信箱などの共有ストアを使う共有ストア
メール送信の環境変数と経路を知るメール送信
自分の版との差を調べる変更履歴

変更履歴

第1版共通ライブラリ Core のマニュアルを追加する (#35)