型付きの読み書き
GetValueAsync で読み、SaveAsync で書く小さな state API を使います。まず概念から。
Configlue は .NET 向けの型付き read/write 設定状態です。アプリケーションは小さな state API を通じて設定を読み書きし、保存場所や構成方法は通常のアプリケーションコードの外側に置きます。
設定を消費するだけでなく、アプリケーション自身が設定を編集する場合にこそ役立ちます。
読み取り側の抽象化で解決できる範囲は広いですが、アプリケーションが自分の設定を編集し始めると、次の問いがまとめて現れます。
Git、VS Code、Chrome に見られる、層状の scope、優先順位、読み取りと書き込みの分離と同じ形です。Configlue はその形を普通の .NET アプリケーションに持ち込みます。
通常のアプリケーションコードが依存するのは IReadOnlyState<T> と IWritableState<T> だけです。読み書きの流れはこの程度に保てます。
var settings = ConfiglueApp.GetState<AppSettings>();
var current = await settings.GetValueAsync();
await settings.SaveAsync(patch =>{ patch.Theme = "Dark";});アプリケーションは「何を読むか・何を書くか」だけを表し、設定の保存や統合の方法は別の場所で構成します。source、effective value、provenance などの用語は概念で正確に定義します。
型付きの読み書き
GetValueAsync で読み、SaveAsync で書く小さな state API を使います。まず概念から。
層状の構成と来歴
複数の scope や source をひとつの effective value にまとめ、値の出どころを保持します。概念を参照。
疎な書き込み
変更分だけを保存し、設定された値と触れていない値を区別します。ガイドを参照。
schema の成長と検証
設定の形を育てながら、保存済みデータを読み続けられます。ガイドを参照。
変更観測と永続化
外部からの変更を観測し、永続化の振る舞いをアプリケーションから分離します。ガイドを参照。
.NET ホスト連携
同じ state model をさまざまな .NET ホストや UI で使えます。連携を参照。
最小の実行可能な構成ははじめるから。
目的が決まっている場合はこちらへ。