Many people consider chatbots to be the fourth application platform. At the beginning there were Desktop Applications where people interacted with heavy mainframes or databases on premises. Web 2.0 changed the development paradigm. Everything was turned into Web Application, so users were able to access applications without needing to install more than a browser. Following that, with the evolution of cell phones and tablets, people now have the ability to access their applications everywhere, bringing the Mobile Application paradigm, allowing people to access information from anywhere. Today we’re developing bots that can understand people in their own way, learning in its way.
Bots can automate tasks, perform complex calculations, or suggest what movie is best to watch based on our logs or advice based on previous interactions with similar users. Bots can do more than chat - they can expand their capabilities to understand our voice and feelings and act based on that.
The Microsoft Bot Framework provides just what you need to build and connect intelligent bots that naturally interact with your users on a website, app, Cortana, Microsoft Teams, Skype, Slack, Facebook Messenger, and more.
Some common classes Bot Framework provides are:
Dialog: A dialog is a similar concept like a Form. We can include it to reuse them across our code project or bots. For example, a dialog can ask to user their Full name, Date of Birth, Place where Lives, etc; validating the user entered data and when finished it can return an object with the result.
WaterFall Dialog: This is a dialog implementing steps. First step prompt the user to enter one information, second step keeps it and ask the next one and so on. When the user finishes all the steps the dialog will return to the calling point.
RichCards: As its name can tells us, we might use this classes to send to the user rich media. For example: Thumbnails, Hero, Carrousel, Video, Audio, etc.
Adaptive Cards: This is an external library used to represent complex information cards. For example, a receipt or a n-columns’ card.