Microsoft Azure Bot Framework

Microsoft Azure Bot Framework comes under the "Conversation as a Platform" strategy of Microsoft. 

At //BUILD 2017, Microsoft announced new technology called Bot Framework. Azure Bot Framework allows developers to create intelligent bots to interact with users, understand their intent, and respond in a natural way.
What is Bot?
  • A bot is an app that interacts with users in a conversational way.
  • It can communicate with users using text, cards, or speech.
  • Language Understanding Intelligent Service is the heart of Azure Bot Framework. You have to train your bot to understand user intent and interaction keywords. 
  • You can design FreeForm Bot or you can have more guided interactions by providing choices or actions to the bot.
Why Bot Framework?
  • Whenever you write bots, as a developer, you have to deal with some common but very important tasks, such as some basic input/output operations -- in short, you need SDKs.
  • Your bot must connect to users in any conversation experience and language the user chooses--It should understand the language of the user and interact naturally -- You need Language processor to train your Bot.
  • You need a connector which connects your bot to the outside channels like your own website, or Skype, or FaceBook Messanger, and so on.... 
 And, Microsoft Azure Framework provides all these under one umbrella called Azure Bot Framework.
Building Blocks of Azure Bot Framework
  •  Bot Framework Portal
  •  Bot Builder
  •  Channels
  •  Azure Bot Service
  •  Bot Connector
  •  Activity
  •  Message
  •  Dialog
Bot Framework Portal
  •  Bot Framework Portal gives you one convenient place to register, manage, and connect your bot. It also provides diagnostic tools and a web chat control to embed your bot on a web page. 
Bot Builder
  • Microsoft Azure Bot Framework includes Bot Builder SDKs which will allow you to create your Bot using C# or JavaScript.
  • The SDKs provide libraries, samples, and tools to help you build and debug Bots.
  • We have two SDKs available as of now - the Bot Builder SDK for .NET and the Bot Builder SDK for Node.JS.
  • Bot Builder SDK for .NET allows users to create both freeform Bot as well as more guided conversations Bot using C# and a familiar .NET Way.
  • Bot Builder SDK for Node.js uses RESTify to create Bot's Web Server. This SDK is also very rich and you can create a simple prompt to freeform Bots.          
Azure Bot Service
  •  Azure Bot Service is powered by Microsoft Bot Framework and Azure Functions.
  •  You can design simple Bots very rapidly and you don't need to write code for it. You can write, connect, test, deploy, and manage it directly from a web browser with no separate editor or source control required. 
  • You can connect your Bot (Bot Framework) to outside apps like Skype, FaceBook Messenger, Office 365 emails, Slack, or your website using Channel. 
  • Using Developer portal, you can configure each channel you want the bot to be available in. The Skype and Web Chat channels are pre-configured.
Bot Connector
  • It is a connecting service which allows the bot to communicate over many channels without manually designing a specific message for each channel's schema. 
  • Using Bot Connector service, you can connect a bot to one or more channels and handle the message exchange between them. 
  •  Activity object is used to exchange the information between bot and channel. Any communication is some type of activity for example typing, ping, conversation updated etc. 
  • Message is the most common type of activity. It can be simple as string or combination of strings, attachments, or rich cards.
  • For example, on successfully selecting a valid option from the given choices, bot can respond with a string saying "Congratulations' and the image of a happy face. 
  • Using Dialogs, you can manage conversation flow in your bot. Dialogs are arranged in a stack and top dialog in the stack processes all incoming messages until it is closed or a different dialog is invoked.
LUIS [Language Understanding Intelligent Service]
  • LUIS is a language understanding intelligent service which enables you to deploy HTTP endpoint that will take the sentence user enters and interpret it in terms of intention this conveys.
  • LUIS is highly adaptive and an all-time learner.
  • It is a multilingual platform and understands over 10 different languages.