Skip to content

Bot Framework DotNet SDK 4.15.2

Compare
Choose a tag to compare
@EricDahlvang EricDahlvang released this 07 Feb 18:58
5581313

This is a January 2022 patch release containing bug fixes and performance improvements.

4.15.2 SDK Change Logs

Breaking changes in this release:

This release introduces some minor breaking changes in the Adaptive libraries that greatly improve the bot's cold start times. These changes should not impact composer bots that haven't been customized. Customized bots will be impacted only if they extended the following classes:

TemplateEngineLanguageGenerator

  • We removed the loadOnConstructor optional parameter from the class constructor. Templates are now only loaded as needed and not at bot startup. This parameter is no longer necessary and should be removed.

LanguageGeneratorManager

  • We removed the loadOnConstructor optional parameter from the class constructor. Most templates are now processed as needed and not at bot startup. This parameter is no longer necessary and should be removed.
    Templates that use the lg @exports feature are still loaded on startup, a bot with a large number of templates that use the @exports directive will experience longer startup times.

LanguageGeneratorManager

  • The LanguageGenerators property type has changed from ConcurrentDictionary<string, LanguageGenerator> to ConcurrentDictionary<string, Lazy<LanguageGenerator>> to allow on demand initialization and the property is now read only.

MultiLanguageGenerator

  • The LanguageGenerators property type has changed from ConcurrentDictionary<string, LanguageGenerator> to ConcurrentDictionary<string, Lazy<LanguageGenerator>> to allow on demand initialization and the property is now read only.

MultiLanguageGeneratorBase

  • The TryGetGenerator(DialogContext dialogContext, string locale, out LanguageGenerator generator) method signature has changed to MultiLanguageGeneratorBase.TryGetGenerator(DialogContext dialogContext, string locale, out Lazy<LanguageGenerator> generator) and the classes that derive from it have been updated accordingly.
    Developers that need to access the languageGenerator instance right away after calling TryGetGenerator() can force the initialization by accessing the Value property of the returned Lazy<LanguageGenerator>.