Übersicht zur MigrationMigration overview

gilt für: SDK v4APPLIES TO: SDK v4

Das bot Framework SDK V4 basiert auf dem Feedback der Kunden und der Lernfunktion von vorherigen SDKs.The Bot Framework SDK v4 builds on customers' feedback and the learning experience from previous SDKs. Dabei wird die richtige Abstraktions Ebene eingeführt, während eine flexible bot Components-Architektur aktiviert wird.It introduces the right levels of abstraction while enabling a flexible bot components architecture. Dies ermöglicht es Ihnen unter anderem, einen einfachen bot zu erstellen und dann seine Komplexität mithilfe der Modularität und Erweiterbarkeit des bot Framework SDK V4 zu erweitern.Among other things, this allows you to create a simple bot and then expand its sophistication using the modularity and extensibility of the Bot Framework SDK v4.

Hinweis

Das Bot Framework SDK v4 soll einfache Dinge einfach halten und komplexe Dinge möglich machen.The Bot Framework SDK v4 strives to keep simple things simple and makes complex things possible.

Eine offene Herangehensweise wurde gewählt, sodass das Bot Framework v4 SDK in Zusammenarbeit mit der Community entwickelt wurde.An open approach has been adopted so that the Bot Framework v4 SDK has been built with the cooperation from the community. Wenn Sie zum ersten Mal einen Pull Request übermitteln, wird anhand einer Lizenzvereinbarung für Mitwirkende (CLA) automatisch ermittelt, ob Sie eine Lizenz benötigen.When you first submit a Pull Request, a Contributor License Agreement (CLA) automatically determines whether you need a license. Dies ist nur einmal für alle Repositorys erforderlich.You will only need to do this once across all repositories. In der Regel gibt es ein Zeitintervall für das Festlegen einer Reihe von Zielen, die zu erreichen sind.Typically, there is a time interval to establish a set of objectives to achieve.

Was geschieht mit Bots, die mit SDK v3 erstellt wurden?What happens to bots built using SDK v3

Das Bot Framework SDK v3 wird eingestellt, vorhandene v3 Bot-Workloads werden jedoch ohne Unterbrechung weiter ausgeführt.The Bot Framework SDK v3 will be retired but existing V3 bot workloads will continue to run without interruption. Weitere Informationen finden Sie unter Support für die Lebensdauer von Version 3 des Bot Framework SDK.For more information, see: Bot Framework SDK Version 3 Lifetime Support.

Es wird dringend empfohlen, mit der Migration Ihrer v3-Bots zu v4 beginnen.We highly recommend that you start migrating your V3 bots to V4. Zur Unterstützung dieser Migration haben wir eine entsprechende Dokumentation erstellt und stellen erweiterten Support für Migrationsinitiativen über Standardkanäle bereit.In order to support this migration we have produced related documentation and will provide extended support for migration initiatives via standard channels.

Falls Sie nicht sofort von einem Bot der Version 3 zu einem Bot der Version 4 migrieren können, aber trotzdem die zusätzlichen Funktionen nutzen möchten, die im SDK der Version 4 zur Verfügung stehen, haben Sie folgende Möglichkeit:If you can not migrate from a v3 bot to a v4 bot immediately, you may still want to take advantage of the additional functionality available in the v4 SDK. Sie können den Bot der Version 3 in einen Skill konvertieren und einen auf dem SDK der Version 4 basierenden Skill-Consumer-Bot erstellen, um Nachrichten an Ihren Bot der Version 3 zu übergeben.You can convert your v3 bot to a skill, and create a skill consumer bot based on the v4 SDK to pass messages to your v3 bot. Weitere Informationen finden Sie unter Konvertieren eines v3-Bots in einen Skill.For more information, see how to convert a v3 bot to a skill.

VorteileAdvantages

  • Umfangreichere, flexiblere und offenere Architektur: Ermöglicht einen flexibleren KonversationsentwurfRicher, flexible and open architecture: Enables more flexible conversations design
  • Verfügbarkeit: Führt zusätzliche Szenarien mit neuen Kanalfunktionen einAvailability: Introduces additional scenarios with new channel capabilities
  • Erweitertes Personal mit fachlichen Ansprechpartnern (Subject Matter Expert, SME) im Entwicklungszyklus: Der neue GUI-Designer ermöglicht auch anderen Personen als Entwicklern die Zusammenarbeit bei der Konversationsgestaltung.Expanded Subject Matter Expert (SME) personnel in the development cycle: New GUI designer permits non-developers to collaborate on conversation design
  • Entwicklungsgeschwindigkeit: Neue Debugging- und Testtools für EntwicklerDevelopment velocity: New debugging and testing developer tools
  • Einblicke in die Leistung: Neue Telemetriefunktionen zur Bewertung und Verbesserung der KonversationsqualitätPerformance insights: New telemetry features to evaluate and improve conversation quality
  • Intelligenz: Verbesserte Cognitive Services-FunktionenIntelligence: Improved cognitive services capabilities

Vorteile der MigrationWhy migrate

  • Flexible und verbesserte KonversationsverwaltungFlexible and improved conversation management
    • Botadapter für die AktivitätsverarbeitungBot Adapter for activity processing
    • Umgestaltete ZustandsverwaltungRefactored state management
    • Neue DialogbibliothekNew dialogs library
    • Middleware für zusammensetzbare und erweiterbare Designs: Saubere und konsistente Hooks zur Anpassung des VerhaltensMiddleware for composable and extensible designs: Clean and consistent hooks to customize behavior
  • Erstellt für .NET CoreBuilt for .NET Core
    • Verbesserte LeistungImproved performance
    • Plattformübergreifende Kompatibilität (Windows/Mac/Linux)Cross platform compatibility (Windows/Mac/Linux)
  • Konsistentes Programmiermodell für mehrere ProgrammiersprachenConsistent programming model across multiple programming languages
  • Verbesserte DokumentationImproved documentation
  • Bot Inspector bietet erweiterte Funktionen zum Debuggen.Bot Inspector provides extended debugging capabilities
  • Virtueller AssistentVirtual Assistant
    • Hierbei handelt es sich um eine umfassende Lösung für die vereinfachte Erstellung von Bots mit grundlegenden Konversationsabsichten, Dispatch-Integration, QnA Maker, Application Insights und automatischer Bereitstellung.Comprehensive solution that simplifies the creation of bots with basic conversational intents, Dispatch integration, QnA Maker, Application Insights and an automated deployment.
    • Erweiterbare Fähigkeiten.Extensible Skills. Erstellen Sie Konversationsumgebungen, indem Sie wiederverwendbare Konversationsfunktionen – sogenannte Fähigkeiten – zusammenfügen.Compose conversational experiences by stitching together re-usable conversational capabilities, known as Skills.
  • Testframework: Vorkonfigurierte Testfunktionen mit neuer transportunabhängiger AdapterarchitekturTesting Framework: Out of the box test capabilities with new transport independent adaptor architecture
  • Telemetrie: gewinnen Sie wichtige Einblicke in die Integrität und das Verhalten Ihres Bots mit der Konversations-Ki-Analyse.Telemetry: Gain key insights into your bot's health and behavior with the Conversational AI Analytics
  • Demnächst (Vorschauversion)Coming (preview)
    • Adaptive Dialoge: Erstellen von Konversationen, die im Verlauf der Konversation dynamisch geändert werden könnenAdaptive Dialogs: Build conversations that can be dynamically changed as the conversation progresses
    • Sprachgenerierung: Definieren mehrerer Variationen einer PhraseLanguage Generation: Define multiple variations on a phrase
  • ZukunftFuture
    • Deklaratives Design ermöglicht Abstraktionsebene für DesignerDeclarative design permits level of abstraction for designers
    • GUI-DialogdesignerGUI Dialog Designer
  • Azure Bot ServiceAzure Bot Service
    • Direct Line Speech-Kanal.Direct Line Speech Channel. Wir bringen Bot Framework und die Speech-Dienste von Microsoft zusammen.Bringing together the Bot Framework and Microsoft's Speech Services. Damit steht ein Kanal zur Verfügung, der bidirektionales Streamen von Sprache und Text vom Client zur Botanwendung ermöglicht.This provides a channel that enables streamed speech and text bi-directionally from the client to the bot application

ÄnderungenWhat's changed

Bot Framework SDK v4 unterstützt den gleichen zugrunde liegenden Bot Framework-Dienst wie v3.The Bot Framework SDK v4 supports the same underlying Bot Framework Service as v3. Für v4 wurden allerdings die bisherigen SDKs umgestaltet, um mehr Flexibilität und Kontrolle bei der Erstellung eines Bots zu bieten.However, v4 is a refactoring of the previous SDKs to allow more flexibility and control over a bot's creation. Dazu gehören:This includes the following:

  • Einführung eines BotadaptersIntroduced a bot adapter
    • Der Adapter ist Teil des Aktivitätsverarbeitungsstapels.The adapter is part of the activity processing stack
    • Er wickelt die Bot Framework-Authentifizierung ab und initialisiert Kontext für jeden Turn.It handles Bot Framework authentication and initializes context for each turn
    • Er verwaltet ein- und ausgehenden Datenverkehr zwischen einem Kanal und dem Turn-Handler Ihres Bots und kapselt dabei die an den Bot Framework Connector-Dienst gerichteten Aufrufe.It manages incoming and outgoing traffic between a channel and your bot's turn handler, encapsulating the calls to the Bot Framework Connector service
    • Weitere Informationen finden Sie unter Funktionsweise von Bots.For more details, see How bots work
  • Umgestaltete ZustandsverwaltungRefactored state management
    • Zustandsdaten stehen in einem Bot nicht mehr automatisch zur Verfügung.State data is no longer automatically available within a bot
    • Der Zustand wird nun über Zustandsverwaltungsobjekte und Eigenschaftenaccessoren verwaltet.State is now managed via state management objects and property accessors
    • Weitere Informationen finden Sie unter Verwalten des Zustands.For more details, see Managing state
  • Einführung der neuen DialogbibliothekIntroduced new Dialogs library
    • Dialoge der Version 3 müssen für die neue Dialogbibliothek umgeschrieben werden.v3 dialogs need to be rewritten for the new dialog library
    • Weitere Informationen finden Sie unter Dialogbibliothek.For more details, see Dialogs library

Was umfasst ein Migrationsvorgang?What's involved in migration work

  • Aktualisieren der Setup-LogikUpdate setup logic
  • Portieren aller kritischen BenutzerzuständePort any critical user state
    • Hinweis: Ein sensibler Benutzerzustand kann in einem Botzustand nicht beibehalten werden, stattdessen wird er in einem Speicher unter Ihrer Kontrolle beibehalten.Note: sensitive user state cannot be kept in a bot state, instead store in separate storage under your control
  • Portieren der Bot- und Dialoglogik (weitere Details in sprachspezifischen Themen)Port bot and dialog logic (see language-specific topics for more details)

Arbeitsblatt für die MigrationsschätzungMigration estimation worksheet

Die folgenden Arbeitsblätter kann Sie bei der Schätzung Ihrer Migrationsworkload unterstützen.The following worksheets can guide you in estimating your migration workload. Ersetzen Sie in der Spalte Vorkommen den Eintrag count durch Ihren tatsächlichen numerischen Wert.In the Occurrences column replace count with your actual numeric value. Geben Sie in der Spalte T-Shirt je nach Ihrer Schätzung Werte wie Small, Medium, Large ein.In the T Shirt column enter values such as: Small, Medium, Large based on your estimation.

SchrittStep V3V3 V4V4 VorkommenOccurrences KomplexitätComplexity T-ShirtT Shirt
So rufen Sie die eingehende Aktivität abTo get the incoming activity IDialogContext.ActivityIDialogContext.Activity ITurnContext.ActivityITurnContext.Activity countcount KleinSmall
So erstellen und senden Sie eine Aktivität an den BenutzerTo create and send an activity to the user aktiv. "Foratereply" ("Text") idialogcontext. postasyncactivity.CreateReply("text") IDialogContext.PostAsync Messagefactory. Text ("Text") iturncontext. sendactivityasyncMessageFactory.Text("text") ITurnContext.SendActivityAsync countcount KleinSmall
ZustandsverwaltungState management UserData, ConversationData und PrivateConversationData context.UserData.SetValue context.UserData.TryGetValue botDataStore.LoadAsynUserData, ConversationData, and PrivateConversationData context.UserData.SetValue context.UserData.TryGetValue botDataStore.LoadAsyn UserState, ConversationState und PrivateConversationState mit EigenschaftenaccessorenUserState, ConversationState, and PrivateConversationState With property accessors context.UserData.SetValue - count context.UserData.TryGetValue - count botDataStore.LoadAsyn - countcontext.UserData.SetValue - count context.UserData.TryGetValue - count botDataStore.LoadAsyn - count Medium bis Large (siehe verfügbare Benutzerzustandsverwaltung)Medium to Large (See user state management available)
Start des Dialogs behandelnHandle the start of your dialog Implement IDialog.StartAsyncImplement IDialog.StartAsync Legen Sie diesen Vorgang als ersten Schritt eines Wasserfalldialogs fest.Make this the first step of a waterfall dialog. countcount KleinSmall
Senden einer AktivitätSend an activity IDialogContext.PostAsync.IDialogContext.PostAsync. Rufen Sie „ITurnContext.SendActivityAsync“ auf.Call ITurnContext.SendActivityAsync. countcount KleinSmall
Warten auf Antwort des BenutzersWait for a user's response Verwenden Sie einen IAwaitable-Parameter, und rufen Sie „IDialogContext.Wait“ auf.Use an IAwaitableparameter and call IDialogContext.Wait Geben Sie zurück, dass auf „ITurnContext.PromptAsync“ gewartet wird, um einen Eingabeaufforderungsdialog zu starten.Return await ITurnContext.PromptAsync to begin a prompt dialog. Rufen Sie anschließend im nächsten Schritt des Wasserfalls das Ergebnis ab.Then retrieve the result in the next step of the waterfall. countcount Mittel (hängt vom Ablauf ab)Medium (depends on flow)
Fortsetzung des Dialogs behandelnHandle continuation of your dialog IDialogContext.WaitIDialogContext.Wait Fügen Sie einem Wasserfalldialog zusätzliche Schritte hinzu, oder implementieren Sie „Dialog.ContinueDialogAsync“.Add additional steps to a waterfall dialog, or implement Dialog.ContinueDialogAsync countcount GroßLarge
Signalisieren des Endes der Verarbeitung bis zur nächsten Nachricht des BenutzersSignal the end of processing until the user's next message IDialogContext.WaitIDialogContext.Wait Geben Sie „Dialog.EndOfTurn“ zurück.Return Dialog.EndOfTurn. countcount MediumMedium
Starten eines untergeordneten DialogsBegin a child dialog IDialogContext.CallIDialogContext.Call Geben Sie zurück, dass auf die Methode „BeginDialogAsync“ des Schrittkontexts gewartet wird.Return await the step context's BeginDialogAsyncmethod. Wenn der untergeordnete Dialog einen Wert zurückgibt, steht dieser im nächsten Schritt des Wasserfalls über die Result-Eigenschaft Schrittkontexts zur Verfügung.If the child dialog returns a value, that value is available in the next step of the waterfall via the step context's Resultproperty. countcount MediumMedium
Ersetzen des aktuellen Dialogs durch einen neuen DialogReplace the current dialog with a new dialog IDialogContext.ForwardIDialogContext.Forward Geben Sie zurück, dass auf „ITurnContext.ReplaceDialogAsync“ gewartet wird.Return await ITurnContext.ReplaceDialogAsync. countcount GroßLarge
Abschluss des aktuellen Dialogs signalisierenSignal that the current dialog has completed IDialogContext.DoneIDialogContext.Done Geben Sie zurück, dass auf die Methode „EndDialogAsync“ des Schrittkontexts gewartet wird.Return await the step context's EndDialogAsync method. countcount MediumMedium
Verlassen eines Dialogs nach einem FehlerFail out of a dialog. IDialogContext.FailIDialogContext.Fail Lösen Sie eine Ausnahme aus, die auf einer anderen Ebene des Bot abgefangen werden soll, beenden Sie den Schritt mit dem Status „Abgebrochen“, oder rufen Sie den Schritt bzw. „CancelAllDialogsAsync“ des Dialogkontexts auf.Throw an exception to be caught at another level of the bot, end the step with a status of Cancelled, or call the step or dialog context's CancelAllDialogsAsync. countcount KleinSmall

Bot Framework SDK v4 basiert auf der gleichen zugrunde liegenden REST-API wie v3.The Bot Framework SDK v4 is based on the same underlying REST API as v3. Für Version 4 wurde allerdings die Vorgängerversion des SDK überarbeitet, um mehr Flexibilität und Kontrolle für die Bots zu bieten.However, v4 is a refactoring of the previous version of the SDK to allow more flexibility and control over the bots.

Wir empfehlen die Migration zu .NET Core, da die Leistung stark verbessert wurde.We recommend migrating to .NET Core, since the performance is very much improved. Einige vorhandene V3-Bots verwenden jedoch externe Bibliotheken, für die es keine .NET Core-Entsprechung gibt.However, some existing V3 bots are using external libraries that do not have a .NET Core equivalent. In diesem Fall kann das bot Framework SDK v4 mit .NET Framework Version 4.6.1 oder höher verwendet werden.In this case, the Bot Framework SDK v4 can be used with .NET Framework version 4.6.1 or later. Ein Beispiel finden Sie unter corebot.You can find an example at corebot location.

Bei der Migration eines Projekts von v3 zu v4 können Sie eine dieser Optionen wählen: direktes Konvertieren für .NET Framework oder Portieren auf ein neues Projekt für .NET Core.When migrating a project from v3 to v4, you can choose one of these options: convert in place for .NET Framework or port to a new project for .NET Core.

.NET Framework.NET Framework

  • Aktualisieren und Installieren von NuGet-PaketenUpdate and install NuGet packages
  • Aktualisieren der Datei „Global.asax.cs“Update your Global.asax.cs file
  • Aktualisieren der MessagesController-KlasseUpdate your MessagesController class
  • Konvertieren der DialogeConvert your dialogs

Weitere Informationen finden Sie unter Migrieren eines .NET-Bots der Version 3 zu einem .NET Framework-Bot der Version 4.For more information, see Migrate a .NET v3 bot to a .NET Framework v4 bot.

.NET Core.NET Core

  • Erstellen des neuen Projekts mithilfe einer VorlageCreate the new project using a template

Hinweis

Das VSIX -Paket umfasst sowohl .net Core 2,1-als auch .net Core 3,1-Versionen der c#-Vorlagen.The VSIX package includes both .NET Core 2.1 and .NET Core 3.1 versions of the C# templates. Sie sollten beim Erstellen neuer Bots in Visual Studio 2019 die .NET Core 3.1-Vorlagen verwenden.When creating new bots in Visual Studio 2019, you should use the .NET Core 3.1 templates. Für die aktuellen Botbeispiele werden .NET Core 3.1-Vorlagen verwendet.The current bot samples use .NET Core 3.1 templates. Beispiele mit .NET Core 2.1-Vorlagen finden Sie im Branch 4.7-archive des Repositorys BotBuilder-Samples.You can find the samples that use .NET Core 2.1 templates in the 4.7-archive branch of the BotBuilder-Samples repository. Informationen zum Bereitstellen von .net Core 3,1-Bots in Azure finden Sie unter Bereitstellen Ihres bot in Azure.For information about deploying .NET Core 3.1 bots to Azure, see how to deploy your bot to Azure.

  • Installieren Sie nach Bedarf zusätzliche NuGet-Pakete.Install additional NuGet packages as necessary
  • Personalisieren Sie Ihren Bot, und aktualisieren Sie die Datei „Startup.cs“ sowie Ihre „controller“-Klasse.Personalize your bot, update your Startup.cs file, and update your controller class
  • Aktualisieren Ihrer „bot“-KlasseUpdate your bot class
  • Kopieren und aktualisieren Sie Ihre Dialoge und Modelle.Copy over and update your dialogs and models

Weitere Informationen finden Sie unter Migrieren eines .NET-Bots der Version 3 zu einem .NET Core-Bot der Version 4.For more information, see Migrate a .NET v3 bot to a .NET Core v4 bot.

Zusätzliche RessourcenAdditional resources

Die folgenden Ressourcen bieten weitere Informationen, die bei der Migration helfen können.The following additional resources provide more information that can help during the migration.

Die folgenden Themen beschreiben die Unterschiede zwischen .NET Bot Framework SDKs v3 und v4, die wichtigsten Änderungen zwischen den beiden Versionen und die Schritte zur Migration eines Bots von v3 zu v4.The following topics describe the differences between .NET v3 and v4 Bot Framework SDKs, the major changes between the two versions, and the steps to migrate a bot from v3 to v4.

ThemaTopic BESCHREIBUNGDescription
Unterschiede zwischen Version 3 und Version 4 des .NET SDKDifferences between the v3 and v4 .NET SDK Allgemeine Unterschiede zwischen Version 3 und Version 4 des SDKCommon differences between v3 and v4 SDKs
Kurzübersicht zur .NET-Migration.NET migration quick reference Wichtige Änderungen zwischen v3- und v4-SDKsMajor changes in v3 vs v4 SDKs
Migrieren eines .NET v3-Bots zu einem Framework v4-BotMigrate a .NET v3 bot to a Framework v4 bot Migrieren eines v3-Bots zu einem v4-Bot unter Verwendung desselben ProjekttypsMigrate a v3 to a v4 bot using the same project type
Migrieren eines .NET-Bots der Version 3 zu einem Core-Bot der Version 4Migrate a .NET v3 bot to a Core v4 bot Migrieren eines v3-Bots zu einem v4-Bot in einem neuen .NET Core-ProjektMigrate a v3 to a v4 bot in a new .NET Core project

CodebeispieleCode samples

Im Folgenden finden Sie Codebeispiele, mit denen Sie die Verwendung des Bot Framework SDK V4 erlernen oder Ihr Projekt direkt starten können.The following are code samples you can use to learn the Bot Framework SDK V4 or jump start your project.

BeispieleSamples BESCHREIBUNGDescription
Beispiele für die Bot Framework-Migration von V3 zu V4Bot Framework Migration from V3 to V4 Samples Beispiele für die Migration von Bot Framework V3 SDK zu V4 SDKMigration samples from Bot Framework V3 SDK to V4 SDK
.NET-Beispiele für Bot BuilderBot Builder .NET Samples C# .NET Core-Beispiele für Bot BuilderBot builder C# .NET core samples
JavaScript-Beispiele für Bot BuilderBot Builder JavaScript Samples JavaScript-Beispiele (node.js) für Bot BuilderBot builder JavaScript (node.js) samples
Alle Bot Builder-BeispieleBot Builder All Samples Alle Bot Builder-BeispieleBot builder all samples

HilfeGetting help

Die folgenden Ressourcen enthalten zusätzliche Informationen und Hilfe zur Entwicklung von Bots.The following resources provide additional information and support for developing bots.

Zusätzliche Ressourcen für Bot FrameworkBot Framework additional resources

ReferencesReferences

Weitere Details und Hintergrundinformationen finden Sie in den folgenden Ressourcen.Please, refer to the following resources for more details and background information.

ThemaTopic BESCHREIBUNGDescription
Neuigkeiten in Bot FrameworkWhat's new in Bot Framework Wichtigste Features und Verbesserungen von Bot Framework und Azure Bot ServiceBot Framework and Azure Bot Service key features and improvements
Funktionsweise von BotsHow bots work Der interne Mechanismus eines BotsThe internal mechanism of a bot
Verwalten des ZustandsManaging state Abstraktionen zum Vereinfachen der ZustandsverwaltungAbstractions to make state management easier
DialogbibliothekDialogs library Zentrale Konzepte zur Verwaltung einer KonversationCentral concepts to manage a conversation
Senden und Empfangen von SMSSend and receive text messages Primäre Kommunikationsmethode eines Bots mit BenutzernPrimary way a bot communicate with users
Senden von MedienSend Media Medienanhänge, z. B. Bilder, Video, Audio und DateienMedia attachments, such as images, video, audio, and files
Sequenzieller KonversationsablaufSequential conversation flow Fragen als Hauptmethode für die Interaktion eines Bot mit BenutzernQuestioning as the main way a bot interacts with users
Speichern von Benutzer- und KonversationsdatenSave user and conversation data Nachverfolgen einer Konversation während der ZustandslosigkeitTracking a conversation while stateless
Komplexer AblaufComplex Flow Verwalten komplexer KonversationsabläufeManage complex conversation flows
Wiederverwenden von DialogenReuse Dialogs Erstellen von unabhängigen Dialogen zum Behandeln bestimmter SzenarienCreate independent dialogs to handle specific scenarios
UnterbrechungenInterruptions Behandeln von Unterbrechungen, um einen stabilen Bot zu erstellenHandling interruptions to create a robust bot
AktivitätsschemaActivity Schema Schema für Menschen und automatisierte SoftwareSchema for humans and automated software