Bot Framework is horrible. It's the most ridiculous IM platform I've built anything for, and I've covered a good bit of the spectrum.
They really need to expose a full-featured API for Teams, something at least as powerful as what you used to be able to do with the UCMA SDK for Lync/SfB.
I've given up on anything ever getting exposed through Graph API in a timely manner. It took two or three years before you could get online/busy/away presence information on a user without outrageous, unsupported hacks.
Bot Framework was a good idea: one framework to write a bot for multiple IM platforms at once. But of course it immediately suffered the exact problems you would expect: lowest common denominator features, older target platforms falling into disrepair, new platforms never getting official support, etc.
Using Bot Framework to write just for a Teams bot is broken before you start. Using it to support both your Teams and Slack integrations sounds nice on paper, but probably doesn't work in theory as soon as you need platform specific features or do something "advanced". You still can't use Bot Framework with Discord.
I liked the theory behind Bot Framework, but the practical reality has so far been mostly a disappointment.
The thing is, until very recently, Bot Framework was the only game in town for Teams.
Doing something as simple as sending an outbound message to a user from a bot, if the user didn't initiate the conversation, was stupidly convoluted.
There's some stuff added to Graph API for sending messages now, but on the whole, the development experience is very, very far from what I would expect from Microsoft.
There's still no good way to sign in on behalf of a user to Teams, which makes writing load-testing tools to test a Teams bot a PITA - you can use Direct-Line, but then it isn't really testing how the bot would act against Teams...
They really need to expose a full-featured API for Teams, something at least as powerful as what you used to be able to do with the UCMA SDK for Lync/SfB.
I've given up on anything ever getting exposed through Graph API in a timely manner. It took two or three years before you could get online/busy/away presence information on a user without outrageous, unsupported hacks.