つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

DocumentDB SDK for .NET Core(Preview)を試しつつ、ローカルなDocumentDB環境を作ってみた

この記事は .NET Core Advent Calendar 2016 5日目の記事です。

11月中旬にAzure DocumentDB .NET Core向けのSDKのプレビュー版の提供が始まりました。

Azure DocumentDBとは

Microsoft Azureが提供する フルマネージドなNoSQLデータベースサービス です。
これまでDocumentDBのSDKは下記の言語が提供されていました。

docs.microsoft.com

冒頭でも述べたようにこれらのSDKのラインナップに「.NET Core」が加わりました。

DocumentDB .NET Core Preview SDK available

私自身、待ち望んでいたところがあるので試してみました。

SDKのインストール

まずはVisual Studioで.NET Coreのプロジェクトを作成します。
作成したプロジェクトを右クリックして「NuGetパッケージの管理」をクリックします。
パッケージマネージャにて Microsoft.Azure.DocumentDB.Core を検索し、インストールを行います。

f:id:tech-tsubaki:20161203224842j:plain

もしくはパッケージマネージャーコンソールにてインストールコマンドを発行します。

PM> Install-Package Microsoft.Azure.DocumentDB.Core -Pre
'nuget.org' からパッケージ 'Microsoft.Azure.DocumentDB.Core 0.1.0-preview' を取得しています。
NuGet パッケージ Microsoft.Azure.DocumentDB.Core.0.1.0-preview をインストールしています。
'Microsoft.Azure.DocumentDB.Core 0.1.0-preview' が MyDocumentDB に正常にインストールされました
NuGet の操作の実行に 42.79 ms かかりました
経過した時間: 00:00:01.3186288

機能

プレビュー公開についての記事によれば、.NET向けのSDKと同一の機能を有しているそうです。
なのでアプリケーションでDocumentDBを使う上での必要な機能は既に揃っていることになります。

DocumentDB .NET Core Preview SDK available

The DocumentDB .NET Core Preview SDK has feature parity with the latest version of the DocumentDB .NET SDK

データベースの作成、コレクションの作成、JSONドキュメントの作成など、基本的な機能の使い方はドキュメントを読んだほうが分かると思います。

docs.microsoft.com


とまぁこれだけだと大したブログにならないですね。

(オマケ)DocumentDBの環境をローカルに作る方法を試してみる

エミュレータを使ってローカルにDocumentDBの環境が作れるというもの。いつ頃でてたんだろう?
どうしてもDocumentDBを使ったアプリだと、ローカルでデバッグする際もデータベースだけはAzureにアクセスしないといけなかったので、オフラインだと開発しづらかった面がありました。これは早くに知っておきたかったですね。
元ネタはこちらです。

docs.microsoft.com

使用するのは DocumentDB Emulator というものです。Microsoftが提供しています。
必要なスペック要件としては、OSはWindows Server 2012 R2以上、またはWindows10のようです。
また、メモリは2GB、ディスク空き容量は10GBとのこと。

f:id:tech-tsubaki:20161204133629j:plain

SDKを使用してDocumentDBにアクセスするには、エンドポイントとアクセスキーを用いた認証が必要となります。
エミュレータの場合、エンドポイントは https://localhost:8081/ 、アクセスキーはドキュメントに記載されています。

接続先をエミュレータに変えてしまえば、他のコードを変更する必要はありません。
エミュレータのDocumentDBに格納されているデータを確認する場合は、タスクトレイのアイコンをクリックし[Open Data Explorer...]をクリックすればよいです。

f:id:tech-tsubaki:20161204140016j:plain

f:id:tech-tsubaki:20161204140156j:plain

DocumentDB Emulatorの標準ポートは8081ですが、このポート番号だと都合が悪い場合、Emulatorのコマンドラインでの起動引数にて別ポートを指定できるようです。

インターネット接続が必要なクラウドサービスを使ったアプリケーションの開発が、ローカルかつオフラインでできるのは素晴らしいですね。

最後にこの記事を書くために使用したコード(リポジトリ)を置いときます。
デバッグ実行時はDocumentDB Emulatorに接続するようなコードにしています。

github.com


※追記

この記事を書いてたらScott HanselmanさんのブログにDocumentDB Emulatorの記事が公開されていた。なんとタイムリーなw

www.hanselman.com