Zum Hauptinhalt wechseln

 Subscribe

Das Team von Azure Cosmos DB freut sich, Version 3.0 des .NET SDK – jetzt als Public Preview und Open Source auf GitHub verfügbar – bekannt geben zu können!

Wir warten gespannt auf Ihr Feedback, also testen Sie es, und teilen Sie uns mit, was Sie darüber denken. Sie finden die neueste Version über NuGet. Beiträge können Sie auf GitHub einreichen.

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

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, eine elastische Skalierung von Durchsatz und Speicher und garantiert Latenzen im einstelligen Millisekundenbereich im 99. Perzentil.

Was bietet die neue Version 3.0 des .NET SDK?

Version 3.0 des SDK gilt für .NET Standard 2.0 und bietet zahlreiche Verbesserungen bei Benutzerfreundlichkeit und Leistung wie z.B. ein neues intuitiveres Objektmodell und Unterstützung für Streams. Außerdem führt das SDK unsere Java-, JavaScript- und Python-SDKs zusammen, da es als Open Source auf GitHub verfügbar ist.

Es handelt sich hierbei um eine frühe Vorschauversion von Version 3.0 des SDK. Wir empfehlen für Produktionsworkloads weiterhin die Verwendung von Version 2.x unseres .NET SDK. Es gibt zurzeit keine Pläne, diese Versionen als veraltet zu kennzeichnen oder den Support für Version 2.x des .NET SDK einzustellen.

.NET Standard 2.0 als Ziel

Wir haben das .NET SDK und das .NET Core SDK in einem .NET SDK zusammengefasst, das auf .NET Standard 2.0 abzielt. Das bedeutet für Sie, dass Sie das .NET SDK nun sowohl in Anwendungen mit dem .NET Framework 4.6.1+ als auch mit .NET Core 2.0+ verwenden können.

Intuitives Programmiermodell

In den letzten Monaten hat unser Team an der Verbesserung der Entwicklerumgebung der Azure Cosmos DB-SDKs gearbeitet und dabei insbesondere Ihr Feedback im Auge gehabt.

Neue flüssige API-Oberfläche

Wir haben als Ersatz von DocumentClient die neue übergeordnete Klasse CosmosClient erstellt und ihre Methoden in die modularen Klassen CosmosDatabase, CosmosContainer und CosmosItems unterteilt. Durch das neue Programmiermodell werden UriFactory und andere „Störungen“ aus dem Anwendungscode überflüssig.

Unsere Studien zur Benutzerfreundlichkeit haben gezeigt, dass die Hierarchie es Entwicklern einfacher macht, die nächsten Schritte zu erkennen. Die modularen Typen CosmosDatabase und CosmosContainer vereinfachen darüber hinaus auch das Einfügen von Abhängigkeiten. Sie können nun ganz einfach den Kontext eines Containers oder einer Datenbank in Ihrer Anwendung weitergeben, ohne die Namen von Client, Datenbank oder Container angeben zu müssen.

Einfachere Tests

Aufgrund zahlreicher Anfragen von Entwicklern haben wir die Komponententests mithilfe des neuen hierarchischen Programmiermodells einfacher gemacht, da nun alle Typen modellierbar sind. Außerdem haben wir über CosmosConfiguration.AddCustomHandlers() eine Middleware-Erweiterbarkeit eingeführt, die einen direkten Zugriff auf die Anforderung/Antwort-Pipeline des SDK erlaubt.

Namensänderungen

Wir haben einige Namensänderungen vorgenommen, um das SDK noch besser an das Ressourcenmodell von Azure Cosmos DB anzugleichen. Da Azure Cosmos DB mehrere Datenmodelle unterstützt, haben wir in sämtlichen SDKs „Collection“ und „Document“ in die allgemeineren Begriffe „Container“ und „Item“ geändert.

Leistungsverbesserungen

In früheren Versionen der SDKs wurden Daten, die in das Netzwerk und aus diesem heraus übertragen wurden, stets serialisiert und deserialisiert. In vielen Fällen war dies überflüssig und hatte erhebliche Auswirkungen auf die Leistung. Wenn Sie jetzt ein Element oder eine Abfrage im Kontext einer ASP.NET-Web-API lesen, können Sie mit den neuen Methoden ReadItemAsStreamAsync und CreateItemQueryAsStream lediglich den Stream abrufen und an die Antwort weiterleiten. Der Zusatzaufwand für die Serialisierung entfällt damit.

Keine Abhängigkeit von dynamic

Sie können mit dem neuen SDK dynamic zwar weiter nutzen, wir fügen jedoch nicht mehr unseren eigenen dynamic-Typ ein. Außerdem haben wir die doppelte Deserialisierung, die noch im SDK 2.x.x auftrat, entfernt.

Optimierte Ausnahmebehandlung

Das Marshallen von Ausnahmen über asynchrone await-Aufrufe kann sehr aufwendig sein. Das neue SDK gibt auch weiterhin Ausnahmen für das typisierte Programmiermodell zurück – wie es Entwickler erwarten. Beim Stream-Programmiermodell geben wir jedoch einen CosmosResponseMessage.StatusCode für jede Antwort vom Server zurück. Das SDK löst nur Fehler aus, für die keine Antwort zurückgegeben wird. Für Anwendungen, bei denen die Leistung eine entscheidende Rolle spielt, haben Sie so präzisere Steuerungsmöglichkeiten für Ausnahmen.

Open Source

Das Azure Cosmos DB .NET SDK ist jetzt Open Source! Das Protokollieren von Problemen und Feedback sowie die Annahme von Pull Requests erfolgt in GitHub.

Häufig gestellte Fragen zu den Previewfunktionen

In dieser Vorschauversion werden verschiedene Features noch nicht unterstützt. Hierzu gehören folgende:

  • LINQ-Unterstützung
  • Benutzerdefinierte Funktionen (UDF) und Trigger
  • Benutzer und Berechtigungen
  • Änderungsfeed

Wir werden diese Features in einem zukünftigen Release hinzufügen.

Erste Schritte

Für die ersten Schritte mit dem neuen SDK fügen Sie Ihrem Projekt einfach unser neues NuGet-Paket hinzu. Sehen Sie sich auch unsere Tutorials für .NET und .NET Core an. Wir würden uns sehr über Ihr Feedback freuen! Schreiben Sie einfach eine E-Mail an askcosmosdb@microsoft.com, oder melden Sie Probleme im GitHub-Repository.

Folgen Sie uns auf Twitter @AzureCosmosDB, um stets auf dem Laufenden über die neuesten Updates und Funktionen von Azure #CosmosDB zu bleiben. Wir sind gespannt, welche Innovationen Sie mit Azure Cosmos DB entwickeln werden.

  • Explore

     

    Let us know what you think of Azure and what you would like to see in the future.

     

    Provide feedback

  • Build your cloud computing and Azure skills with free courses by Microsoft Learn.

     

    Explore Azure learning


Join the conversation