Great news ! Il y a quelques jours, Microsoft a rendu disponible un nouveau repository Github, qui préfigure l’arrivée de la version 4 du SDK du Bot Framework, alias Bot Builder SDK v4.

Pour ceux qui se seraient intéressés au Bot Framework de Microsoft par le passé, vous reconnaîtrez probablement un nom familier, “BotBuilder”. C’est en effet, le nom du repository GitHub existant. Désormais, il y a également “BotBuilder-dotnet“.

Pourquoi une nouvelle version me direz-vous ? Rome ne s’est pas faite en un jour.

Comment en est-on arrivé là ? Petit retour en arrière…

Historique du Bot Framework

Dans les grandes lignes :

  • Fin Mars 2016 : annonce du Bot Framework et première itération de l’API Bot Connector, du SDK Bot Connector et du Bot Builder lors de la BUILD 2016 (dont vous pouvez trouver la vidéo de la keynote sur Channel9).
  • 8 Juillet 2016 :
    • Sortie du SDK v3 du Bot Framework (non, il n’y a pas eu de v2 !), et aide à la migration intégrée à la documentation Microsoft.
    • Dépréciation de l’API Bot Framework v1.
      • Fin du support des bots v1 en décembre 2016 pour Skype et le 23 Février 2017 pour les autres canaux.
  • 13 Décembre 2017 : Azure Bot Service passe Generally Available, accélérant la mise en place depuis le portail Azure de projets Bots, avec des templates utilisant la v3.

Comme on peut le voir, cette v3 du SDK a aujourd’hui presque 18 mois et a atteint plus de 300 000 téléchargements rien que pour le package NuGet destiné aux développeurs .Net.

versions du SDK

 

N’oublions pas à côté, la possibilité de développer avec Node.js, via le package npm botbuilder qui a dépassé les 500 000 téléchargements toutes versions confondues !

courbe téléchargement sdk

Au fil du temps, Microsoft a pu tirer des leçons concernant les différents retours des utilisateurs du SDK. Depuis juillet 2016, de nombreuses mises à jour ont été publiées, on peut en particulier citer :

  • Mai 2017 : saut de version entre v3.5 et la v3.8. En parallèle, forçage de montée de version des projets à la v3.5 minimum pour cause de modification de la gestion de la sécurité (voir l’article du blog Bot Framework)
  • A ce jour, 30 versions (hors alpha) avec la 3.14.0 sortie il y a quelques jours.

Gageons également que le fait de proposer ce SDK en open-source sur Github en accélère l’évolution !

 

Bot Builder SDK v4, quelles sont les nouveautés ?

Si l’on change de version majeure, c’est qu’il y a de grosses nouveautés. Logique non ? Et c’est bien le cas. A tous les plans !

D’une part, Microsoft élargit la communauté de développeurs Bot Framework avec l’arrivée de versions Python et Java du SDK ! Rien que ça ! Mais ce n’est pas tout, il y a de grosses évolutions pour les utilisateurs “historiques”.

 

Bot Builder SDK v4 pour les développeurs .Net

Si je devais faire mon “topito” des nouveautés et changements, je dirais :

  1. En 2 mots (et un point) : “.Net Core“. Le SDK passe du full framework .Net à .Net Core
  2. Réorganisation de l’architecture :
    • L’arrivée de la notion de “Middleware” : des briques permettant des traitements transverses, dans un ordre définit, avec possibilité d’interruption de traitement. Le SDK en fournit sur étagère (LUIS, QnAMaker, Translator), mais vous pouvez également créer vos propres briques.
    • Les “pipelines“, avec 3 états principaux permettant de décliner des actions selon que l’on est au moment de la création du contexte, de la réception d’un message ou de l’envoi d’une réponse (ContextCreated()ReceiveActivity(), and/or SendActivity()).
  3. MessageFactory, pour accélérer la création des réponses contenant des messages riches. C’est tout bête, mais le gain de temps sera notable !

 

L’essayer, c’est l’adopter  ?

Clairement… non. Pas encore.

C’est de toute façon il est clairement indiqué sur Github :

This repository contains code for the .NET version of the Microsoft Bot Builder SDK. The 4.x version of the SDK is being actively developed and should therefore be used for EXPERIMENTATION PURPOSES ONLY

Et dans leur FAQ :

If you are using your V3 SDK to build your bot you can continue to do so. On our Roadmap we have plans to create a component which will allow you to invoke a V3 based dialog as a backward compatibility feature, but that work has not been done yet.

Comme précisé par les équipes qui travaillent sur ce projet, on est au stade de la release alpha. Le package est en “prerelease” sur Nuget et lorsque l’on regarde l’historique des commits sur Github, on comprend bien que le sujet n’est pas encore sec : ces derniers jours, on voit des quantités de l’ordre de 10 “pull requests” quotidiennement.

Mais il est intéressant de se plonger dedans dès maintenant. D’une part, pour comprendre la genèse de cette version, mais aussi pour réfléchir aux nouvelles architectures de projets bots, et contribuer à l’évolution du SDK vers des features manquantes de la v3.

 

La roadmap annoncée de SDK v4

La roadmap prévoit une finalisation du SDK dans les 3 prochains mois avec plusieurs étapes :

Les premiers guides de migration devraient être disponibles courant avril. A première vue, la nouvelle architecture nécessitera une adaptation importante pour les projets de complexité moyenne à importante.

 

Conclusion

Après avoir passé quelques jours à explorer le nouveau SDK, mes recommandations sont les suivantes :

A faire

  • Rapidement cloner le repo, le consulter, voir ce qui était prévu initialement et comment cela évolue
  • Tester en mettant en place les samples
  • Contribuer ! C’est encore plus le moment, le projet évolue tous les jours.0

A ne pas faire

  • Si vous ne l’aviez pas encore compris… ne pas partir en production avec le SDK tel qu’il est aujourd’hui !

 

Quelques liens utiles, pour finir :

Le SDK v4 sur Github :

 

Livre Blanc Cell'insight 7 Cognitive Services