はじめに
本稿では、C#アプリケーション開発に、NoSQLドキュメント指向組み込みデータベース Couchbase Liteを使うための具体的な方法について解説します。
本稿では、Couchbase LiteをC#アプリケーション開発で利用するためのセットアップ・動作確認までを行います。
Couchbase Liteをアプリケーション開発に利用する意義については、以下の記事をご参考ください。
確認環境
- macOS Catalina Version 10.15.7
- Visual Studio for Mac COMMUNITY 8.8.3
実行手順
プロジェクト作成
今回は、C#プログラミングでCouchbase Liteを使う方法を簡潔に示すため、コンソールアプリとしてプロジェクトを作成します。
対象のフレームワークとしては、「.NET5.0」を選んでいます。
メニューから、プロジェクト > 「NuGetパッケージの管理...」を開きます。
右上の「検索」フォームに「couchbase」と入力し、表示された項目から今回は、「Couchbase.Lite」を選びます(コミュニティエディションにあたります。商用利用の場合は、「Couchbase.Lite.Enterprise」を選択することになります)。
また、バージョンとして、最新の安定版である、2.8.6を選択します。
「パッケージの追加」ボタンを押下し進めていくと、下記のように、Couchbase.Liteが依存関係に追加されます。
プログラミング・実行結果確認
Program.cs編集
インポート文として、下記を追加します。
using Couchbase.Lite;
Main
の内容を以下のように編集します。
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// データベース利用開始 (存在しない場合は、新規作成)
var database = new Database("mydb");
// ドキュメント作成・保存
string id = null;
using (var mutableDoc = new MutableDocument())
{
mutableDoc.SetFloat("version", 2.0f)
.SetString("type", "SDK");
database.Save(mutableDoc);
id = mutableDoc.Id;
}
// ドキュメント取得・更新
using (var doc = database.GetDocument(id))
using (var mutableDoc = doc.ToMutable())
{
mutableDoc.SetString("language", "C#");
database.Save(mutableDoc);
using (var docAgain = database.GetDocument(id))
{
Console.WriteLine($"Document ID :: {docAgain.Id}");
Console.WriteLine($"Learning {docAgain.GetString("language")}");
}
}
}
ビルドして実行します。下記のようにドキュメントIDとプロパティがコンソールに出力されます。
データベースファイル
下記のように作成されたデータベースを確認することができます。
$ find bin -name "*.cblite2"
bin/Debug/net5.0/CouchbaseLite/mydb.cblite2
最後に
本稿では、C#アプリケーション開発のために、プロジェクトにCouchbase Liteをセットアップし、基本的な操作が行えるところの確認までを行いました。
C#アプリケーション開発に組み込みデータベースを使った経験のある方であれば、以降の応用は、比較的簡単に可能かと思います。
最後に、次のステップに進むための情報を示して、本稿の締め括りとしたいと思います。
Couchbase Liteについての記事を以下の投稿で整理していますので、ご関心に応じて、参照してみてください。
https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417
公式ドキュメントは、以下になります。
公式ドキュメントの一部として、各種チュートリアルが公開されています。
Couchbase Liteと双方向のデータ同期が可能なCouchbase Serverについては、日本語で読むことができるまとまった情報として、次の拙著を紹介させていただきます。
関連情報
今回の記事の一次参考情報を、以下示します。