演習 - .NET アプリと参照 SDK を作成する
プロジェクトのアプリケーションを作成する最初の手順として、.NET プロジェクトを作成する必要があります。 .NET プロジェクトでは、Microsoft.Azure.Cosmos SDK を使って、既に作成済みのアカウントに接続する必要があることを思い出してください。 ここでの重要な要件は次の 3 つです。
- .NET プロジェクトを作成する
- SDK へのパッケージ参照を追加する
- クライアント クラスを使って接続する
この演習を完了すると、API for NoSQL アカウントに正常に接続されるシンプルな .NET アプリケーションが作成されますが、操作はまだ実行されません。
.NET コンソール プロジェクトを作成する
.NET CLI を使用して、指定したディレクトリ内で .NET プロジェクトの作成と管理を行います。 ここでは、CLI を使用して新しいコンソール アプリケーションを作成し、SDK へのパッケージ参照を追加します。
現在のディレクトリに新しいコンソール アプリケーションを作成します。
dotnet new console
ヒント
プロジェクト名やディレクトリを指定していないため、コマンドを実行すると現在のディレクトリに新しいプロジェクトが作成され、プロジェクトにはディレクトリの名前 (inventory) と一致する名前が付けられます。
NuGet から
Microsoft.Azure.Cosmos
ライブラリのバージョン 3 へのパッケージ参照を追加します。dotnet add package Microsoft.Azure.Cosmos --version 3.*
NuGet から
Azure.Identity
ライブラリのバージョン 1 へのパッケージ参照を追加します。dotnet add package Azure.Identity --version 1.*
.NET プロジェクトをビルドして、プロジェクトが正しく構成されたことを確認します。
dotnet build
コマンドの出力は、次の例のようになるはずです。
MSBuild version 17.5.0+6f08c67f3 for .NET Determining projects to restore... All projects are up-to-date for restore. dotnet-env-azure-cosmos-db -> /workspaces/dotnet-env-azure-cosmos-db/bin/Debug/net7.0/dotnet-env-azure-cosmos-db.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:05.96
アカウントに接続する
これで、.NET プロジェクトがビルドされ、独自のカスタム コードを追加する準備が整いました。 API for NoSQL に接続するために必要なすべてのクラスを含む、Microsoft.Azure.Cosmos および Azure.Identity 名前空間にアクセスできます。 ここでは、Program.cs ファイルを開き、SDK のクライアント クラスを使用してアカウントに接続するコードを実装します。
コード エディターで Program.cs ファイルを開きます。
ファイルから既存のコードをすべて削除します。
次の名前空間に using ディレクティブを追加します。
using Azure.Identity; using Microsoft.Azure.Cosmos; using Microsoft.Azure.Cosmos.Fluent; using Microsoft.Azure.Cosmos.Linq;
endpoint
という型の文字列変数を作成します。 変数の値を、このモジュールで前に記録したアカウントの "ドキュメント エンドポイント" に設定します。const string endpoint = "<nosql-account-endpoint>";
ヒント
Azure Cosmos DB アカウントの名前が
mslearn-nosql-000000000
であると想定すると、エンドポイントの構成はこちらの例のようになります。const string endpoint = "https://mslearn-nosql-000000000.documents.azure.com:443/";
credential
という名前の DefaultAzureCredential 型の新しい変数を作成します。DefaultAzureCredential credential = new();
serializerOptions という名前の CosmosSerializationOptions クラスの新しいインスタンスを作成します。 PropertyNamingPolicy プロパティを、CamelCase 列挙型の値
CamelCase
に設定します。CosmosSerializationOptions serializerOptions = new() { PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase };
資格情報とエンドポイントをコンストラクターに渡して、CosmosClientBuilder クラスの新しいインスタンスを作成します。 次に、WithSerializerOptions(CosmosSerializationOptions) fluent メソッドをつなげて、このメソッドのパラメーターを
serializerOptions
に設定します。 Build() メソッドをつなげ、CosmosClient 型でclient
という名前のインスタンスを作成します。 最後に、クライアント変数の作成を using ステートメントでラップします。using CosmosClient client = new CosmosClientBuilder(endpoint, credential) .WithSerializerOptions(serializerOptions) .Build();
クライアントの準備ができていることを示すメッセージを出力します。
Console.WriteLine("[Client ready]");
Program.cs ファイルを保存します。
作業を確認
これで、アプリケーションを実行して Azure Cosmos DB for NoSQL に接続する準備ができました。 ここでは、自分のアプリケーション コードをサンプルと比較します。 次に、コードを実行し、アプリケーションが期待どおりに動作することを確認します。
ターミナルで .NET アプリケーションを実行する
dotnet run
アプリケーションを実行した出力を確認します。 出力は、次の例と一致しているはずです。
[Client ready]
Note
.NET アプリケーションのビルドまたは実行でエラーが発生する場合は、[コードのレビュー] タブに移動して、ご自身のコードが例と一致していることを確認してください。