Azure Cosmos DB .NET SDK バージョン 3.0 のパブリック プレビュー開始

2018年12月4日 に投稿済み

Program Manager, Azure Cosmos DB

Azure Cosmos DB チームは、.NET SDK バージョン 3.0 のパブリック プレビューの開始と、GitHub でのソースの公開を発表いたします。

皆様からのフィードバックをお待ちしています。ぜひお試しいただき、ご意見をお寄せください。最新バージョンを NuGet から入手し、GitHub で投稿できます。

Install-Package Microsoft.Azure.Cosmos -Version 3.0.0.1-preview –prerelease

Azure Cosmos DB とは何ですか?

Azure Cosmos DB はグローバルに分散したマルチモデル データベース サービスであり、任意の Azure リージョンからデータの読み書きができます。このサービスでは、ターン キー グローバル分散、99 パーセンタイルで 10 ミリ秒未満の待機時間、スループットとストレージのエラスティック スケーリングが提供されます。

.NET SDK バージョン 3.0 の新機能

SDK バージョン 3.0 は、.NET Standard 2.0 をターゲットとし、新しい、より直感的なオブジェクト モデルとストリームのサポートなど、さまざまな使いやすさとパフォーマンスの向上を特色とします。また、この SDK は、GitHub でソースが公開されている JavaJavaScriptPython SDK に追加されるものです。

これはバージョン 3.0 SDK の早期プレビューであるため、運用環境のワークロードには .NET SDK のバージョン 2.x を引き続き使用することをお勧めします。現時点では、差し当たり、.NET SDK バージョン 2.x のサポートの非推奨化または中止の予定はありません。

.NET Standard 2.0 をターゲットに

既存の .NET と .NET Core SDK を、.NET Standard 2.0 をターゲットとする 1 つの .NET SDK に統合しました。つまり、.NET Framework 4.6.1 以降と .NET Core 2.0 以降の両方のアプリケーションで .NET SDK を使用できるようになりました。

直感的なプログラミング モデル

この数か月の間、Microsoft のチームは、皆様のフィードバックを基に Azure Cosmos DB SDK の開発者エクスペリエンスの改善に取り組んできました。

新しい Fluent API サーフェス

DocumentClient に代わる新しい最上位レベルの CosmosClient クラスを作成し、そのメソッドをモジュラーとして CosmosDatabaseCosmosContainer、および CosmosItems クラスに分割しました。新しいプログラミング モデルでは UriFactory が不要になり、アプリケーション コードからその他の "ノイズ" も削除されました。

Microsoft による使いやすさの研究では、階層化されていると、新任の開発者でも次に行うことを見つけやすくなることがわかっています。モジュラー CosmosDatabaseCosmosContainer の各型があることで、依存関係の挿入も容易になります。クライアント、データベース、およびコンテナーの名前を渡さなくても、アプリケーション内でデータベースまたはコンテナーのコンテキストを簡単に渡せるようになりました。

テストがより簡単に

多くの開発者の皆様からのご要望に従い、すべての種類でモックが作成可能になったため、新しい階層型のプログラミング モデルにより単体テストが簡単になりました。CosmosConfiguration.AddCustomHandlers() を介して、ミドルウェア拡張性も導入されたので、SDK 要求/応答パイプラインにプラグインできるようになりました。

名前の変更

SDK と Azure Cosmos DB リソース モデルがより緊密に連携するように、名前を一部変更しました。Azure Cosmos DB では複数のデータ モデルがサポートされるため、すべての SDK で、コレクションとドキュメントの名前をより汎用的なコンテナーと項目の名前に変更します。

パフォーマンスの向上

以前のバージョンの SDK では、ネットワークとの間で行き来するデータが、常にシリアル化および逆シリアル化されていました。多くの場合、この処理は不要であり、パフォーマンスのオーバーヘッドになります。現在、ASP.NET Web API のコンテキストで項目またはクエリを読み取ると、新しい ReadItemAsStreamAsyncCreateItemQueryAsStream の各メソッドを使用して、シリアル化のオーバーヘッドなしで、ストリームを取得して応答に渡すことができます。

動的な型への依存の解消

新しい SDK では、引き続き動的な型を使用できますが、Microsoft 独自の動的な型は今後挿入されません。2.x.x SDK で発生していた二重の逆シリアル化の発生も解消しました。

効率的な例外処理

async/await 呼び出しでの例外のマーシャリングは負荷が大きくなる可能性があります。新しい SDK では、開発者の期待どおり、型指定されたプログラミング モデルの例外が引き続きスローされます。ただし、ストリーム プログラミング モデルでは、サーバーから返されるすべての応答に、CosmosResponseMessage.StatusCode が付与されます。SDK は、応答が返されない原因となるエラーに対してのみスローするため、パフォーマンスの影響を受けやすいアプリケーションでは、例外の使用方法をより細かく制御できるようになります。

オープン ソース

Azure Cosmos DB .NET SDK はオープン ソースになりました。GitHub で問題を記録し、フィードバックを追跡し、PR を受け入れたいと思っています。

プレビュー機能に関するよくあるご質問

このプレビュー リリースには、まだサポートされていない機能がいくつかあります。以下が含まれます。

  • LINQ のサポート
  • ユーザー定義関数 (UDF) とトリガー
  • ユーザーとアクセス許可
  • 変更フィード

これらの機能は、今後のリリースでサポートされます。

開始する

新しい SDK の使用を開始するには、新しい NuGet パッケージをプロジェクトに追加してください。.NET.NET Core の新しいチュートリアルに従ってください。皆様からのフィードバックをぜひお聞かせください。電子メールで askcosmosdb@microsoft.com まで送信するか、GitHub リポジトリに問題を記録してください。

Twitter の @AzureCosmosDB をフォローして、最新の Azure #CosmosDB ニュースや機能の情報を常に把握してください。Azure Cosmos DB を利用して構築されたものを見られることを、本当に楽しみにしています。