Blog Post

IIS Support Blog
3 MIN READ

Identifying the SDK Version in an Azure Bot Project: V3 or V4?

meenakshiBalekar's avatar
Aug 28, 2024

How to identify if a bot project is using Azure bot SDKV3 or SDKV4

As you may already know, SDK V3 has been deprecated. With the introduction of new functionalities in SDK V4 for creating Azure bots, it is crucial to migrate to the latest version. However, some projects are still running on SDK V3. I am frequently asked to verify whether a bot is using SDK V3 or V4. Therefore, I am writing this blog post to guide you on how to identify the current version your bot is running on and to emphasize the importance of migrating to SDK V4 to take advantage of enhanced performance, security, and new features.

 

Deprecation details 

 

To identify whether your Azure bot project is using SDK V3 or SDK V4, you can look for a few key indicators:

  1. Project Structure and Files:
    • SDK V3: Typically, SDK V3 projects will have files like Microsoft.Bot.Builder.dll and Microsoft.Bot.Connector.dll.
    • SDK V4: SDK V4 projects often include files like Microsoft.Bot.Builder.Dialogs.dll and Microsoft.Bot.Builder.Integration.AspNet.Core.dll.
  2. Code Patterns:
    • SDK V3: The bot’s main logic is often found in a class that inherits from IDialog or LuisDialog<T>. The message handling is done using MessageController.
    • SDK V4: The bot’s main logic is usually in a class that inherits from ActivityHandler or DialogBot<T>. The message handling is done using OnMessageActivityAsync.
  3. Configuration Files:
    • SDK V3: You might see configuration settings in web.config or app.config.
    • SDK V4: Configuration settings are typically found in appsettings.json.
  4. Dependencies:
    • SDK V3: Look for dependencies on Microsoft.Bot.Builder version 3.x.x.
    • SDK V4: Look for dependencies on Microsoft.Bot.Builder version 4.x.x.

By checking these aspects, you should be able to determine which SDK version your bot project is using.

 

How we can migrate the Azure bot from SDKV3 to SDKV4

 

  1. Set Up a New SDK V4 Project

    Create a new bot project using the Bot Framework SDK V4. You can use the Bot Framework templates for Visual Studio or the Bot Framework CLI to get started.
  1. Migrate Bot Logic
  • Dialogs: In SDK V3, dialogs are often implemented using IDialog or LuisDialog<T>. In SDK V4, you will use ComponentDialog and WaterfallDialog. You’ll need to rewrite your dialog logic to fit the new structure.
  • Message Handling: In SDK V3, message handling is done in MessageController. In SDK V4, you handle messages in the OnMessageActivityAsync method of a class that inherits from ActivityHandler.
  1. Update Dependencies

    Ensure that your new project references the appropriate SDK V4 packages. You can find these packages on NuGet, such as Microsoft.Bot.Builder, Microsoft.Bot.Builder.Dialogs, and Microsoft.Bot.Builder.Integration.AspNet.Core.
  1. Update Configuration

    Move your configuration settings from web.config or app.config (SDK V3) to appsettings.json (SDK V4). Update any necessary settings to match the new SDK requirements.
  1. Test Your Bot

    Thoroughly test your bot to ensure that all functionalities are working as expected. Use the Bot Framework Emulator to test locally and make sure to cover all scenarios.
  1. Deploy the Bot
  1. Update Channels
  • Reconfigure your bot channels in the Azure portal to ensure they are correctly set up for the new SDK V4 bot.

Additional Resources

Migrating can be a bit complex, but these steps should help you get started.
Hope this helps!

Updated Aug 28, 2024
Version 1.0