Neu für Entwickler: Azure Cosmos DB .NET SDK v3 jetzt verfügbar

Veröffentlicht am 13 August, 2019

Program Manager, Azure Cosmos DB

Das Azure Cosmos DB-Team gibt die allgemeine Verfügbarkeit von Version 3 des Azure Cosmos DB .NET SDK bekannt, das im Juli veröffentlicht wurde. Vielen Dank an alle, die während der Vorschauphase Feedback abgegeben haben. 

In diesem Beitrag gehen wir die neuesten Verbesserungen durch, die wie zur Verbesserung des Entwicklererlebnisses in v3 des .NET SDK vorgenommen haben.

Sie finden die neueste Version des SDK über NuGet. Beiträge können Sie auf GitHub einreichen.

//Mit der .NET-Befehlszeilenschnittstelle
dotnet add package Microsoft.Azure.Cosmos

//Mit NuGet
Install-Package Microsoft.Azure.Cosmos

Was ist Azure Cosmos DB?

Azure Cosmos DB ist ein global verteilter Datenbankdienst mit mehreren Modellen, der es ermöglicht, Daten in beliebigen Azure-Regionen zu lesen und zu schreiben. Er bietet eine schlüsselfertige globale Verteilung und garantiert Latenzen im einstelligen Millisekundenbereich im 99. Perzentil, Hochverfügbarkeit von 99,999 % und eine elastische Skalierung von Durchsatz und Speicher.

Neues in Version 3 des Azure Cosmos DB .NET SDK

Version 3 des SDK enthält zahlreiche Verbesserungen bei Benutzerfreundlichkeit und Leistung, einschließlich eines neuen intuitiven Programmiermodells, Unterstützung von Stream-APIs, integrierter Unterstützung für Änderungsfeedprozessor-APIs, die Möglichkeit zur Skalierung nicht partitionierter Container und mehr. Das SDK ist auf .NET Standard 2.0 ausgerichtet und auf GitHub als Open Source verfügbar.

Für neue Workloads empfehlen wir für ein optimales Erlebnis, mit der aktuellsten Version 3.x des SDK zu beginnen. Derzeit bestehen keine Pläne, Version 2.x des .NET SDK einzustellen.

.NET Standard 2.0 als Ziel

Wir haben das bestehende Azure Cosmos DB .NET Framework SDK und das .NET Core SDK in einem einzigen SDK zusammengefasst, das auf .NET Standard 2.0 abzielt. Sie können das .NET SDK jetzt auf jeder Plattform nutzen, auf der .NET Standard 2.0 implementiert ist, einschließlich Ihrer .NET Framework 4.6.1+- und .NET Core 2.0+-Anwendungen.

Open Source auf GitHub

Das Azure Cosmos DB .NET SDK v3 ist Open Source, und unser Team möchte das Open-Source-Konzept für die Entwicklung beibehalten. In diesem Zusammenhang begrüßen wir alle Pull Requests, und wir nutzen GitHub, um Probleme zu verzeichnen und Feedback nachzuverfolgen.

Neues Programmiermodell mit Fluent-API-Oberfläche

Seit der Vorschauversion haben wir das Objektmodell für eine intuitivere Entwicklererfahrung weiter verbessert. Wir haben die neue Klasse CosmosClient auf oberster Ebene erstellt, die DocumentClient ersetzt. Ihre Methoden sind auf die modularen Klassen database und container aufgeteilt. Laut unserer Untersuchungen zur Benutzerfreundlichkeit ist es mit dieser Hierarchie für Entwickler einfacher, die API-Oberfläche zu erlernen und zu entdecken.

Außerdem haben wir Fluent-APIs zum Erstellen hinzugefügt, die die Erstellung der Klassen CosmosClient, Container und ChangeFeedProcessor mit benutzerdefinierten Optionen vereinfachen.

Sehen Sie sich alle Beispiele auf GitHub an.

Stream-APIs für Hochleistung

In früheren Versionen der Azure Cosmos DB .NET SDKs wurden Daten, die in das Netzwerk und aus diesem heraus übertragen wurden, stets serialisiert und deserialisiert. Im Kontext einer ASP.NET-Web-API kann dies zu einem Leistungsoverhead führen. Mit der neuen Stream-API können Sie nun beim Lesen eines Elements oder einer Abfrage den Stream abrufen und ohne Deserialisierungsoverhead an die Antwort übergeben. Dazu verwenden Sie die neuen Methoden GetItemQueryStreamIterator und ReadItemStreamAsync. Weitere Informationen finden Sie im GitHub-Beispiel.

Einfacher zu testen und besser erweiterbar

In Version 3 des .NET SDK sind alle APIs modellierbar, sodass Einheitentests einfacher werden.

Wir haben auch eine erweiterbare Anforderungspipeline eingeführt. Sie können nun benutzerdefinierte Handler übergeben, die beim Senden von Anforderungen an den Dienst ausgeführt werden. Beispielsweise können Sie mit diesen Handlern Anforderungsinformationen in Azure Application Insights protokollieren, benutzerdefinierte Wiederholungsrichtlinien definieren und mehr. Sie können nun auch einen benutzerdefinierten Serialisierer übergeben, ein weiteres häufig angefragtes Entwicklerfeature.

Verwenden der Änderungsfeedprozessor-APIs direkt über das SDK

Eines der beliebtesten Features von Azure Cosmos DB ist der Änderungsfeed, der häufig in Ereignisbeschaffungsarchitekturen, der Streamverarbeitung, Datenverschiebungsszenarien und zum Erstellen von Materialansichten verwendet wird. Mithilfe des Änderungsfeeds können Sie auf Änderungen in einem Container lauschen und erhalten einen inkrementellen Feed der Erstellung oder Änderung der zugehörigen Datensätze.

Das neue SDK weist eine integrierte Unterstützung der Änderungsfeedprozessor-APIs auf. Das bedeutet, dass Sie mit demselben SDK Ihre Anwendung erstellen und den Änderungsfeedprozessor implementieren können. Zuvor mussten Sie die separate Änderungsfeedprozessor-Bibliothek verwenden.

Lesen Sie als ersten Schritt die Dokumentation Änderungsfeedprozessor in Azure Cosmos DB.

Möglichkeit zum Skalieren nicht partitionierter Container

Wir haben von vielen Kunden mit nicht partitionierten oder „festen“ Containern gehört, dass sie diese über ihre Grenzwerte von 10 GB Speicher und 10.000 RU/s bereitgestelltem Durchsatz hinaus erhöhen wollten. Mit Version 3 des SDK können Sie dies nun erledigen, ohne einen neuen Container erstellen und Ihre Daten verschieben zu müssen.

Alle nicht partitionierten Container weisen nun den Systempartitionsschlüssel _partitionKey auf, den Sie beim Schreiben neuer Elemente auf einen Wert festlegen können. Sobald Sie den Wert „_partitionKey“ verwenden, skaliert Azure Cosmos DB Ihren Container, wenn sein Speichervolumen auf über 10 GB anwächst. Wenn Sie Ihren Container unverändert belassen möchten, können Sie mithilfe des Werts PartitionKey.None vorhandene Daten ohne Partitionsschlüssel lesen und schreiben.

Durchgehend einfachere APIs für die Skalierung

Wir haben die APIs zum zentralen Hoch- und Herunterskalieren des bereitgestellten Durchsatzes (RU/s) überarbeitet. Sie können nun mit der ReadThroughputAsync-Methode den aktuellen Durchsatz abrufen und ihn mit ReplaceThroughputAsync ändern. Sehen Sie sich ein Beispiel an.

Erste Schritte

Für die ersten Schritte mit der neuen Version 3 des Azure Cosmos DB .NET SDK fügen Sie Ihrem Projekt einfach unser neues NuGet-Paket hinzu. Befolgen Sie für die ersten Schritte das neue Tutorial und den Schnellstart. Wir würden uns sehr über Ihr Feedback freuen! Sie können Probleme in unserem GitHub-Repository verzeichnen.

Folgen Sie uns auf Twitter @AzureCosmosDB, um stets auf dem Laufenden über die neuesten Updates und Funktionen von Azure #CosmosDB zu bleiben. Wir können es kaum erwarten, Ihre Ergebnisse mit Azure Cosmos DB und dem neuen .NET SDK zu sehen!